还是要再次强调这篇文章--CSS hack ,给我的帮助下面总结一下调试ie兼容性问题中好用的hack。
兼容ie6,只需要在要兼容的dom元素上加一个选择器名称(selecter)即可,其他浏览器亦是如此,如下:
*html .selecter{
border:red solid 1px;
}
兼容ie7的:
*+html .selecter{
border:red solid 1px;
}
兼容ie9的:
:root .selecter{
border:red solid 1px;
}
兼容ie11的:
_:-ms-fullscreen, :root .selecter{
border:red solid 1px;
}
经过实践还是发现了一个问题如下:
如果你用sass写css的话,上图我划红线的*html的写法是不能写到.scss文件中的。这样的话他生成不到.css文件中。监听报错:
如果想让他生效,只能把他拷贝到.css文件中了。
另外还有兼容ie8及以下的选择器hack方法,这种写法比较特别,_::selection, .selecter-copy:not([attr*='']) {},这种写法兼容《=IE8的浏览器。他的含义是>IE8的浏览器将dom元素的css属性设置在其中,然后<=IE8的浏览器将css设置在别的class中。如下所示:
dom结构:
_::selection, .selecter-copy:not([attr*='']) {
css:
.selecter{
padding-top:12px;
}
_::selection, .selecter-copy:not([attr*='']) {
padding-top:0px;
}
这样写就可以兼容<=IE8的浏览器啦!