css获取除第一个之外的子元素

时间: 2018-04-09阅读: 646标签: 伪类

在前端页面开发中,需要使用css来选择除了第一个之外的子元素,例如希望每个span之间能间隔一定的距离,单不能给每个span设置margin-left,这样会导致第一个span的前面有间距,影响排版。下面就来讲解实现css获取除第一个之外的子元素的多种方法。


效果如下:



基本结构如下:

<style>
.dom div{
    float: left;
    height: 150px;
    line-height: 150px;
    width: 150px;
    margin: 20px;
    background: #ccc;
    text-align: center;
    color:#fff;
}
</style>
 <div class="dom">
    <div>1</div>
    <div>2</div>
    <div>3</div>
</div>


方法1:使用伪类选择器:not  

<style>
.dom  div:not(:first-child){
	background:red;
}
</style>

说明:

:not(selector) 选择器匹配非指定元素/选择器的每个元素。  

:first-child 选择器用于选取属于其父元素的首个子元素的指定选择器。 


方法2:使用nth-of-type或者nth-child 

<style>
.dom div:nth-of-type(n+2){
	background:red;
}
</style>

或者:

<style>
.dom div:nth-child(n+2){
	background:red;
}
</style>

说明:

n是从0开始的,那么n+2自然就是从第2个元素开始了,同理如果选中单数元素那么就是2n+1,如果是想选中双数元素,那么就应该写成2n+2;具体情况可以根据项目情况使用。 


方法3:巧妙使用+或者~兄弟选择符  

<style>
.dom div+div{
   background:red;
}
</style>

或者:

<style>
.dom div~div{
  background:red;
}
</style>

说明:

+ 选择器:如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。

~ 选择器 :作用是查找某一个指定元素的后面的所有兄弟结点。  

由于都是div元素,第一个元素没有兄弟元素,所以就能获取除第一个之外的子元素。至于css兄弟选择器(+ 和 ~)的区别请点链接:http://www.fly63.com/article/detial/603





fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

广告合作文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯