之前在兼容一个网页的时候,ie8,ie9下的布局不一样。就想着针对ie8,ie9来做一个css hack。网上搜索来资料。\9与\9\0来区别ie8,ie9.我要兼容的属性时margin-top。但发现实现的效果ie8,ie9一样。我当时感到很迷惑。想难道这个方法不对。然后我就用跟这个方法去兼容颜色。却发现在ie8,ie9下有区别了。就感到很迷惑。我猜测可能的原因是这个hack属性只支持一部分样式的属性。后来我去专门找兼容ie9的方法。网上找到了:
:root #foo{ color:#eee\9; }但用了这个方法后。发现在ie10下打开页面。发现这个方法也适用于ie10。于是继续寻找ie10专属的hack。经过慢慢寻找,也终于找到。先加入脚本。 <!--[if !IE]><!--><script> if (/*@[email protected]*/false) { document.documentElement.className+=‘ ie10‘; } </script><!--<![endif]-->上面是用IE私有的条件编译(conditional compilation)结合条件注释来提供针对ie10的Hack:该脚本里面的IE排除条件注释,以确保IE6-9不承认它,然后它功能检测到了名为@ cc_on。 然后继续给元素加样式 .ie10 .example { /* IE10-only styles go here */ }
时间: 2024-10-29 11:26:02