【问题标题】:OK to have text in div without paragraph tag?可以在没有段落标签的 div 中有文本吗?
【发布时间】:2015-04-16 06:04:57
【问题描述】:

我正在尝试了解<p> 标签的实用性。我想写更少的 HTML,并且总是为了简化一般的事情,但我觉得我听到有人提到为了 SEO 目的或清晰或其他什么,所有文本都应该驻留在段落标签中?这似乎是另外一组要处理的边距/填充/边框/css 业务。我不会通过某种 linting 工具吗?

<div>
  Cheerio, worldie!
</div>

对比:

<div>
  <p>Hello, world!</p>
</div>

【问题讨论】:

    标签: html


    【解决方案1】:

    semantical 的角度来看,您应该始终将您的内容放在有意义的容器中。

    例如,您可以像这样创建一个项目列表(例如待办事项列表):

    <div>
      - Buy groceries<br>
      - Clean my room<br>
      - Learn HTML
    </div>
    

    但这只是看起来像一个列表,但从语义的角度来看,它只是纯文本,因为&lt;div&gt; 元素没有任何语义含义(它们仅用于用于布局目的)。

    正确的语义列表如下所示:

    <ul>
      <li>Buy groceries</li>
      <li>Clean my room</li>
      <li>Learn HTML</li>
    </ul>
    

    现在它真的是一个列表。

    那么:为什么这很重要?

    • 搜索引擎优化:读取您的内容的机器(例如 Google 的搜索索引爬虫)将知道这是一个列表并可以做出相应的反应。这在查看标题时更容易理解:&lt;h1&gt; 元素将被搜索引擎处理,其重要性高于 &lt;b&gt; 元素(没有任何语义意义)。
    • 可访问性:辅助软件(例如盲人或视力障碍者的屏幕阅读器)可以判断这是一个列表,用户可以相应地导航它(例如从一个列表项跳到下一个)。李>

    所以一般规则是,您应该始终考虑要向用户呈现什么类型的内容:它是一个列表(&lt;ul&gt;&lt;ol&gt; 元素)?是文本(一个或多个&lt;p&gt; 元素)吗?它是标题(&lt;h1&gt;&lt;h6&gt; 元素)吗?这可以让各类读者更彻底地解读您的内容。

    因此,虽然从技术角度来看,文本在裸 &lt;div&gt; 元素(不包含任何语义含义)中绝对有效,但从内容的角度来看,在显示文本时绝对应该使用 &lt;p&gt; 元素您的网站。由于所有网站都是关于其内容的,因此您应该彻底遵守此规则。

    【讨论】:

    • 关于语义,在 p 中包含几个词,不是一个句子,比 div 更好吗?考虑到一个段落在语法上是由一个或多个句子组成的......
    • 这些列表项是否应该被包裹在&lt;p&gt;s 中?
    • 也许使用 而不是

      用于 div 内的小文本?我也在争论是否值得付出努力。

    • @ChrisSmith 不,UL 是一个块元素,因此会超出围绕它的前一个和下一个 P 标签。内部 LI 项本身是语义的,因此列表项内部不需要 P 标记。
    【解决方案2】:

    是的,可以使用不带&lt;p&gt;&lt;div&gt; 元素。

    &lt;p&gt; 会告诉 &lt;div&gt; 元素中的文本被分割成段落,因此如果你将文本分割成段落,你应该使用 &lt;p&gt;;另一方面,&lt;p&gt; cannot contain elements other than so-called phrasing content;因此,&lt;p&gt; 内不能有 &lt;div&gt;

    【讨论】:

    • 虽然它确实适用于不使用辅助技术的用户的&lt;div&gt;,但我相信这根本没有考虑到可访问性。
    猜你喜欢
    • 2013-03-17
    • 2021-01-18
    • 2013-04-18
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2021-11-14
    相关资源
    最近更新 更多