【问题标题】:What is the HTML5 alternative to the obsolete meta http-equiv=content-language.什么是过时的元 http-equiv=content-language 的 HTML5 替代方案。
【发布时间】:2011-12-28 08:15:49
【问题描述】:

我正在完成一个混合了英语和普通话的 HTML5 网站。

我的验证器(FF 的 HTML5 验证器插件)给了我这个错误:

error: Using the “meta” element to specify the document-wide default
language is obsolete. Consider specifying the language on the root
element instead.

At line 6, column 9: <meta http-equiv="Content-Language" content="en-us" />

相关代码为:

<!DOCTYPE html>
<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />

检查 W3.org 将我带到此页面:telling me that yes, it's obsolete

我必须承认,我不明白我应该如何使本准则合规?

我不知道“在根元素上指定语言”是什么意思,或者怎么做?

&lt;html lang="en"&gt; 肯定不足以满足 UTF-8 吗?

【问题讨论】:

  • 我认为你看错了行。您在链接中引用的元标记是“内容语言”,但您在此处列出的是“内容类型”。

标签: html validation content-type multilingual


【解决方案1】:

在 HTML5 中,您实际上可以为每个元素定义 lang。这意味着如果您有一个包含普通话的div,只需为该div 定义一个属性lang="zh-CN",例如&lt;div lang="zh-CN"&gt;

【讨论】:

  • 我可以为混合内容定义两者吗?
  • @Andrew - 不,你不能。 lang 属性只需要一个语言代码。
  • @Andrew:您应该为页面选择主要(即最常用的)语言,并通过lang 元素上的lang 属性指出这一点,然后包装任何内容在带有 lang 属性指示语言的元素中使用不同的语言。
  • 使用元标记设置字符集是错误的,因为它使浏览器使用charset guessing 解析文档,直到它偶然发现元标记,在这种情况下它使用正确的编码重新开始解析;这是一个很大的性能问题,字符集猜测是不可靠的。正确的做法是提供带有 Content-Type 标头的文档,其中包含正确的字符集。
【解决方案2】:

语言和字符集设置见下文

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
.....

【讨论】:

    猜你喜欢
    • 2016-01-07
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 2018-03-26
    • 2021-11-13
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多