【问题标题】:What is the difference between <s> and <del> in HTML, and do they affect website rankings?HTML 中的 <s> 和 <del> 有什么区别,它们会影响网站排名吗?
【发布时间】:2013-05-20 13:31:11
【问题描述】:

&lt;s&gt;&lt;del&gt; 有什么区别?我读过here&lt;b&gt;&lt;strong&gt; 之间存在语义差异,这是否适用于&lt;s&gt;&lt;del&gt;?此外,搜索引擎如何解释这种语义差异(如果有的话)以及它们对排名有何影响?还有其他影响搜索排名的标签吗?

【问题讨论】:

  • 唯一能告诉您 HTML 的使用如何影响 Google 排名的人是 Google 工程团队。
  • 这个问题似乎是题外话,因为它是关于 SEO;尝试在 Webmasters Stack Exchange 上提问

标签: html tags seo


【解决方案1】:

&lt;s&gt;&lt;del&gt; 仍然存在于 HTML 规范中。

  • &lt;del&gt; 元素表示从文档中删除。
  • &lt;s&gt; 表示不再准确或不再相关的内容。

也就是说,它们实际上在语义上代表了不同的事物。如果您有一个现有的文档并且想要指示文档中的文本但已被删除,则特别是 &lt;del&gt; 将被使用。这与文档中不再准确但尚未删除的文本不同(您可以为此使用&lt;s&gt;)。

您不应该使用或依赖其中任何一个来进行样式设置,即使大多数浏览器默认设置了删除线。您应该只依赖 CSS 进行展示。

由于搜索引擎工作方式的反复无常,很难说一个标签或另一个标签是否会对关键字的创建方式和您的内容的索引产生影响。您应该专注于创建语义正确的优质内容,您的网站排名也会随之而来。

【讨论】:

  • 这个答案似乎排除了the W3 Working Group 's &lt;s&gt; element's reference 的一个重要部分,其中指出“s 元素表示不再准确或不再相关的内容因此已从”在这方面,&lt;s&gt;&lt;del&gt; 的行为方式肯定完全相同吗?
  • 我同意@Sprogz,虽然我知道它们在语义上应该是不同的,但无论我如何看待它,它们实际上是相同的。并且使用&lt;s&gt; 感觉 太像&lt;b&gt; 这样的简单印刷标记。出于这个原因,我倾向于使用&lt;del&gt;
  • 现在获得批准的 HTML5 推荐中提到了 &lt;s&gt;,这正是这个答案从旧草案中引用的内容,而没有提及“被击中”的东西。唯一的例子是除了新价格之外还提到了旧零售价格。将旧价格称为“不再准确或不再相关”是荒谬的,因为它是专门为了比较而提到的——它是准确的(作为关于过去的事实)并且相关。这表明这些“语义”的定义和区别还很薄弱。
  • 另外,这里增加了固有的混乱,current "living standard" 中的DEL 的示例甚至不是通常的差异示例,但是可以直观地使用S 来代替:“完成" 清单中的一项(肯定不会以任何方式“从文档中删除”,直到它实际上被删除...)
【解决方案2】:

阅读现有答案后,我仍然对在我的应用中使用哪个答案感到困惑。我们同意它们在外观上是相同的,并且差异主要归结为语义。 Mozilla 的 MDN 文档帮助我阐明了语义。

我认为&lt;s&gt; 适用于大多数用例,以下是原因以及四个相关选项:

  1. &lt;strike&gt;

    很明显&lt;strike&gt; is deprecated,因此不再正确使用。

  2. &lt;s&gt;

    来自&lt;s&gt; on MDN

    HTML 删除线元素 (&lt;s&gt;) 呈现带有删除线的文本,或通过它的一条线。使用&lt;s&gt; 元素来表示不再相关或不再准确的事物。 但是,&lt;s&gt; 在指示文档编辑时不合适;为此,请酌情使用&lt;del&gt;&lt;ins&gt; 元素。**

  3. &lt;del&gt;

    来自&lt;del&gt; on MDN

    HTML 已删除文本元素 (&lt;del&gt;) 表示已从文档中删除的文本范围。此元素通常(但不一定)使用删除线文本呈现。

    在此页面上对我来说最大的关键是 &lt;del&gt;&lt;ins&gt; 一样,提供了两个额外(可选)属性:citedatetime文档。举个反例,如果我要更新餐厅菜单,引用已售罄菜单项的来源似乎并不相关。

  4. 无标签/使用 CSS

    如果上述方法对您的用例来说似乎都不正确,请记住您仍然可以定义自定义类。

    .purchased { text-decoration: line-through; }
    <p>Wish list</p>
    <ul>
      <li class="purchased">New MacBook</li>
      <li>Cookies</li>
    </ul>

【讨论】:

    【解决方案3】:

    dels 之间没有实际区别,只是标签名称不同。它们具有相同的默认呈现(过度渲染的文本),并且没有证据表明浏览器或搜索引擎在处理方面有任何差异,也没有理由期待这种差异,因为“语义”定义是模糊的,作者并不在意关于他们。没有证据表明搜索引擎对这些元素采取了任何行动——它们对文本进行操作,通常忽略文本级标记,除了可能被认为赋予其内容更大相对权重的某些元素一个页面。

    HTML5 CR 的Rendering 部分明确指定了默认或“预期”默认呈现:del, s, strike { text-decoration: line-through; }

    理论上的区别在于 HTML 规范和草案它们的“含义”,从一个 HTML 版本到另一个版本不同。

    所以你可以使用任何一个元素,也可以不使用。过度强调文本不是一个好主意,因为它很容易使某些字母难以阅读。但是,如果您需要过度打击(例如,因为广告需要包含过度打击的旧价格),使用 strike 可能是最安全的,这是一个诚实的展示元素。因此,您甚至可以避免某些软件可能以某种特殊方式解释 sdel 的理论可能性,这可能基于某人对 HTML5 CR 的阅读,可能与您的意图不同,因此可能导致某些渲染或处理不符合你的过度罢工的原因。 (从历史上看,sstrike 是同义词,但 HTML5 CR 对它们进行了任意区分,使 s 具有“语义”,而 strike 具有表现力。)

    【讨论】:

    • 这不是好的做法。请参阅接受的答案以获得更好的解释。
    • 或许更正确的说法是“inpresentation 没有实际区别”。从语义上讲,两者有很大不同,实践中的语义不仅仅是理论上的。
    • Taylor,“两者完全不同”有点牵强……甚至标准本身也无法为其提供明确的案例。研究接受答案下方的 cmets 以获得更微妙的画面。它们语义的“定义”充其量是模棱两可的,W3C 在规范中使用的示例完全令人困惑(S 表示旧的价格标签,而“DEL”表示旧的(完成的)待办事项...... )。 (注意:显然,在某些情况下选择很明确,例如 DEL 用于渲染差异输出等)
    【解决方案4】:

    我会按照语义定义的方式使用它们:DEL 表示已删除的文本,S 表示现在不准确但尚未删除的文本。

    这些可能大部分看起来相同,但屏幕阅读器和其他辅助工具可能会以不同方式处理 - DEL 可能会被完全忽略(例如:不读出),S 可能会被读出但与普通文本不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-29
      • 2016-11-16
      • 2011-08-23
      • 1970-01-01
      • 2010-12-14
      • 2021-02-26
      相关资源
      最近更新 更多