ul嵌套列表的第一级没有边距?

时间:2011-07-04 07:20:16

标签: css list margin html-lists

我想要一个样式列表,在第一级没有留下余量..但是在后续的,水平的子列表上做..有谁知道怎么做?

<ul>
<li>no margin</li>
<li>
    <ul>
    <li>yes margin</li>
    </ul>
</li>
</ul>

(不将css类添加到第一级ul或更改任何代码)

5 个答案:

答案 0 :(得分:8)

如果您希望将此应用于应用样式表的每个页面上的所有<ul>,则可以使用:

ul {/* Remove margin for all <ul>s (and padding, because different browsers have different default styles) */
     margin-left: 0;
     padding-left: 0;
}

ul ul {/* Add a margin for any <ul> inside another <ul> */
    margin-left: 2em;
}

但如果您只想将其应用于某些列表,则需要在HTML中添加一些内容以识别这些列表(正如其他答案所建议的那样)。

答案 1 :(得分:3)

第一个ul是身体的直接后裔吗?我知道你说没有在代码中添加css类但我认为在样式表中添加东西不是问题吗? 如果是这样,您可以使用样式声明,如:

body > ul{
 margin-left:0px;
}

或者如果你知道div确实存在于:

#your_id > ul{
margin-left:0px;
}

您可能还需要考虑默认填充。

由于

答案 2 :(得分:3)

您应该清除主<ul>的边距,然后设置<ul>元素中<li>的边距。

ul {
    margin-left: 0px;
}

li > ul {
    margin-left: 10px;
}

答案 3 :(得分:1)

确实,但对TommyBs的答案有一点补充:你需要在html list item标签中应用你使用的id,如下所示:

<ul>
<li id="your_id">no margin</li>
<li>
    <ul>
    <li>yes margin</li>
    </ul>
</li>
</ul>

在css中,相应的行将是

li#your_id {
  margin-left:0px;
}

答案 4 :(得分:0)

在我的情况下,有默认边距,我将它们设置为0 8bit