我最近遇到了一个奇怪的错误,其中选择器在缩小后停止工作(使用csswring 3.0.7)。问题中的选择符与数据属性包含连字符的元素匹配。它在开发过程中工作,但在所有测试过的浏览器(Chrome,Firefox,IE11,Edge)上都没有生产。属性选择器中的未加引号的连字符
查看缩小样式表后,我发现选择器已从[data-attr*="-"]
转换为[data-attr*=-]
。行情已被删除,并被浏览器拒绝。
事情是,我找不到任何来源,说一个连字符需要引号。很明显,缩小作者作者已经找到了我拥有的相同来源。
This page详细说明了规范的相关部分。
因此,在CSS有效的不带引号的属性值是文本的任何字符串不是空字符串,包括转义字符和/或字符完全匹配
/[-_\u00A0-\u10FFFF]/
的,并且不以数字或两个连字符开始或连字符后跟数字。
在这种情况下,单个连字符似乎完全有效。
Here is a jsfiddle测试不同的场景。只有当试图匹配一个单一的,不加引号的连字符时,选择器才会失败。
我错过了什么吗?这不应该是一个有效的选择器吗?
@Jonathan Lam:在重读它时,它似乎是一个真正的问题。显然,这些选择器是由缩小器制作的。如果它们在源代码中被引用,并且引号被缩小机器剥离...看起来OP只能获得新的缩小机器。 – BoltClock
更改缩小器。 YUI压缩机是我测试过的最好的。 http://yui.github.io/yuicompressor/ || http://refresh-sf.com/在最后一个URL(http:// refresh-sf。/我测试你的线,它保留报价。 –