除了一个案例外,有时在css类名中使用特殊字符有效

时间:2017-04-27 16:17:20

标签: css css-selectors

我将带有php的页面文件名传递给选择器,以便从CSS加载一些页面标题部分的相应background-img。由于我的CMS的设置,我也被迫包括尾部斜杠。所以,而不是一个漂亮的干净< header class =“bg-pagename”>,它来自< header class =“bg- / pagename /”>这使我的CSS中的东西变得毛茸茸。

在我的CSS文件中,我要通过这里的解决方案wyqydsyq Jun 5 '12(\ 2f成为/)到目前为止已经为5个页面名称工作,直到我点击这个。不确定为什么..是否有正则表达式或特殊字符使这不起作用?

DOESNT WORK IN CSS FILE:
header.bg-\2fcomp-tour\2f {}

WORKED:
header.bg-\2fhol-tour\2f {}
header.bg-\2flaw-tour\2f {}
header.bg-\2fhigh-tour\2f {}
header.bg-\2fglam-tour\2f {}

(是的,我确实认为要“清理”最初的php函数并在回显页面名称之前删除正斜杠,但这只是因为某些原因而无效:/)

1 个答案:

答案 0 :(得分:3)

\2fcomp中,字母C是十六进制数字。因此,解析器将转义序列视为\2fc,而不是\2f。如您所想,\2fc代表a completely different character\2f。结果,选择器无法匹配。

G,H和L不是十六进制数字,因此它们相应的选择器按预期工作。

你可以通过空格填充转义序列来解决这个问题:

header.bg-\2f comp-tour\2f

你也可以写\/代表正斜杠,而不是\2f,然后你不必担心十六进制数字碰撞 - 它确实看起来有点滑稽,但是:< / p>

header.bg-\/comp-tour\/
header.bg-\/hol-tour\/
header.bg-\/law-tour\/
header.bg-\/high-tour\/
header.bg-\/glam-tour\/