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

摘要:有时候我们需要用CSS选择非第一个子元素,例如下面这样的HTML,希望让两个span之间间隔一定的距离,但又不希望简单的给每个span设置margin-right(会导致最后一个span也有margin-right,可能影响之后元素的排版)。

在前端页面开发中,需要使用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.shenqiku.cn/article/FLY_603





本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_602