因为各浏览器对页面的解析不一样,会致使页面在不一样浏览器中显示的样式不一致,为了保持页面的统一,常常须要对浏览器进行兼容性问题的调试。html
CSS Hack浏览器
面对浏览器诸多的兼容性问题,常常须要经过CSS样式来调试,其中用的最多的就是CSS Hack。所谓CSS Hack就是针对不一样的浏览器书写不一样的CSS样式,经过使用某个浏览器单独识别的样式代码,控制该浏览器的显示效果。CSS Hack主要分为两类调试
CSS 选择器Hackhtm
CSS选择器Hack是指经过在CSS选择器的前面,加上一些只有特定浏览器才能识别的Hack前缀,来控制不一样的CSS样式。针对不一样版本的浏览器,选择器Hack分为如下几类:table
(1)IE6及IE6如下版本识别的选择器Hackast
书写CSS样式时,若是但愿此样式只对IE6及IE6如下版本的浏览器生效,能够使用IE6及如下版本的选择器Hack,其基本语法以下:import
* html 选择器{样式代码}兼容性
(2)IE7识别的选择器Hackhack
书写CSS样式时,若是但愿此样式只对IE7浏览器生效,能够使用IE7识别的选择器Hack,其基本语法以下:语法
*+html 选择器{样式代码}
CSS属性Hack
这里小强老师,把属性hack分为 前缀属性hack和 后缀属性hack
CSS属性Hack(前缀) |
针对的浏览器 |
_color:red; |
IE6及其如下的版本 |
*color:red ;或者 +color:red; |
IE7及其如下的版本 |
CSS属性Hack(后缀) |
针对的浏览器 |
color:red\9; |
IE6/IE7/IE8/IE9/IE10版本 |
color:red\0; |
IE8/IE9/IE10版本 |
color:red\9\0; |
IE9/IE10 |
color:red!important |
IE7/IE8/IE9/IE10及其余非IE浏览器 |
其实,如今愈来愈的公司,不太让兼容ie6了,如今比较关心的是ie8.910等高版本的浏览器,所以这里小强老师也总结了ie专属hack ,好比ie8等。
选择器Hack写法 |
针对于的浏览器 |
@media screen\9{body { background: red; }} |
只对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 (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} |
只对IE10有效 |
若是样式比较多,条件注释,是不错的选择:
IE条件注释语句
IE条件注释语句 |
针对的浏览器版本 |
<!--[if lt IE 7]>内容<![endif]--> |
IE7 如下版本 |
<!--[if lte IE 7]>内容<![endif]--> |
IE7及如下版本(包含IE7) |
<!--[if gt IE 7]>内容<![endif]--> |
IE7 以上版本 |
<!--[if gte IE 7]>内容<![endif]--> |
IE7及以上版本(包含IE7) |
<!--[if !IE 7]>内容<![endif]--> |
非IE7版本 |
<!--[if !IE]><!-->您使用不是 Internet Explorer<!--<![endif]--> |
非IE浏览器 |