如何恢复" auto"嵌套无序列表中list-style-type的值?

时间:2012-06-13 23:57:09

标签: css

默认情况下,一组无框架的嵌套<ul>列表看起来像这样(至少在Chrome,Firefox和IE中):

Nested <ul> screenshot

最高级别list-style-typedisc,下一级为circle,后续级别为square

如果我添加了将list-style-type更改为none的样式表,是否有一种简单的方法可以在文档后面恢复为“自动项目符号类型”? (例如,使用后续CSS定义或JavaScript样式更改覆盖)

基本上,我正在寻找像list-style-type: auto;这样的东西(显然无效且无效):

<style type="text/css">
    ul { list-style-type: none; }
    ul { list-style-type: auto; } /* Does not work */
</style>

list-style-type设置回disc会更改列表中的每个项目符号,并且我不再在不同级别看到不同的项目符号,因此也不起作用。

通过明确定义每个级别的样式是唯一的方法吗? e.g:

<style type="text/css">
    ul { list-style-type: disc; }
    ul ul { list-style-type: circle; }
    ul ul ul { list-style-type: square; }
</style>

3 个答案:

答案 0 :(得分:1)

使用类来编写类似的内容:

ul { list-style-type: none; }
.list_default { list-style-type: circle; }

然后在你想要应用项目符号的ul上,

<ul class="list_default">
    <li>one</li>
    <li>two</li>
</ul>

另外,在不使用“自动”行为时,请接受其他海报建议。标准和制造商定义的默认值有很多专有扩展,这些扩展只会让你以后再拔掉头发。现在养成不依赖于理智的良好习惯。

答案 1 :(得分:0)

  

是通过为每个级别明确定义样式来实现此目的的唯一方法吗?

是的,使用ul,这是唯一的方法。基本上这正是铬正在做的事情。

如果你仍然希望从第二级开始保持chrome样式,请不要在第一级使用ul!使用div ...

答案 2 :(得分:0)

我最近遇到了这种需求(没有嵌套,但仍然倾向于不设置罗马与希腊等)并且成功使用inherit。当然,效果会根据已定义的规则而有所不同,但它在我的情况下有效。