顺便学习下CSS选择器 奇偶匹配nth-child(even)
需求:
①前端页面最多显示三个tag,多余的在代码中全部显示。
②且在调用接口的时候也要起作用,后端到时会将全部数据渲染出。
之前是用jQuery实现的,没有想到css3也可以实现(点击“加载更多”拉取数据的时候也起作用)
html:
<div class="key_box"> <a href="#">链接1</a> <a href="#">链接2</a> <a href="#">链接3</a> <a href="#">链接4</a> <a href="#">链接5</a> <a href="#">链接6</a> </div>
css:
<style> /* 表示选择列表中的标签从0到3,即小于3的标签 */ .key_box a:nth-child(-n+3) { color: green; } /* 表示选择列表中的标签从第3个开始一直到最后 */ .key_box a:nth-child(n+4) { /* color: green; */ display: none; } </style>
结果:(只显示3个,第三个开始隐藏掉了)
结果.png
附:
css3:nth-child选取第几个标签元素
选择标签 | 选择第几个 |
---|---|
nth-child(3) | 选择第3个 |
nth-child(2n) | 选择偶数标签 |
nth-child(2n-1) | 选择奇数标签 |
nth-child(n+3) | 选择从第3个标签开始到最后 |
nth-child(-n+3) | 选择从第0到3,即小于3的标签 |
方法二:(也可以实现,但不推荐!!)
其实思路就是通过JQ给之后不显示的标签增加display:none
<script> var num = $('.key_box').children('a').length; for (var i = 0; i < num; i++) { if (i > 2) { $('.key_box a')[i].style.display = 'none'; } } </script>
正方向范围
li:nth-child(n+6)
选中从第6个开始的子元素
负方向范围
:nth-child(-n+9)
选中从第1个到第9个子元素。使用 :nth-child(-n+9) ,就相当让你选中第9个和其之前的所有子元素
前后限制范围
:nth-child(n+4):nth-child(-n+8)
选中第4-8个子元素。使用 nth-child(n+4):nth-child(-n+8) 我们可以选中某一范围内子元素,上面的例子里是从第4个到第8个子元素
奇数、偶数位
:nth-child(odd)
:nth-child(even)
隔选择子元素
:nth-child(3n+1),
选择1,4,7,10
范围高级用法
nth-child(n+2):nth-child(odd):nth-child(-n+9)
使用 nth-child(n+2):nth-child(odd):nth-child(-n+9) 我们将会选中的子元素是从第2位到第9位,并且只包含奇数位。