若实现效果如下,css伪类可以把握的死死的↓↓↓
举个栗子:
<div class="contents">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
<style>
.contents{
display: flex;
flex-direction: row;
justify-content: space-around;
}
.contents div{
height: 150px;
line-height: 150px;
width: 150px;
background: #ccc;
text-align: center;
color:#fff;
}
</style>
方法一:
:not(selector) 选择器匹配非指定元素/选择器的每个元素。
:first-child 选择器用于选取属于其父元素的首个子元素的指定选择器。<style> .contents div:not(:first-child){ background:blue; } </style>
方法二:
使用nth-of-type()或者nth-child()。
(n是从0开始的,那么n+2自然就是从第2个元素开始了,同理如果选中单数元素那么就是2n+1,如果是想选中双数元素,那么就应该写成2n+2;具体情况可以根据项目情况使用。)
<style>
.contents div:nth-of-type(n+2){
background:blue;
}
</style>
或者:
<style>
.contents div:nth-child(n+2){
background:blue;
}
</style>
方法三:巧妙使用+或者~兄弟选择符 。
(+ 选择器:如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。~ 选择器 :作用是查找某一个指定元素的后面的所有兄弟结点。)
<style>
.contents div+div{
background:blue;
}
</style>
或者:
<style>
.contents div~div{
background:blue;
}
</style>
说明:css兄弟选择器(+ 和 ~)的区别和效果,如下本人是做一个操作备忘,学习啦css兄弟选择器(+ 和 ~)的使用和区别 1.+ 选择器
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。 比如:
<p>This is paragraph.</p>
<h1>This is a heading.</h1>
<p>This is paragraph.</p>
<style type="text/css">
h1 + p {
margin-top:50px;
color:red;
}
</style>
效果如下:
兄弟选择器只会影响下面的p标签的样式,不影响上面兄弟的样式。
注意这里的’+’的意义跟’and’意义不一样,兄弟选择器的样式是应用在兄弟元素上,跟参照的元素样式无关,如上例只影响p元素的样式,而不影响h1标签的样式。 当然这个也会循环查找,即当两个兄弟元素相同时,会一次循环查找:
<div>
<ul>
<li>List item 1</li>
<li>List item 2</li>
<li>List item 3</li>
</ul>
</div>
<style type="text/css">
li + li {
color:red;
}
</style>
运行之后第一个li字体颜色没有变红,第二个和第三个元素字体变红,这就是因为第三个li是第二个li的兄弟元素,所以也会应用样式。
2. ~ 选择器
作用是查找某一个指定元素的后面的所有兄弟结点。 示例代码:
<p>1</p>
<h3>2</h3>
<p>3</p>
<p>4</p>
<p>5</p>
<style type="text/css">
h1 ~ p{
color:red;
}
</style>
运行之后h3标签之后的p标签包裹的字体都是呈红色。