栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

CSS中的html [lang =“ en”]和html:lang(en)有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CSS中的html [lang =“ en”]和html:lang(en)有什么区别?

在HTML中,

:lang()
伪类和属性选择器都将匹配具有相应
lang
属性的元素。

不同的是,一个浏览器可能不得不确定给定元件的抵靠测试时的语言的其它方式

:lang()
,其可通过在文档语言和/或实施限定伪类,而一个属性选择器将
检查一个元件 即给定的属性 ,不附带任何基于文档的语义。

例如,在HTML中,伪类还将匹配元素的任何后代,后者没有不同

lang
,取决于浏览器如何确定这些后代的语言。通常,如果未明确设置后代,则后代将从其祖先那里继承language属性。

这里是什么规格说:

:lang(C)
与’| =’运算符之间的区别在于’|
=’运算符仅对元素上的给定属性执行比较,而
:lang(C)
伪类使用UAs对文档语义的了解来执行比较。


在此HTML示例中,仅BODY匹配

[lang|=fr]
(因为它具有LANG属性),而BODY和P匹配
:lang(fr)
(因为它们都是法语)。P不匹配,
[lang|=fr]
因为它没有LANG属性。

<body lang=fr>  <p>Je suis français.</p></body>

请注意“具有LANG属性”和“法语”的特定用语。如您所想,这两个短语在英语中的含义非常不同。

在您的示例中,以下选择器也将与您的

.foo
元素匹配:

.foo:lang(en)

但是,如果以下选择器没有

lang
设置自己的属性,则不会:

.foo[lang="en"].foo[lang|="en"]

至于浏览器支持,

:lang()
从IE8开始支持伪类,因此IE7实际上是您将无法通过在属性选择器上使用伪类来支持的唯一浏览器。

基于这种理解,您可以回答“我应该使用哪个”这个问题: 默认情况下
您应该始终使用

:lang()
伪类,除非某些怪癖(或需要支持IE7)需要使用属性选择器来解决。


选择器4不仅为

:lang()
伪类带来了增强的功能(从而扩大了它与属性选择器之间的功能差距),而且还[引入了
:dir()
伪类以根据元素的方向性进行匹配。因为方向性是与语言相关的属性,所以
dir
lang
属性在HTML中的工作方式类似,并且
:dir()
和其对应的属性选择器之间的区别类似于和与其对应的属性选择器之间的区别
:lang()
-直到以下引号的第一句在其中实际上,在描述以下内容的部分中
逐字逐句地复制 了该段落
:lang()

:dir(C)和“ [dir = C]”之间的区别在于,“ [dir =
C]”仅对元素上的给定属性执行比较,而:dir(C)伪类使用UA的文档语义知识来执行比较。例如,在HTML中,元素的方向性是继承的,因此没有dir属性的子级将与其具有有效dir属性的最接近祖先具有相同的方向性。再举一个例子,在HTML中,匹配“
[dir = auto]”的元素将匹配:dir(ltr)或:dir(rtl),具体取决于元素的解析方向(由其内容决定)。[HTML5]



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451960.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号