html special characters in css content, using attr()
相关的Codepen:http://codepen.io/anon/pen/ocptF/
编辑:Codepen使用Jade,因此弄乱了一些东西。 开始这个问题时,我并不知道这一点。
从本质上讲,我认为CSS attr()会照原样复制HTML属性,但事实并非如此。
我想使用CSS
相关行:
HTML:
1 |
CSS:
1 2 3 4 5 6 7 8 9 | .zoomfade:before { content: attr(data-unfill); position: absolute; } .zoomfade:before { content: attr(data-fill); position: absolute; } |
谢谢!
CSS中的转义序列仅在CSS语法中专门处理。当您在HTML属性值中指定该值,然后在CSS
attr(X)
This function returns as a string the value of attribute X for the subject of the selector. The string is not parsed by the CSS processor. [...]
由于要在HTML属性值中指定字符代码,因此可以使用HTML字符引用,实体引用或Unicode字符本身。值得注意的是,您拥有的两个字符代码似乎无效,因此它们可能根本无法工作。
EDIT: [...] Essentially, I thought CSS attr() would copy over an HTML attribute literally, but that is not the case.
它根据DOM复制属性值,这可能与它在源中的表示方式不同,例如源标记或生成元素的脚本。
例如,如果源以原始HTML标记表示,则如上所述,您将需要使用HTML字符转义符,因为HTML是由HTML解析器解析的。如果元素是使用基于JS的模板引擎(例如Jade)生成的,则字符转义采用
当然,总有一种选择是直接使用Unicode字符。如果您的源文件都被编码为UTF-8,则直接使用字符应该没有问题。