例如,我有项目列表,当且仅当有正好8,11,14 ……等兄弟元素时,我希望最后两个看起来不同(所以8 3n).
如果还有其他数量的孩子,我希望他们看起来都一样.
解决方法 到目前为止,最简单的方法是使用自己的一组伪类来定位要设置样式的2个元素.正如你所说,最后一个孩子由3n 8(8,14 ……)代表.然后,倒数第二个孩子是3n 7(7,10,13 ……).
li:nth-last-child(1):nth-child(3n+8),li:nth-last-child(2):nth-child(3n+7) { color: red;}ul { counter-reset: item; List-style-type: none; }li { display: inline; padding: 0.25em; }li::before { content: counter(item); counter-increment: item; }
<ul><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li><li><li><li><li></ul>
您也可以使用一个复杂的选择器,使用Can CSS detect the number of children an element has?中的技术,用3n 8代替:nth-last-child()参数,并使用额外的:nth-last-child(-n 2)来定位最后两个具有一个伪类的元素:
li:first-child:nth-last-child(3n+8) ~ li:nth-last-child(-n+2) { color: red;}ul { counter-reset: item; List-style-type: none; }li { display: inline; padding: 0.25em; }li::before { content: counter(item); counter-increment: item; }
<ul><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li><li><li><li></ul><ul><li><li><li><li><li><li><li><li><li><li><li><li><li><li></ul>总结
以上是内存溢出为你收集整理的html – 只有当CSS中有Y兄弟时,我如何定位最后N个兄弟元素?全部内容,希望文章能够帮你解决html – 只有当CSS中有Y兄弟时,我如何定位最后N个兄弟元素?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)