如何在CSS文件中处理classname的西班牙语字符?

时间:2014-01-07 08:09:48

标签: html css

在我的html页面中,我有一个HTML标签的类名méxico。我使用相同的类名来应用CSS,并附加(。)运算符,CSS工作正常。这是正确的方法还是在CSS中以其他方式处理。

HTML CODE

<p class="méxico"> Some text</p>

CSS代码

.méxico{ /*some CSS code*/}

3 个答案:

答案 0 :(得分:3)

这是一种正确的方法。

根据CSS 2.1规范,第4.1.3节Characters and case,标识符 - 包括类名 - 可以包含“字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线(_)“(和转义字符)。字符“é”是U + 00E9,即高于U + 00A0,因此它是限定符。规范对ASCII字符施加了限制,因为许多ASCII字符在CSS语法中都有特殊的含义。但是例如任何带有“é”的重音字母都可以。

但是,您需要确保包含CSS代码的文件以适当的编码保存,并且正确声明了该编码。请参阅W3C页面Character encodings。确保这一点的一个简单方法是将CSS代码写入样式表文件(.css)中,在编辑器中将其保存为带有BOM的UTF-8(通常标记为“UTF-8”与UTF-8相反)没有BOM)。 BOM,字节顺序标记使浏览器将文件识别为UTF-8编码。

如果由于某些奇怪的原因,无法处理字符编码问题,您可以通过规范中描述的CSS转义方法来逃避“é”。然后你会写例如。

.m\e9xico { display: block; }

注意:The W3C CSS Validator不会在“直接输入”方法中正确处理“é”或其他非ASCII数据,但会错误地发出混乱的错误消息。 (它在“文件输入”和“按URI验证”中处理它。但是已经提交了bug report

答案 1 :(得分:2)

CSS应该可以正常工作。但不建议这样做。

http://www.w3.org/TR/CSS21/grammar.html#scanner

将为您提供有关类名称在CSS中应具有的推荐字符的详细信息。

CSS词汇扫描程序仍会将其视为警告。参见

http://www.w3.org/TR/CSS21/syndata.html#syntax

4.1.3节点号2.这将为您提供可接受的字符列表。

CSS的工作原因仅仅是因为它们的DOM选择器和CSS类名的ASCII值匹配。

希望这有帮助。

正如Pat指出的那样,没有使用西班牙语字符进入网页。 (没有语义上的好处或SEO的好处)..那么为什么强行使用呢?

答案 2 :(得分:1)

班级名称及其处理方式是正确的。

然而,在CSS中使用基于语言的标签没有任何好处(没有搜索引擎优化或语义效益),因此,为简单起见,为什么不简单地删除重音并将类称为“墨西哥”?