【问题标题】:What's the best way to markup an empty element? [closed]标记空元素的最佳方法是什么? [关闭]
【发布时间】:2013-01-08 20:12:39
【问题描述】:

假设一个空的 div 或 span 将被 JavaScript 用来添加一些东西,如

<div id='id'></div>

语义上是错误的,因为它不能为空(我暂时忘记了原因)。然后我们使用

<div id='id'>&nbsp;</div>

直到,如果 JavaScript 发挥它的魔力。

但我也不喜欢它,因为那里没有真正的空间。我愿意

<div id='id' />

self closing tags 解释了它的问题。

还有其他我想不到的解决方案吗?或者是真的是最好的吗?

请注意,这是关于 HTML 文档,而不是浏览器如何呈现它。对于浏览器,我们只是将其设置为不渲染,然后用 JS 显示。

编辑:是的,这个 div 在语义上是错误的。它意味着其中包含一些内容,否则它在语义上是无用的。 Eric Meyer CSS Diagnostic 这么说。如果我理解错了,与其否定我,不如教我……

【问题讨论】:

  • div不为空,有ID。您可能想稍后对它做一些事情,或者只是链接到它。那又怎样?
  • 是的,它是空的。如果我在其中使用 :empty CSS 标志并设置任何样式,则该样式将应用于它。
  • 要使 HTML “语义错误”,它必须传达您不打算传达的含义。任何内容的缺失在语义上都是空的,所以如果&lt;div&gt;&lt;/div&gt; 是“语义错误”,那么它一定是在传达某种意义。你认为它传达的意义是什么?另外,请查看 HTML5 规范对 palpable content 的说明
  • 看看this answer

标签: javascript semantic-web semantic-markup xhtml


【解决方案1】:

语义错误?为什么? DIV 并不意味着什么。一个空的 H1 在语义上是错误的,但不是 DIV。

【讨论】:

  • 那么为什么 Eric Meyer 将它与 span、li、p 和 td 一起包含在他的 CSS 诊断中?
  • 何不给他写信,转发这个问题的链接,看看他怎么说。这可能很有趣。 DIV 不像

  • 那样具有真正的语义。它只是一个容器。一个正当的理由是为你 +1。
【解决方案2】:

如果架构允许

<span /> is equivalent to <span></span>
only in XML documents (read xhtml in your case)

秒:

<span /> is as empty as <span></span> is

因为在这两种情况下 childNodes 长度都是 0

你需要&amp;nbsp;是因为什么?

【讨论】:

  • 这与模式有效性或文档格式无关,而与语义有关。  需要在其中包含一些内容并解决语义问题。
  • 如果是关于语义的,它们是等价的,都是空的
  • 还有一个空标签不代表没用...文档的“语义”是由schema或dtd定义的,那你在这里问什么?
  • 很多年前,由于语义学,我学会了在空元素上使用 nbsp。我想知道是否有更好的解决方案,因为 nbsp 对我来说一点都不好,因为它仍然没有“任何东西”,而且我不想要那里的空间。为什么 Eric Meyer 和其他语义专家抱怨空元素呢?
猜你喜欢
相关资源
最近更新 更多
热门标签