我想编写一个 (X)HTML 文档,其中包含黑色字体的文本。在德语中,当文档的基本字体是 blackletter 字体时,习惯用 antiqua 字体排版外来词。因为这是一个可能经常出现的语义标记,所以我不喜欢使用 a<span class="fw">
或类似的。
是否可以在 (X)HTML 中定义一个新标签<fw>
(用于外来词),以便我可以通过语义进行标记?如果是,现代浏览器是否支持?将其与样式表一起使用时有什么特别需要注意的吗?
<i>
出于您所描述的目的,使用标签可能是有意义的。虽然<i>
过去的意思是“斜体”,但在 HTML5 中它被指定为:
i 元素代表一段文本以另一种声音或语气,或以其他方式偏离正常散文,例如分类名称、技术术语、来自另一种语言的惯用短语、思想、船名或其他一些散文,其典型的印刷表示是斜体。
请注意,当您想通过斜体强调文本时,该<em>
标签仍然可供您使用,并且更适合该任务。有关标签的新用途,请参阅上面的链接,这<b>
是添加自定义(无效)标签的另一种选择。
更直接地回答您的问题:添加标签并保持有效的 HTML5 是不可能的。
简短的回答:没有。更长的答案:不是一个好主意。
顺便说一句,<div style="antiqua">
行不通,也许你<div style="font-family: antiqua">
的意思是更好的解决方案 IMO 将是<span class="fw">
是的,完全可以在 JavaScript 的帮助下创建自己的标签。但是,我强烈建议不要使用这种做法(除非它用于以下用途)。
通常,此方法用于强制旧版浏览器支持 HTML5。它比其他任何东西都更像是一种解决方法,应该这样对待。
您可以通过在 HTML 文档开头使用一小段 JS 代码来创建对任何标签(甚至是自定义标签)的支持:document.createElement('tagname');
您还可以像通常对其他任何标签一样设置这些自定义标签的样式;CSS 或内联。
请注意,您的自定义标签不会生效。仅仅为了设计师的个人品味而使用这是一种丑陋的做法。
与往常一样,我强烈建议您使用已经存在的内容,并使用Classes命名元素。
XHTML 是 XML,如果您在自己的名称空间中添加自己的标签,它仍然是 XML。您可以考虑使用自己的 XML 词汇表并使用客户端 XSLT 来呈现它(使用新的 Saxon-CE 产品,您甚至可以使用 XSLT 2.0)。但是,如果这是您要添加的唯一“语义”标记,则可能是矫枉过正 - 只需<span class="fw">
按照建议使用即可。
HTML 和 XHTML 规范定义了允许的标签,但没有什么能真正阻止您使用您喜欢的任何标签。现代浏览器通常将标签识别为定义元素,您可以设置这些元素的样式并使用客户端脚本对其进行处理。
但是,正如您从这里几个问题的答案中看到的(例如搜索“自定义标签”),在大多数情况下有几个原因可以避免这种情况。
“外来词”根本没有 HTML 标记,我们可以做出的大多数语义区分也没有 HTML 标记。我们可以忍受这一点。在大多数情况下,没有软件真正关心我们可以在 HTML 中做出的那些少数区别。
如果你不喜欢span
,你可以使用font
(因为你真正想要做的是字体区分),或者a
为了简洁起见。(没有href
,a
实际上在语义上是空的,或者是免费的,就像span
is 一样。)
您还可以使用lang
属性,例如<font class="fw" lang="en">dummy</font>
. 它可能使标记看起来更语义化,并且在特殊情况下可能变得相关(在某些情况下的语音合成、拼写检查等)。