css3中last_child兼容

CSS3中的:last-child伪类用于选取某个元素的最后一个子元素。但是,由于IE8及以下版本不支持这个伪类,因此需要进行兼容处理。

css3中last_child兼容

一种可行的兼容方案是使用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;
}

以上代码选择了所有<li>元素中第一个和最后一个元素之间的所有元素,并将其背景色设为灰色。

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效