为什么我们需要逃避CSS?

时间:2016-02-17 10:10:49

标签: css string escaping

鉴于我从here获取的以下示例:

CSS.escape(".foo#bar")        // "\.foo\#bar"
CSS.escape("()[]{}")          // "\(\)\[\]\{\}"

由于.foo#bar是有效的CSS选择器表达式。为什么我们需要在某些字符之前添加\?假设我想编写自己的程序,该程序执行转义CSS文件中所有值/表达式的相同任务,那我该怎么办?

PS:我总是对逃避感到困惑,在逃避一些投入时我应该怎么想?

1 个答案:

答案 0 :(得分:2)

只有当这些字符串包含您希望按字面意思处理的特殊符号时,才转义字符串。如果您期望有效的CSS选择器作为用户输入,那么您不应该逃避任何事情。

.foo#bar是一个有效的CSS选择器,但它意味着与\.foo\#bar完全不同的东西。前者匹配具有相应类和ID的元素,例如HTML中的<div class=foo id=bar>。后者匹配一个元素名称&#34; .foo#bar&#34;,它在假设的标记语言中可以表示为<.foo#bar>(显然这不是合法的HTML或XML语法,但是你会得到图片)。