web开发之浏览器(五)----浏览器兼容CSS hack

首先,仅仅IE支持的条件注释语句

<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->

例子

<!--[if lt IE 9]>

加载CSS1
<!--[else]>
加载CSS2
<![endif]-->
这样有效是有效,但是用HTML VALIDATOR里,报错,因为这个不符合XHTML 1.1的规范,
如果把ELSE语句去掉,则正确.

方法:

加载CSS2
<!--[if lt IE 9]>
加载CSS1(可以把要重写的写在这里).
<![endif]-->

其次,各IE浏览器常用前缀(又是IE,我已经无力吐槽了)

*html *前缀只对IE6生效
*+html *+前缀只对IE7生效
@media screen\9{...}只对IE6/7生效
@media \0screen {body { background: red; }}只对IE8有效
@media \0screen\,screen\9{body { background: blue; }}只对IE6/7/8有效
@media screen\0 {body { background: green; }} 只对IE8/9/10有效
@media screen and (min-width:0\0) {body { background: gray; }} 只对IE9/10有效
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} 只对IE10有效

再次,CSS特殊字符hack

「\9」、「*」、「_」「!important」

「\9」仅支持所有IE系列

「*」仅IE6,IE7

「_」仅IE6

「!important」仅IE7,firefox等

最后,各种特殊字符Hack实例验证

  • Hack应用情境(一)
  • 适用范围:IE:6.0,IE7.0,IE8.0之间的兼容
  • 实例代码:
  • .bb{
    height:32px;
    background-color:#f1ee18;/*所有识别*/
    .background-color:#00deff\9; /*IE6、7、8识别*/
    +background-color:#a200ff;/*IE6、7识别*/
    _background-color:#1e0bd1;/*IE6识别*/
    }

    /*一个用于展示的class为bb的div标签*/

    < div class ="bb"></ div >

  • Hack应用情境(二)
  • 适用范围:IE:6.0,IE7.0,IE8.0,Firefox之间的兼容
  • 实例代码:
  • .bb{
    height:32px;
    background-color:#f1ee18;/*所有识别*/
    background-color:#00deff\9; /*IE6、7、8识别*/
    +background-color:#a200ff;/*IE6、7识别*/
    _background-color:#1e0bd1;/*IE6识别*/
    }
    .bb, x:-moz-any-link, x:default{background-color:#00ff00;}/*IE7 firefox3.5及以下 识别 */ 
    @-moz-document url-prefix(){.bb{background-color:#00ff00;}}/* 仅firefox 识别 */ 
    * +html .bb{background-color:#a200ff;}/* 仅IE7 识别 */

    /*一个用于展示的class为bb的div标签*/

    < div class ="bb"></ div >

  • Hack应用情境(三)
  • 适用范围:IE:6.0,IE7.0,IE8.0,Firefox,Safari(Chrome)之间的兼容
  • 实例代码:
  • .bb{
    height:32px;
    background-color:#f1ee18;/*所有识别*/
    background-color:#00deff\9; /*IE6、7、8识别*/
    +background-color:#a200ff;/*IE6、7识别*/
    _background-color:#1e0bd1;/*IE6识别*/
    }
    @media screen and (-webkit-min-device-pixel-ratio:0){.bb{background-color:#f1ee18}}{} /*safari(Chrome) 有效 */
    .bb, x:-moz-any-link, x:default{background-color:#00ff00;}/*IE7 firefox3.5及以下 识别 */ 
    @-moz-document url-prefix(){.bb{background-color:#00ff00;}}/*仅firefox 识别*/ 
    * +html .bb{background-color:#a200ff;}/* 仅IE7 识别 */

    /*一个用于展示的class为bb的div标签*/

    < div class ="bb"></ div >

  • Hack应用情境(四)(GOOD)
  • 适用范围:IE:6.0+,FireFox:2.0+,Opera 10.0+,Sarari 3.0+,Chrome全兼容
  • 实例代码:
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">

  • <head>
  • <meta http-equiv=Content-Type content="text/html; charset=gb2312"/>
  • <style type="text/css">
  • /***************************************** 各游览器兼容CSS **********************************************/
    .bb{height:32px;background-color:#f1ee18;/*所有识别*/ background-color:#00deff\9; /*IE6、7、8识别*/ +background-color:#a200ff;/*IE6、7识别*/ _background-color:#1e0bd1/*IE6识别*/} 

    @media screen and (-webkit-min-device-pixel-ratio:0){.bb{background-color:#f1ee18}}{} /* Safari(Chrome) 有效 */
    @media all and (min-width: 0px){ .bb{background-color:#f1ee18;/*opera and Safari(Chrome) and firefox*/ background-color:#4cac70\0;}/* 仅 Opera 有效 */ }{}

    .bb, x:-moz-any-link, x:default{background-color:#4eff00;/*IE7、Firefox3.5及以下 识别 */} 
    @-moz-document url-prefix(){.bb{background-color:#4eff00;/*仅 Firefox 识别 */}} 
    * +html .bb{background-color:#a200ff;}/* 仅IE7 识别 */

    /* 一般情况下 我们区分IE7 只用 +background-color 配合 _background-color 就行了 如果必须写 .bb, x:-moz-any-link, x:default 这样的代码区分 Firefox3.5及以下 则谨记此写法对IE7也有效,故在其中要再重写一次 +background-color 或者使用 * +html .bb{background-color:blue;} 方法仅对 IE7 有效。可使用 @-moz-document url-prefix(){} 方法独立区分所有 firefox */

    .browsers td{width:8%;text-align:center;padding:8px;}} 
    .browsercolor{color:#333;font-size:18px;font-weight:bold;} 
    .ie6{background-color:#1e0bd1} 
    .ie7{background-color:#a200ff} 
    .ie8{background-color:#00deff} 
    .firefox{background-color:#4eff00} 
    .opera{background-color:#4cac70} 
    .other{background-color:#f1ee18;}

    #tipTable td,#tipTable th{border:1px solid black;width:56px;height:16px;text-align:center;} 
    #wordTable td{margin-left:8px;} 
    #firefoxTip{display:none;} 
    #firefoxTip, x:-moz-any-link, x:default{display:block;/*IE7 firefox3.5及以下 识别 */+display:none/*再区分一次IE7*/} 
    @-moz-document url-prefix(){#firefoxTip{display:block;/*仅 firefox 识别 */}} 
    #ChromeTip{display:none;} 
    @media screen and (-webkit-min-device-pixel-ratio:0){#ChromeTip{display:block;}}{} /* safari(Chrome) 有效 */ 
    @media all and (min-width: 0px){#ChromeTip{display:none\0;} /* 仅 Opera 有效 */ }{}

  • </style>
  • </head>
  • <body>
  • <table class="browsers" width="100%" cellspacing="0" cellpadding="0">
  • <tr>
  • <td>IE6</td>
  • <td></td>
  • <td>IE7</td>
  • <td></td>
  • <td>IE8</td>
  • <td></td>
  • <td>Firefox</td>
  • <td></td>
  • <td>Opera</td>
  • <td></td>
  • <td>Safari(Chrome)</td>
  • <td></td>
  • </tr>
  • <tr class="browsercolor">
  • <td class="ie6">IE6</td>
  • <td></td>
  • <td class="ie7">IE7</td>
  • <td></td>
  • <td class="ie8">IE8</td>
  • <td></td>
  • <td class="firefox">Firefox</td>
  • <td></td>
  • <td class="opera">Opera</td>
  • <td></td>
  • <td class="other">Safari(Chrome)</td>
  • <td></td>
  • </tr>
  • </table>
  • <div class="bb">
  • <span style="display:none;display:block\0;display:none\9;">Opera的辨别色是深绿色,Opera游览器很时髦么。</span >
  • <span id="firefoxTip">Firefox的辨别色是浅绿色,Firefox是很强大的游览器。</span >
  • <span id="ChromeTip">Safari和Chrome的辨别色是金黄色,Safari和Chrome使用的都是Webkit内核</span >
  • <!--[if IE 8]>IE8的辨别色是蓝色,新版IE8的功能可是不少呢。<![endif]-->
  • <!--[if IE 7]>IE7的辨别色是紫色,IE7还可以凑合着用!<![endif]-->
  • <!--[if IE 6]>IE6的辨别色是红色,不过,IE6可是有点落后了!<![endif]-->
  • </div>
  • </body>
  • </html>

附表:

时间: 2024-10-05 05:55:32

web开发之浏览器(五)----浏览器兼容CSS hack的相关文章

IE浏览器各版本的CSS Hack

IE浏览器各版本的CSS   Hack 如下示例: .test{ color:black;/*W3C*/ color:red\9;/* IE6-IE10 */ _color:black;/*IE6*/ +color:black;/*IE7*/ color:black\9\0;/*IE9 IE10 */ } 通过这样的css,就可以专门为IE各版本做css hack了

Firefox与IE的CSS兼容CSS HACK技巧

1. Div居中问题 div设置 margin-left, margin-right 为 auto 时已经居中,IE 不行,IE需要设定body居中,首先在父级元素定义text-algin: center;这个的意思就是在父级元素内的内容居中. 2.CSS 链接(a标签)的边框与背景 a链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行.参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height

web开发速查表(php,css,html5........)

经验之谈:循序渐进学习Java Web开发的五个阶段

Java web开发是Java开发中的主要方向,那什么是Java web开发呢,Java web开发就是基于J2SE的web应用程序开发,就是通过Java来解决互联网web应用的问题,互联网Web包含两个部分:web服务器和web客户端,Java语言在web服务器端的应用十分丰富,比如常用的Servlet.JSP等,总之,Java编程技术的到来给Web互联网的发展注入了一针强心剂,既然Java Web开发功能这么强大,那我们应如何循序渐进的学习Java Web开发呢?下面亦是美网络小编分为五个阶

100+ 超全的web开发工具和资源

转载出处:https://xituqu.com/170.html 作为Web开发者,这是好的时代,也是坏的时代.Web开发技术也在不断变化.虽然很令人兴奋,但是这也意味着Web开发人员需要要积极主动的学习新技术和新的编程语言,并愿意和渴望接受新的挑战,以适应变化.新的挑战可能会包括一些开发上的要求,如利用适应现有的框架来满足业务需求.测试一个网站,能从中知道出了哪些技术上的问题,并且我们针对这些问题进行优化和消除.便于后端的开发进程加快和测试.所以我们列出了完整的web开发所需要的工具和资源,助

Web开发面临的挑战主要有哪些?

摘要:要成为一名高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果.而在开发中难免会遇到一些困难,从前端到后端. 导读:要成为一名高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果.而在开发中难免会遇到一些困难,从前端到后端,近日,在问答网站知乎上,有人抛出了“Web前端开发面临的挑战主要有哪些?”和“后端开发主要的挑战有哪些?”话题,众技术大牛各抒己见,CSDN软件研发频道对本文内容进行了整理,方便大家学习与参考. 一.W

对于Web开发来说 8 个最好的跨平台编辑器

1) Best Cross Platform IDE - Brackets Brackets是一个在前端Web开发和设计人员中最流行的开放源码IDE/代码编辑器之一.它拥有一些实用工具能够将HTML 和CSS推送至浏览,而不需要保存或重新加载页面.这是一个强大的工具,你将会爱上在Bracket中编写代码. 2) Best Cross Platform IDE - Light Table Light Table是由Microsoft Visual Studio部门项目经理Chris  Grange

chrome web开发工具

顾名思义Chrome开发工具就是一个工具,它允许Web开发人员可以通过浏览器应用程序干预和操作Web页面,也可以通过这个工具调试和测试Web页面或Web应用程序.有了这个工具,你可以做很多有趣的事情: 调试界面的问题 使用断点调试JavaScript代码 优化你的代码 打开开发者工具,你只需要在页面的任意位置右击鼠标,选择检查元素或从右上角菜单中选择“工具>更多工具>开发者工具“. 下面示例演示的都是在Google Chrome的Canary浏览器下做的演示. 快速编辑HTML元素 试一试:

谷歌 Web 开发技术变迁史与踩坑史

文章的作者 CJ 是 Google 八年的资深工程师,现回国创办了在线协作文档「一起写」,这篇文章也是他与 geek 范的同事们在「一起写」协作完成的.点击 NEXT 产品集「Google 开源项目」,完整查看文中提到的技术与开源项目. 过去十几年来, Web 开发技术从最初的纯 HTML 到 CGI.PHP / JSP / ASP.Ajax.Rails.Node.js,已经发展到了一个非常成熟的阶段.去年的 Google I/O,谷歌开发者中心推出了关于 Web 开发的最佳实践手册:而今年的