哪种 CSS lang 语法最适合本地化的 HTML 元素?

Which CSS lang syntax is best for localized HTML elements?

我在网上找到了以下两个参考资料:

所以现在我想知道,如果我的网页中有一个单独的标签,其中包含例如日语文本,那么最好使用

p:lang(jp)

p[lang="jp"]

哪个最好,这两个有区别吗?

正如您发布的链接,按语言设置内容样式的最佳方式是:lang()

指定规则的p[lang="jp"]方法是使用与属性值完全匹配的属性选择器。

:lang() 不同,此选择器仅适用于带有 lang 属性的元素。

[lang] 只会定期匹配具有 lang 属性的元素。 :lang() 另一方面是特殊的,它以更灵活的方式解析适用的语言。任意一个元素的语言解析为:

a combination of the lang attribute, the <meta> element, and possibly by information from the protocol (such as HTTP headers). (source)

意味着任何一个元素都从这些来源继承了它的语言;即使没有显式 lang 属性的元素也有 语言 并且可以用 :lang().

选择

它还可以解决区域差异,例如:lang(fr) 也适用于具有更具体语言 fr-be.

的元素

如果您想根据 语言 设置元素样式(相对于具有 lang 属性的元素),您当然应该使用 :lang() .