如何为同className的所有元素(除第一个外)应用CSS样式
解决方法:为除第一个外的
.flw__subform-instance元素添加边框 你的代码失效的核心原因是:.flw__subform-instance:first-child 这个选择器根本匹配不到任何元素。因为父容器 flw__subform__content-wrapper 的第一个子元素是 flw__subform__header,而不是你要排除的那个 .flw__subform-instance。first-child 选择器只认父元素的第一个子节点,不管它有没有目标类名。
下面给你两种靠谱的解决方式:
方式一:相邻兄弟选择器(兼容性最好)
利用相邻兄弟选择器 ~,给第一个 .flw__subform-instance 之后的所有同类型元素添加边框,同时统一设置所有元素的内边距:
/* 给所有实例设置统一内边距 */ .flw__subform-instance { padding: 20px; } /* 给第一个实例之后的所有同类型元素添加上边框 */ .flw__subform-instance ~ .flw__subform-instance { border-top: 1em solid #ddd; }
方式二::nth-child 精准定位
通过父容器配合 nth-child(n+2),直接选中父容器中第2个及以后的 .flw__subform-instance 元素(因为第一个目标元素是父容器的第2个子节点):
/* 给所有实例设置统一内边距 */ .flw__subform-instance { padding: 20px; } /* 选中父容器中第2个及以后的目标元素添加上边框 */ .flw__subform__content-wrapper .flw__subform-instance:nth-child(n+2) { border-top: 1em solid #ddd; }
这两种方式都能实现你要的效果,第一种兼容性覆盖所有现代浏览器及旧版IE,第二种同样兼容性优异,按需选择即可。
内容的提问来源于stack exchange,提问作者shanky
相关产品推荐
相关产品推荐

