为什么网站管理员使用`ul/li`而不是`div`s进行布局?

Tib*_* C. 9 html javascript css

据我所知,ul / li是排版特定的标签,旨在将文本格式化为列表(而搜索引擎喜欢语义标签).

这里我的一个大问题是为什么Web Masters更喜欢使用列表解决方案(ul/li),这是一个布局(div)解决方案的明显案例,更喜欢为列表语义标签修改很多样式,使它看起来像一个div解决方案?

它们只是使用错误还是我错过了重要的事实?

我问这个是因为,在很多情况下,这对于许多小部件插件都是有效的,这些插件动态地(通过JavaScript)生成html代码,即使某些搜索引擎不支持(或者支持有限) )JavaScript.例如:FlipClockJs,Bootstap组件(轮播,导航,分页)等.

Que*_*tin 10

据我所知,ul/li是排版特定标签,旨在将文本格式化为列表(而搜索引擎喜欢语义标签).

他们不是.它们是语义元素,表示内容是一组列表项,其中订单不是特别重要.

我在这里的一个重要问题是为什么Web Masters更喜欢使用列表解决方案(ul/li),其中布局(div)解决方案的一个明显的例子

Div与布局无关.布局是CSS的工作.应该根据它们传达的语义来选择使用的元素,然后应该将CSS应用于它们以提供所需的渲染.

div元素是最后的元素.它没有语义,应该在HTML没有具有适当内容语义的元素时使用.

  • 我恭敬地不同意div元素是"最后手段"的元素.Div很有用,因为它们灵活,多样,并且可以解决许多样式问题,而无需删除基于浏览器的初始元素渲染.例如,使用ul/li,您必须删除list-style-type,修复填充,边距等...以用作navs或其他任何内容,并在相关时为它们提供块属性.我认为li标签有它们的好处,但是对于原始海报的问题,在某些情况下可能会过度使用.很多时候人们使用ul/li而没有语义需求. (4认同)
  • 一些开发人员确实倾向于将所有内容都视为列表,这是一个问题,但"必须更改默认样式"是一个非常糟糕的理由,当它是正确的语义标记时,避免使用语义标记. (2认同)
  • @MiaMarks HTML5 规范说 div 元素是不得已的元素:http://developers.whatwg.org/grouping-content.html#the-div-element (2认同)

T.J*_*der 6

ul/ ol/li印刷的标签,他们的语义标签(即有含义的标签)。列表通常用于导航链接和类似列表,因为:

  1. 毕竟,从概念上讲——实际上,从语义上讲—— 导航菜单一个你可能想去的地方的列表;和

  2. 样式版本很容易理解(作为列表)

例如,样式:

ul {
  display: inline-block;
}
li {
  display: inline-block;
  border: 1px solid black;
}
li > a {
  display: block;
  cursor: pointer;
  text-decoration: none;
  padding: 1px;
}
li > a:hover {
  background-color: #eee;
}
Run Code Online (Sandbox Code Playgroud)
<ul>
  <li><a href="#this">This</a></li>
  <li><a href="#that">That</a></li>
  <li><a href="#the-other">The other</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

无样式:

<ul>
  <li><a href="#this">This</a></li>
  <li><a href="#that">That</a></li>
  <li><a href="#the-other">The other</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

  • @marc.d:请参阅 [关于那个的总结](https://css-tricks.com/wrapup-of-navigation-in-lists/),这在很大程度上得出了相反的结论。 (3认同)