CSSselect器中的类名是否区分大小写?

我一直在阅读CSS,不区分大小写,但我有这个select器

.holiday-type.Selfcatering 

当我在我的HTML中使用,就像这样,被拿起来

 <div class="holiday-type Selfcatering"> 

如果我像这样改变上面的select器

 .holiday-type.SelfCatering 

那么风格不会被拿起来。

有人在说谎。

CSSselect器通常不区分大小写; 这包括类和IDselect器。

但是, HTML类名区分大小写的 (参见属性定义),这会导致第二个示例中的不匹配。 这在HTML5中没有改变。 1

这是因为select器的区分大小写取决于文档语言所说的内容 :

所有select器语法在ASCII范围内都是不区分大小写的(即[az]和[AZ]是等同的),除了不受Selectors控制的部分。 文档语言元素名称,属性名称和select器中的属性值区分大小写取决于文档语言。

因此,给定一个有Selfcatering类但没有SelfCatering类的HTML元素,select器.Selfcatering[class~="Selfcatering"]将匹配它,而select器.SelfCatering[class~="SelfCatering"]不会。 2

如果文档types定义的类名不区分大小写,那么无论如何你都会有一个匹配。


1 在所有浏览器的怪癖模式下,类和ID是不区分大小写的。 这意味着不匹配的select器将始终匹配。 由于传统原因,这种行为在所有浏览器中都是一致的,在本文中提到。

2 对于它的价值, select器级别4包含了一个build议的语法,用于强制使用[class~="Selfcatering" i][class~="SelfCatering" i] [class~="Selfcatering" i]对属性值进行不区分大小写的search。 这两个select器都会将HTML或XHTML元素与Selfcatering类或SelfCatering类(或者当然是两者)匹配。 然而,类或IDselect器(还没有?)没有这样的语法,大概是因为它们与常规的属性select器( 没有与它们相关联的语义)携带不同的语义,或者因为很难提出可用的语法。

也许不是谎言,但需要澄清。

实际的css本身不区分大小写。

例如

 wiDth:100%; 

但是名称,它们必须是区分大小写的唯一标识符。

希望有所帮助。

在怪癖模式 ,使用CSS classid names时,所有浏览器的行为都不区分大小写

在怪癖模式下,CSS类和id名不区分大小写。 在标准模式下,它们区分大小写。 (这也适用于getElementsByClassName。) 阅读更多…

有时候,如果你有错误的文档types,你的浏览器进入怪癖模式。

 <!DOCTYPE html PUBLIC> <!DOCTYPE html anytext> 

你应该使用标准的文档types

HTML 5

 <!DOCTYPE html> 

HTML 4.01严格

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

HTML 4.01过渡

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

HTML 4.01框架集

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> 

XHTML 1.0严格

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

XHTML 1.0过渡

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

XHTML 1.0框架集

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 

XHTML 1.1

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

如果您的CSS classid names行为case insensitive请检查您的文档types。