如果没有他们在<ul>或<ol>下<li> s </ol> </ul> </li>

时间:2010-11-20 02:59:22

标签: html html-lists

我有一个导航,我正在使用列表。我在<ul>中有它,但这会弄乱我的UI,因为它有奇怪的自动边距。我试过没有<ul>,他们似乎工作。这适用于所有浏览器吗?这合法吗?其他人以前做过这个吗?

5 个答案:

答案 0 :(得分:7)

它可能在浏览器中工作,因为浏览器过于宽容,但是无效的说validator

  

文档类型不允许元素“li”在这里;缺少“ul”,“ol”,“menu”,“dir”start-tag

好吧,你可以删除CSS中的自定义边距。这是你唯一的解决方案。通常,您可以通过以下方式将文档中的所有 <ul>标记删除:

ul {
    margin: 0;
    padding: 0;
}

如果您想知道padding是什么,请参阅here

答案 1 :(得分:6)

<li>olul元素之外使用menu not valid HTML。将类分配给ul元素要好得多:

<ul class="nav">

然后使用CSS删除边距和填充:

.nav {
    margin: 0;
    padding: 0;
}

答案 2 :(得分:3)

可以,几乎所有的浏览器都会识别它,但它不是好语义HTML,而且不会validate

尝试删除样式表中ul的边距和填充:

#the-specific-ul { margin: 0; padding: 0; }

答案 3 :(得分:3)

这可能无法直接回答您的问题,但我想知道您是否使用CSS重置?

自从我开始使用它们以来,我发现我不再遇到这类问题了。 http://developer.yahoo.com/yui/3/cssreset/

另外,要考虑的另一件事是你的导航不必在<li>(必要)。为什么不将它们作为<div class="nav">

中的链接

希望这有帮助!

答案 4 :(得分:1)

UL和LI组合是所有HTML中最自由解释的元素之一。这意味着它们看起来会有很大不同,具体取决于您使用的浏览器。正如其他人建议的那样,将边距和填充重置为0.但是你应该在reset stylesheet中执行此操作,以便捕获在浏览器中显示不同的其他元素。