你可以设计有序的清单编号吗?

时间:2014-05-12 13:17:17

标签: html css html-lists sprite

我试图找到一种在有序列表中设置数字样式的方法,我想为它们添加背景颜色,边框半径和颜色,以便它们可以匹配设计I&#39 ;我的工作来自:

enter image description here

我猜不可能,而且我必须为每个号码使用不同的图像,例如。

ol li:first-child{list-style-image:url('1.gif')};
ol li:nth-child(2) {list-style-image:url('2.gif');} etc...

我以为我可以使用精灵来使这个稍好一些,但是有没有更简单的解决方案?

3 个答案:

答案 0 :(得分:158)

您可以使用CSS counters: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>

答案 1 :(得分:22)

我正在寻找不同的东西,并在CodePen上找到了这个例子;

试试这个:http://codepen.io/sawmac/pen/txBhK

&#13;
&#13;
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;
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

2021 更新,您可以在最近的浏览器中使用 ::marker 伪元素选择器:https://developer.mozilla.org/en-US/docs/Web/CSS/::marker

 li::marker {
   color: red;
 }
 li {
   color: blue;
 }
<ol>
  <li>item</li>
  <li>item</li>
  <li>item</li>
  <li>item</li>
</ol>