2009-10-10 68 views

回答

35

从技术上讲是这样,但这样做有风险,因为虽然CSS语法大多不区分大小写,但在某些浏览器中,在某些条件下,类名称被视为区分大小写,因为规范未指定浏览器在匹配CSS时应如何处理大小写规则到HTML类名称。

the specsection 4.1.3

所有的CSS语法是不区分大小写的ASCII范围内...

在CSS中,标识符(包括元素名称,类别,并在选择的ID)即可仅包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A1及更高字符,再加上连字符( - )和下划线(_);他们不能以数字或连字符后跟数字开头。标识符也可以包含转义字符和任何ISO 10646字符作为数字代码(参见下一项)。例如,标识符“B & W?”可写成“B \ & W \?”或“B \ 26 W \ 3F”。

... HTML属性“id”和“class”,字体名称和URI的大小写敏感度不在本规范的范围之内。

,而不是学会了浏览器和这里的情况是敏感的情况下,这是最好的,你只要知道,最好的办法是最兼容的:使用相同的情况下,所有的代码为给定的CSS类,也不要创建两个或更多仅在大小写不同的CSS类名称。

6

当然。 Here是官方规则;基本上你不应该用一个数字开始这个名字,你可以使用字母,数字,连字符,下划线,以及转义字符或编码字符。

但是,作为惯例,通常使用连字符代替骆驼情况。

+0

类中的连字符,骆驼上的ID,特别是因为原生javascript不能在元素ID中使用连字符。 – doublejosh 2012-03-09 20:18:05

+0

HTML5官方规范说''HTML文档中HTML元素的所有属性名称都会自动获得ASCII-lowercased“',在说出”属性名称“时也会包含类名?如果是的话,那么避免大案件只能是一件好事。见http://www.w3.org/html/wg/drafts/html/master/single-page.html#attr-data-%2a – 2014-08-08 10:41:32

+0

嗯,我只是注意到它说''“属性名称”不“属性值“。困惑。所有关于属性名称和值的混淆都是自动降低的,这可能是每个人都采用驼峰式惯例的主要原因。请参阅http://reference.sitepoint.com/css/casesensitivity和http://www.w3.org/TR/html401/types.html#h-6.1 – 2014-08-08 10:57:03

0

是的,你可以。只要确保在你的标记中分配class =“fooBar”时,在你的css文件中调用一个类“fooBar”,你就可以使用一致的大小写。

2

是的,类名是区分大小写的,所以工作正常。

但是,您应该意识到某些浏览器会出错,并且不要将类名视为区分大小写。因此,应避免使用同名的大写和小写变体。某些浏览器可能会将类imgSuperimgsuper视为相同。

+0

为什么downvote?如果你不解释你认为什么是错的,它不能改善答案。 – Guffa 2017-01-19 08:37:03