我正在尝试为有序列表中的数字设置样式,我想添加背景颜色,边框半径和颜色,以便它们与我正在使用的设计相匹配:
我想这是不可能的,我将不得不为每个数字使用不同的图像,即
ol li:first-child {list-style-image:url('1.gif')};
ol li:nth-child(2) {list-style-image:url('2.gif');}
etc...
有没有更简单的解决方案?
我正在尝试为有序列表中的数字设置样式,我想添加背景颜色,边框半径和颜色,以便它们与我正在使用的设计相匹配:
我想这是不可能的,我将不得不为每个数字使用不同的图像,即
ol li:first-child {list-style-image:url('1.gif')};
ol li:nth-child(2) {list-style-image:url('2.gif');}
etc...
有没有更简单的解决方案?
Answers:
您可以结合使用CSS计数器和:before
伪元素来执行此操作 :
ol {
list-style: none;
counter-reset: item;
}
li {
counter-increment: item;
margin-bottom: 5px;
}
li:before {
margin-right: 10px;
content: counter(item);
background: lightblue;
border-radius: 100%;
color: white;
width: 1.2em;
text-align: center;
display: inline-block;
}
<ol>
<li>item</li>
<li>item</li>
<li>item</li>
<li>item</li>
</ol>
counter-reset: item;
应该在醇块,否则计数器不会在嵌套<OL>复位。
li
元素的主体超过一行时,呈现效果如何?
li
position: relative;
,然后再:before
给出,position: absolute;
然后使用top
和left
完全将其定位。
我在寻找不同的东西,并在CodePen中找到了该示例。
试试这个:http : //codepen.io/sawmac/pen/txBhK
body {
font-size: 1.2em;
font-family: "Helvetica Neue", Helvetica, sans-serif;
margin: 50px;
}
.custom-counter {
margin: 0;
padding: 0;
list-style-type: none;
}
.custom-counter li {
counter-increment: step-counter;
margin-bottom: 5px;
}
.custom-counter li::before {
content: counter(step-counter);
margin-right: 20px;
font-size: 80%;
background-color: rgb(180, 180, 180);
color: white;
font-weight: bold;
padding: 3px 8px;
border-radius: 11px;
}
<ol class="custom-counter">
<li>This is the first item</li>
<li>This is the second item</li>
<li>This is the third item</li>
<li>This is the fourth item</li>
<li>This is the fifth item</li>
<li>This is the sixth item</li>
</ol>