HTML5 <html>属性xmlns,lang,xml:lang

ma1*_*w28 31 xml html5 xml-namespaces

我不了解开始标记的属性属性HTML5规范langxml:lang<html>.滚动了一下,据我所知,xmlns是一个"护身符"(没有效果),但对于langxml:lang?他们应该被使用吗?如果是这样,他们应该设置什么?

Poi*_*nty 36

我所看到和听到的一切都表明你应该坚持下去

<!DOCTYPE html>
<html>
  <head>
    <meta charset='UTF-8'>
Run Code Online (Sandbox Code Playgroud)

(或者你真正想要的任何字符集).如果您想要与页面关联的语言,可以使用<html>标记上的"lang"属性.

由于HTML5 不是 XML,实际上,我个人会发现使用任何xml:名称空间的东西都很奇怪.

  • XHTML5 _is_有效的XML.而且由于有无数的XHTML解析器/处理器根本不知道具体是什么(X)HTML5,因此在多语法语法中省略xml:lang(和xmlns)是不明智的. (5认同)
  • 哦,太糟糕了,如果你没有在html上指定xmlns属性,它就不是有效的XHTML,如果你的目标是在作为HTML或XHTML提供时正确呈现的多语言标记,你需要xmlns属性(因为作为application/xhtml + xml,否则将显示文档树而不是页面.另一方面,如果您在HTML5中使用xmlns元素,W3C验证器将抛出错误,指出<meta http-equiv ="content-type">中的http-equiv是无效值,即使您是省略元标记,它警告你应该将它添加到文档中. (4认同)
  • 很酷,谢谢.然后,我将使用<html lang ="en">,就像[LinkedIn](http://www.linkedin.com/)那样. (3认同)
  • 此外,即使HTML5不是XML,它支持像<<br />`这样的void元素上的类似XHTML的语法,并最终将所有内容放在XHTML命名空间中.http://www.w3.org/1999/xhtml `无论如何. (2认同)

Alo*_*hci 17

文本/ html序列化中的xml:lang就是允许作者编写多语言文档 - 有效XHTML5和有效HTML5的文档.

在HTML(而不是XHTML)中,xml:lang根本不是XML命名空间中的属性,它是null命名空间中的一个属性xml:lang.即冒号根本没有魔法属性,它只是属性名称中的另一个角色,就像任何其他角色一样.


回答你最初的问题en-US-x-hixie:

en-US-x-hixieen-US(即美国英语)加上一个私人使用子标签,-x-hixie意思是美国英语的变体,由HTML5的编辑Ian Hickson编写.

私有使用子标签在RFC:5646,BCP 47中定义http://www.ietf.org/rfc/bcp/bcp47.txt 部分2.2.7. Private Use Subtags