有没有办法让有序列表中的数字变成粗体?

有没有任何CSSselect器只附加一些样式到有序列表的数字部分?

我有HTML像:

<ol> <li>a</li> <li>b</li> <li>c</li> </ol> 

应该输出:

 1.a 2.b 3.c 

我需要使1.,2.和3. 粗体 ,同时留下a,b,c。

我知道<span>解决方法…

反增

CSS

 ol { margin: 0 0 1.5em; padding: 0; counter-reset: item; } ol > li { margin: 0; padding: 0 0 0 2em; text-indent: -2em; list-style-type: none; counter-increment: item; } ol > li:before { display: inline-block; width: 1em; padding-right: 0.5em; font-weight: bold; text-align: right; content: counter(item) "."; } 

DEMO

的jsfiddle:

 ol { counter-reset: item; } ol li { display: block } ol li:before { content: counter(item) ". "; counter-increment: item; font-weight: bold; } 

大约一年以后,但是对于未来其他人来说,这也许也是有趣的:

另一个简单的可能性是将列表项内容包装成<p> ,将<li>为粗体,将<p>为普通。 从IA的观点来看,这也是可取的,尤其是当<li> s可以包含子列表(以避免混合具有块级元素的文本节点)时。

为您提供方便的完整示例:

 <html> <head> <title>Ordered list items with bold numbers</title> <style> ol li { font-weight:bold; } li > p { font-weight:normal; } </style> </head> <body> <ol> <li> <p>List Item 1</p> </li> <li> <p>Liste Item 2</p> <ol> <li> <p>Sub List Item 1</p> </li> <li> <p>Sub List Item 2</p> </li> </ol> </li> <li> <p>List Item 3.</p> </li> </ol> </body> </html> 

如果您更喜欢使用更通用的方法(也会覆盖其他情况,比如带<li>的其他后代<li> <p> ,则可能需要使用li > *而不是li > p

 <html> <head> <title>Ordered list items with bold numbers</title> <style> ol li { font-weight:bold; } li > * { font-weight:normal; } </style> </head> <body> <ol> <li> <p>List Item 1</p> </li> <li> <p>Liste Item 2</p> <ol> <li> <p>Sub List Item 1</p> </li> <li> <p>Sub List Item 2</p> </li> </ol> </li> <li> <p>List Item 3.</p> </li> <li> <code>List Item 4.</code> </li> </ol> </body> </html> 

(检查列表项目4是ol / li / code而不是ol / li / p / code,只要确保使用select器li > *而不是li * ,如果只想将块级别的后代设置为有规律的,但也不像“foo <strong>粗体字</strong> foo”。

我在写新闻时遇到类似的问题。 所以我不得不这样插入风格:

 <ol> <li style="font-weight:bold"><span style="font-weight:normal">something</span></li> <li style="font-weight:bold"><span style="font-weight:normal">something</span></li> <li style="font-weight:bold"><span style="font-weight:normal">something</span></li> </ol> 

这是dcodesmith的答案更新https://stackoverflow.com/a/21369918/1668200

build议的解决scheme也适用于文本较长(即行需要换行): 更新小提琴

当您使用网格系统时,您可能需要执行以下操作之一(至less对于Foundation 6来说这是真的 – 无法在小提琴中重现):

  • 添加box-sizing:content-box; 到列表或其容器
  • 或者更改text-indent:-2em;-1.5em

PS:我想添加这个作为原始答案的编辑,但它被拒绝。

如果你正在使用Bootstrap 4:

 <ol class="font-weight-bold"> <li><span class="font-weight-light">Curabitur aliquet quam id dui posuere blandit.</span></li> <li><span class="font-weight-light">Curabitur aliquet quam id dui posuere blandit.</span></li> </ol>