求有什么方法可以让ie8兼容css3的nth-child,:after这种伪类选择题

html-css0131

求有什么方法可以让ie8兼容css3的nth-child,:after这种伪类选择题,第1张

nth-child这个倒是可以换个思路实现,这个一般用在ul li标签中,奇偶行的mouseover效果,ul li:nth-child(odd){color:#fff}/*选取偶数*/

ul li:nth-child(even){color:#fff}/*选取奇数*/

以上的是兼容的写法,改进后的写法如下:

ul li:first-child{color:#fff}/*选取第一个li*/

ul li:first-child+li+li{color:#fff}/*选取第三个li*/

依次还可以有第5个li,等等,好在开发中li的个数一般不会多,虽然是个比较麻烦的做法,好歹能解决问题,至于after,before之类的,也不能说没法实现,也是曲线救国的方法,有个简单的思路你可以参考下,你应该清楚的是after是主样式加载完之后才表现的,after说白了也是一个样式表,或者说是个额外的class,那么好了,后期我们通过JS可以添加这个Class了,具体这个after通过鼠标点击添加呢 还是download时候就加载这个就看你了,以上为思路,仅供参考

1.1、nth-child(n)     父元素下的第n个子元素,n必须大于0,索引都是从1开始。

<div>

<p>多云转晴</p>

<p>多云转晴</p>

<p>多云转晴</p>

<p>多云转晴</p>

<p>多云转晴</p>

</div>

div p:nth-child(2){

background: skyblue

}

1.2、nth-child(odd)   父元素下的奇数子元素  等同于 nth-child(2n-1)

div p:nth-child(odd){

background: skyblue

}

1.3、nth-child(even)  父元素下的偶数子元素 同样区分子元素类型   等同于nth-child(2n)

div p:nth-child(even){

background: skyblue

}

二、nth-of-type  匹配属于父元素的特定类型的第 N 个子元素的每个元素 忽略不是该类型的元素的存在

<div>

<h3>天气</h3>

<p>多云转晴</p>

<p>多云转晴</p>

<p>多云转晴</p>

<p>多云转晴</p>

<p>多云转晴</p></div>

div p:nth-of-type(1){

background: skyblue

}

文章来源于网络,望采纳

别误会,IE是不支持CSS3高级选择器,包括最新的IE8(详见《CSS选择器的浏览器支持》),但是CSS选择器的确是很有用的,它可以大大的简化我们的工作,提高我们的代码效率,并让我们很方便的制作高可维护性的页面。 然而IE对高级CSS选择器特别是CSS3选择器的支持让我们一直不能将CSS选择器推广应用。不过,虽然我们无法左右浏览器的市场份额,却可以通过一些技术改善我们的工作。我们也可以使用其它的一些技术,让IE可以变相支持CSS3选择器。 一位来自英国的网页开发工程师Keith Clark开发了一个JavaScript方案来使IE支持CSS3选择器。该脚本支持从IE5到IE8的各个版本。 用法 你只需要下载Robert Nyman的DOMAssistant脚本和ie-css3.js并将它们在你的页面的head标签中导入,如下: <head> <script type="text/javascript" src="DOMAssistantCompressed-2.7.4.js"></script> <script type="text/javascript" src="ie-css3.js"></script> </head> 支持的选择器 nth-child nth-last-child nth-of-type nth-last-of-type first-child last-child only-child first-of-type last-of-type only-of-type empty ie-css3的一些限制 样式表必须通过《link》标签引入。页面级的样式表或者内联的样式表将无效。不过 可以在外部样式文件中使用@import 导入其它样式文件; 样式表文件必须和页面放在同一个域名下面; 使用file://路径的样式文件将由于浏览器的安全问题而不起作用; :not()选择器尚不支持; 该方法不是动态的,样式被应用之后再改变DOM,将会无效。 如何工作的? ie-css3.js下载页面的每一个样式文件并解析它的CSS3伪选择器。如果一个选择器被找到,它就会被替换为同名的CSS class。比如: div:nth-child(2) 将会变成 div._iecss-nth-child-2 。然后,Robert Nyman的DOMAssistant用于寻找匹配元素CSS3选择器的DOM节点然后将相应的CSS类添加给它。 最终,元素的样式表会被新的版本替代,然后用CSS3选择器对相应元素添加对应的样式。 避免IE的CSS解释器 根据W3C的规定,一个浏览器应该无视它不认识的CSS规则。这就出现一个问题——我们需要利用样式表文件中的CSS3选择器,但是IE会将它们丢弃。 为了避免这个问题,每一个样式文件都会通过XMLHttpRequest下载。这允许该脚本绕开浏览器内置的CSS解释器并能够读取原始的CSS文件。