是否可以使用CSS last-child
来执行此操作?
我可以使用同一个类添加last-child
并将第二个边框设为更小的px吗?或者唯一的方法是添加不同的类名?
.border {
border: 3px solid black;
width: 80px;
display: inline-block;
}

<div class="border"></div>
<div class="border"></div>
&#13;
答案 0 :(得分:3)
你需要包装border
div,然后使用:last-child
你可以实现这一点。
使用
wrapper
后面:last-child
的原因只会尝试 匹配父元素的最后一个子元素
.border {
border: 3px solid black;
width: 80px;
display: inline-block;
}
.border:last-child {
width: 40px;
}
&#13;
<div class="wrapper">
<div class="border"></div>
<div class="border"></div>
</div>
&#13;
答案 1 :(得分:0)
是的,您可以使用last-child
。 last-child
选择器需要父div。请检查代码。
.border {
border: 3px solid black;
width: 80px;
display: inline-block;
}
div.border:last-child {
width: 40px;
}
&#13;
<div>
<div class="border"></div>
<div class="border"></div>
</div>
&#13;
答案 2 :(得分:0)
如果使用一个元素并且没有复杂的选择器,那么更简单的方法是什么:
.border {
height:5px;
width: 160px;
/*the gradient will create the separation of the background*/
background:linear-gradient(#fff,#fff) 100px 0 /5px 100% no-repeat;
background-color:#000;
}
&#13;
<div class="border"></div>
&#13;
以下是如何使它像你的形象一样:
.border {
height:80px;
width: 200px;
background:
linear-gradient(red,red) 20px 50% /100px 5px no-repeat,
linear-gradient(green,green) calc(100% - 20px) 50% /50px 5px no-repeat;
background-color:orange;
}
&#13;
<div class="border"></div>
&#13;