【问题标题】:XHTML - What elements are allowed within the <a> element?XHTML - <a> 元素中允许哪些元素?
【发布时间】:2011-05-08 04:26:15
【问题描述】:

我知道span strongem。还有其他人吗? 我正在尝试过滤链接内的文本,并且需要知道我应该不过滤哪些元素?

【问题讨论】:

  • 我已将您的问题修改为谈论“元素”,而不是“标签”。

标签: html xhtml hyperlink tags


【解决方案1】:

根据DTD,很多元素:

br | span | bdo | map
object | img | tt | i | b | big | small 
ins | del | script | input | select | textarea | label | button
em | strong | dfn | code | q |
               samp | kbd | var | cite | abbr | acronym | sub | sup 

【讨论】:

  • +1 表示第一个答案是指 DTD,即此事的真正权威。
  • DTD 不是这件事的真正权威。有些规则根本无法在 DTD 中表达(例如 &lt;a&gt;&lt;span&gt;&lt;a /&gt;&lt;/span&gt;&lt;/a&gt; 无效的规则)。此外,随着时间的推移,更新的规范已经发布。从 HTML 5(包括它的 XML 序列化)开始,&lt;a&gt; 的所有交互式后代都被禁止。
【解决方案2】:

例如,对于 HTML 4.01 Transitional,您可以从 w3c 站点选择 DTD。然后在文档中搜索&lt;!ELEMENT A 并导航实体,如%inline; 以了解允许的嵌套元素。

  • #PCDATA 是允许的。
  • 通过%inline;%fontstyle;TT | I | B | U | S | STRIKE | BIG | SMALL
  • 通过%inline;%pharse;EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM
  • ...等等

它们将依次具有其他嵌套元素。

您可以对其他 HTML DTD 重复该操作。

要了解 DTD 嵌套规则的工作原理,我建议阅读 tutorial

【讨论】:

    【解决方案3】:

    值得一提的是,"block-level links" 在 HTML5 中有效。

    【讨论】:

      【解决方案4】:

      &lt;a&gt; 内的其他内联标签应该是合法的,例如 &lt;img&gt;&lt;abbr&gt; 等。以下是所有内联标签的列表:

      http://en.wikipedia.org/wiki/Inline_tag#Inline_elements

      另外,由于&lt;a&gt; 是一个正文标签,请仅在其中内嵌正文标签。

      【讨论】:

        【解决方案5】:

        如果您使用 XHTML 过渡,那么 fontbisubsup....AFAIK 几乎任何内联标记(除了另一个链接)都适合。

        【讨论】:

          猜你喜欢
          • 2011-12-25
          • 1970-01-01
          • 1970-01-01
          • 2013-01-12
          • 1970-01-01
          • 2015-04-28
          • 1970-01-01
          • 2011-03-23
          • 2012-03-08
          相关资源
          最近更新 更多