我有一个导航,我正在使用列表。我在<ul>
中有它,但这会弄乱我的UI,因为它有奇怪的自动边距。我试过没有<ul>
,他们似乎工作。这适用于所有浏览器吗?这合法吗?其他人以前做过这个吗?
答案 0 :(得分:7)
它可能在浏览器中工作,因为浏览器过于宽容,但是无效的说validator:
文档类型不允许元素“li”在这里;缺少“ul”,“ol”,“menu”,“dir”start-tag
好吧,你可以删除CSS中的自定义边距。这是你唯一的解决方案。通常,您可以通过以下方式将文档中的所有 <ul>
标记删除:
ul {
margin: 0;
padding: 0;
}
如果您想知道padding
是什么,请参阅here。
答案 1 :(得分:6)
在<li>
,ol
或ul
元素之外使用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中执行此操作,以便捕获在浏览器中显示不同的其他元素。