CSS3中的:last-child
伪类用于选取某个元素的最后一个子元素。但是,由于IE8及以下版本不支持这个伪类,因此需要进行兼容处理。
一种可行的兼容方案是使用JavaScript,通过获取元素的最后一个子节点来为其添加类名,从而实现样式的控制。例如:
if (!("lastElementChild" in document.documentElement)) {
Object.defineProperty(Element.prototype,"lastElementChild",{
get: function() {
return this.children[this.children.length - 1];
}
});
}
以上代码通过检测浏览器是否支持lastElementChild
属性来进行兼容处理。如果不支持,则通过Object.defineproperty()
方法为Element
原型添加lastElementChild
属性,使其返回该元素的最后一个子节点。
另一种方案是使用CSS2选择器:first-child + :last-child
,该选择器可以同时匹配一个元素的第一个和最后一个子元素。例如:
li:first-child + li:last-child {
background-color: #999;
}