我必须在CSS中实现以下的圆和线组合,我正在寻找有效实现这一点的指针。圈子和线条应该如下所示:
我能够实现这样的圈子:
span.step { background: #ccc; border-radius: 0.8em; -moz-border-radius: 0.8em; -webkit-border-radius: 0.8em; color: #1f79cd; display: inline-block; font-weight: bold; line-height: 1.6em; margin-right: 5px; text-align: center; width: 1.6em; }
但是线条对我来说很难理解。
圆的大小根据是否为活动步长而变化,连接圆的线的颜色也会根据状态而变化。我该如何做到这一点?
解决方法
您可以使用伪元素和相邻的兄弟选择器(〜)无需额外的标记来实现此效果:
HTML:
<ul> <li>1</li> <li>2</li> <li>3</li> <li class="active">4</li> <li>5</li> <li>6</li> <li>7</li> </ul>
CSS:
li { width: 2em; height: 2em; text-align: center; line-height: 2em; border-radius: 1em; background: dodgerblue; margin: 0 1em; display: inline-block; color: white; position: relative; } li::before{ content: ''; position: absolute; top: .9em; left: -4em; width: 4em; height: .2em; background: dodgerblue; z-index: -1; } li:first-child::before { display: none; } .active { background: dodgerblue; } .active ~ li { background: lightblue; } .active ~ li::before { background: lightblue; }