Javascript 为什么站长在布局上使用'ul/li'而不是'div's?

Javascript 为什么站长在布局上使用'ul/li'而不是'div's?,javascript,html,css,Javascript,Html,Css,据我所知,ul/li是特定于排版的标签,用于将文本格式化为列表(而搜索引擎喜欢语义标签) 我这里的一个大问题是,为什么Web管理员更喜欢使用列表解决方案(ul/li),这是布局(div)解决方案的一个明显例子,他们更喜欢修改列表语义标记的许多样式,使其看起来像div解决方案 它们只是使用上的错误还是我遗漏了重要的事实 我这样问是因为,在很多情况下,这对很多widget插件都是有效的,它们会动态地(通过JavaScript)生成html代码,即使一些搜索引擎不支持(或对JavaScript的支持有

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

我这里的一个大问题是,为什么Web管理员更喜欢使用列表解决方案(ul/li),这是布局(div)解决方案的一个明显例子,他们更喜欢修改列表语义标记的许多样式,使其看起来像div解决方案

它们只是使用上的错误还是我遗漏了重要的事实


我这样问是因为,在很多情况下,这对很多widget插件都是有效的,它们会动态地(通过
JavaScript
)生成html代码,即使一些搜索引擎不支持(或对
JavaScript
的支持有限)。例如:
FlipClockJs
,Bootstap组件(转盘、导航、分页)等
ul
/
ol
/
li
不是排版标签,而是语义标签(有意义的标签)。列表通常用于导航链接和类似链接的列表,因为:

  • 从概念上——事实上,从语义上讲——导航菜单毕竟是你可能想去的地方的列表;及

  • 未设置样式的版本很容易理解(作为列表)

  • 例如,样式:

    ul{
    显示:内联块;
    }
    李{
    显示:内联块;
    边框:1px纯黑;
    }
    李>a{
    显示:块;
    光标:指针;
    文字装饰:无;
    填充:1px;
    }
    a:悬停{
    背景色:#eee;
    }
    据我所知,ul/li是特定于排版的标签,旨在将文本格式化为列表(而搜索引擎喜欢语义标签)

    事实并非如此。它们是语义元素,表示内容是一组列表项,其中顺序并不特别重要

    我这里的一个大问题是,为什么Web管理员更喜欢使用列表解决方案(ul/li),这是布局(div)解决方案的一个明显例子

    div与布局无关。布局是CSS的工作。所使用的元素应该根据它们所传达的语义进行选择,然后对它们应用CSS以提供所需的呈现


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

    我以前从未想过列表是排版专用的,但这个问题让我怀疑列表是否不适合布局。HTML5规范并没有说任何我能立即发现并同意的话,但其中一条是:

    但应在li中包含标题元素(如h1) 元素,它可能不会传达作者的语义 预定的。标题开始一个新的部分,因此列表中的标题 隐式将列表拆分为多个部分


    这引起了对列表是否适用于所有布局情况的质疑。如果您使用列表来显示一组产品,并且这些产品是使用分段元素编写的,那么这是否会将它们置于上面引用的问题之下?

    列表有助于定义分层导航和子菜单项。在这种情况下,它们是首选的,因为它可以更容易地以样式为目标。网站管理员也更喜欢使用列表,因为它们对于屏幕阅读器来说是方便访问的。但是,现在
    也可以友好访问。在这里,我可能是孤注一掷的倡导者,我说,它们对前端的重要性不如过去。甚至作为语义标记。

    “排版特定标记”说的是谁?这是一份清单。与造型无关。你可以有一个信息列表。“HTML无序列表元素(
      )表示无序的项目列表,即没有数字顺序的项目集合,它们在列表中的顺序毫无意义。”-您可以使用
      ul
      /
      ol
      标记项目列表–这一答案显而易见,但并不重要。语义HTML不仅仅是关于搜索引擎。UL/LI是列表标签,所以对于信息列表,比如导航。你是说导航菜单吗?看到导航使用列表是很标准的,但我同意使用
      divs
      将是一种更好的方法。你似乎在问“为什么web开发人员在使用语义正确(但很难设置样式)的列表元素时,却可以使用易于设置样式(但语义不太有价值)的
      时,还要费劲地使用这些元素?”这是对的,还是我将自己对这种情况的理解投射到了你的问题上?是的。总是考虑那些通过屏幕阅读器或其他辅助技术查看你的网站的人。从用户的角度来看,文档应该是有意义的原始HTML。@isherwood如果你真的关心屏幕阅读器,就不要使用
        @marc.d:See,这在很大程度上得出了相反的结论。有趣。作为UI开发人员,我曾与许多可访问性顾问合作过,没有人告诉我列表很麻烦。我不同意div元素是“最后手段”的说法。div非常有用,因为它们灵活多样,可以解决许多样式问题,而无需删除元素的初始基于浏览器的渲染。例如,对于ul/li,您必须删除列表样式类型、固定填充、边距等。。。用作导航或其他用途,并在相关情况下为其提供块属性。我认为li标签有其好处,但与原始海报的问题一样,在某些情况下可能被过度使用。很多时候,人们使用ul/li时并不需要语义。一些开发人员确实倾向于将所有内容都视为一个列表,这是一个问题,但是“必须更改默认样式”是避免使用语义标记的一个非常糟糕的理由,因为它是c