Tus*_*ada 7 html javascript css
我正在尝试为具有连续css类的div使用不同的css样式,并为同一类的单个div使用不同的css样式。
如果解释令人困惑,这就是我想要实现的目标。
.row {
display: flex;
margin: 20px;
}
.number {
width: 32px;
height: 32px;
display: flex;
justify-content: center;
align-items: center;
}
.number.bg {
background-color: #e24381;
color: #ffffff;
border-radius: 24px 0 0 24px;
}
.number.bg ~ .number.bg {
border-radius: 0 24px 24px 0;
}Run Code Online (Sandbox Code Playgroud)
<div class="row">
<div class="number">1</div>
<div class="number bg">2</div>
<div class="number bg">3</div>
<div class="number bg">4</div>
<div class="number">5</div>
<div class="number">6</div>
<div class="number bg">7</div>
</div>Run Code Online (Sandbox Code Playgroud)
这应该是输出:
可以仅通过CSS完成,还是也需要JavaScript?
对于普通 CSS 解决方案,您可以使用伪元素来为您执行此操作:
设置border-radius: 25px为bg元素,
bg使用伪元素填充连续元素中的边框间隙,该伪元素绝对定位并堆叠在bg元素后面,并使用负 margin进行移动。
请参阅下面的演示:
.row {
display: flex;
margin: 20px;
}
.number {
width: 32px;
height: 32px;
display: flex;
justify-content: center;
align-items: center;
}
.number.bg {
background-color: #e24381;
color: #ffffff;
border-radius: 25px;
position: relative;
}
.number.bg+.bg:before {
content: '';
display: block;
background-color: #e24381;
margin-left: -50%;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: -1;
position: absolute;
}Run Code Online (Sandbox Code Playgroud)
<div class="row">
<div class="number">1</div>
<div class="number bg">2</div>
<div class="number bg">3</div>
<div class="number bg">4</div>
<div class="number">5</div>
<div class="number">6</div>
<div class="number bg">7</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |