您可以为订购的清单编号设置样式吗?


89

我正在尝试为有序列表中的数字设置样式,我想添加背景颜色,边框半径和颜色,以便它们与我正在使用的设计相匹配:

在此处输入图片说明

我想这是不可能的,我将不得不为每个数字使用不同的图像,即

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

有没有更简单的解决方案?


3
您可以在这里通过jsfiddle.net/viphalongpro/Hj8Nn BTW从我的演示中研究解决方案,我认为这是不可能搜索的,首先搜索可能会给您很多结果,就这样,这种问题已经问了很多遍。
King King

1
信息的一些链接1. codeitdown.com/ordered-list-css-styles 2. css-tricks.com/numbering-in-style这是一个很好的qtn,但是一点点搜索可能会为您提供答案
巧手

1
@KingKing-我建议将其标记为重复,然后...
Lee Taylor

Answers:


188

您可以结合使用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>


12
counter-reset: item;应该在醇块,否则计数器不会在嵌套<OL>复位。
MichaelKlöpzig'16

2
一个不错的解决方案,但是当li元素的主体超过一行时,呈现效果如何?
cmhughes

我认为,就像在stackoverflow.com/questions/13354578/…中一样,您可以使用`margin-left:-2.0em; 宽度:-2.0em;`
cmhughes

50%for的值border-radius(而不是100%)足以获得一个圆。(例如,见Lea Verou,“边界半径的奇怪案例:50% ”,2010
Jim Ratliff

@cmhughes-如果您想这样做,则可以给出li position: relative;,然后再:before给出,position: absolute;然后使用topleft完全将其定位。
迈克

25

我在寻找不同的东西,并在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>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.