为什么我不能使用display:table-row with list-style-type:decimal?

时间:2012-04-12 18:07:50

标签: html css

为什么我无法将display:table-row;list-style-type:decimal;一起使用?

我的CSS文件:

ol {
    list-style-type: decimal;
}

li {
    background-color: red;
    display: table-row;
}

我的HTML文件:

<ol>
    <li>This is the first.</li>
    <li>This is the second.</li>
</ol>

JSFiddle

目标:我只想显示每行的数字,所有<li>只要是最长的项目。

1 个答案:

答案 0 :(得分:4)

因为list-style-type仅适用于display:list-item。 :/

the specification

  

list-style-type
  适用于: display: list-item

的元素

修改根据评论中的新信息,您可以在现代浏览器上执行此操作:
http://jsfiddle.net/XMrbu/12/

ol {
   list-style-type:none;        
   counter-reset: sectioncounter;
}                      
li { display:table-row }
li:before {
   content: counter(sectioncounter) ":";
   counter-increment: sectioncounter;
   display:inline-block; width:2em; text-align:right;
   position:relative; left:-2.5em; margin-right:-2em;
}​

或者是这样的:
http://jsfiddle.net/XMrbu/14/

ol {
   display:inline-block;
   list-style-type:decimal;
   background:rgba(255,0,0,0.2);
}                      

如果您将ol设为display:inline-block(或float它,它将自动折叠到内部最长项目的宽度。然后,您可以根据需要设置olli的样式。