【问题标题】:Why use anything but div? [closed]为什么要使用除 div 之外的任何东西? [关闭]
【发布时间】:2012-08-09 04:09:41
【问题描述】:

在 HTML/XHTML 中,为什么要使用除 div 元素之外的其他元素?

它们是可用于构建整个页面的基本块。当然,它们不会增加页面的语义,但 HTML 不是关于语义,而是关于结构。我为什么要关心语义?

有什么想法吗?

编辑:所以声明“...HTML 不是关于语义,而是关于结构。”引起了一些骚动;它被认为是关于语义的,尽管 div 和 span(可能是最常见的元素)打破了这个规则。或许,一个更好的问题是问:应该 HTML/XHTML 是关于语义的吗?

【问题讨论】:

标签: html xhtml web


【解决方案1】:

并非所有元素都应该是块级元素,并且需要为页面上的每个 div 指定 div 的类型是荒谬的。它也更容易阅读。

【讨论】:

  • 但是您可以更改 div 元素的“显示”属性,使其可以是块状或内联的。
  • 是的,您可以,但您为什么要这样做?在我看来,语义很重要。
  • 嗯,它会否定对所有其他元素的需求。我必须争辩说,我从来没有遇到过仅使用 div 来理解网站的问题,当您在 IDE 中工作时突出显示元素时尤其如此。
【解决方案2】:

两个重要原因:

  1. 搜索引擎
  2. 屏幕阅读器

搜索引擎根据其内容以及该内容的语义对页面进行排名。为您的内容添加适当的语义可以强化内容试图传达的意图,并允许搜索引擎对该内容赋予更高的价值。

屏幕阅读器也依赖语义正确的内容。请参阅this 文章了解更多信息。

【讨论】:

    【解决方案3】:

    另外,您的网页结构很大程度上说明了您网页上的内容。搜索引擎将比 h6 更重视 h1。它不仅可以显示您的数据,还可以描述您的数据。 HTML5 会有更多的元素,所以你最好系好安全带。

    【讨论】:

      【解决方案4】:

      各种电子邮件客户端支持不同的 HTML 子集,这些子集经常忽略外部样式表、浮动等。在许多情况下,您必须恢复到表格。

      【讨论】:

        【解决方案5】:

        看一个简单的例子来说明你的建议:

        <div>
            <div>Hello</div>
            <div>this is a paragraph which contains some <div>stuff</div> that should not be in a div</div>
        </div>
        

        现在,人类、浏览器、搜索引擎等是否更容易理解以下内容?

        <div>
            <h1>Hello</h1>
            <p>this is a paragraph which contains some <span>stuff</span> that should not be in a div</p>
        </div>
        

        有不同的元素是有原因的。除了样式的阻塞和内联之外,这些标签会向页面添加大量信息,如果将其全部替换为 div 标签,则会丢失这些信息。

        【讨论】:

        • 我不想这么说,因为这引起了轰动,但我发现没有一个比另一个更容易阅读。是代码缩进的方式让我了解了结构,而不是 h1 和 p 标签的使用。如果它们都在一行中,那么是的,后者会更容易阅读,但是谁会这样做呢?
        • 更易读意味着在第二个例子中很明显Hello是一个标题,这在第一个例子中不容易遇到。此外,这个例子是 4 行,如果你有这样的页面,那将是一场噩梦。我想把所有东西都包装在一个 div 中就像去食品店,所有东西都包装在没有标记的棕色盒子里,祝你找到你需要的东西!
        • 很好的类比,但是今天有没有人在没有实际查看的情况下编辑网站?此外,在一个真实的网站中,您可能会有 id 和 class 属性来准确地表明您正在阅读的内容。我只是认为所有这些新元素都是不必要的,并且试图帮助搜索引擎而不是帮助程序员。
        【解决方案6】:

        因为:

        1. 最好为搜索引擎阅读。
        2. 为人类阅读更好。
        3. 最好为屏幕阅读器阅读。

        使用语义 html 或在 div-hell 中烧毁! ;-)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-07-12
          • 1970-01-01
          • 1970-01-01
          • 2013-06-09
          • 2011-03-17
          • 2012-12-01
          • 2014-01-22
          相关资源
          最近更新 更多