我想将 CSS 规则应用于其中一个类与指定前缀匹配的任何元素。
例如。我想要一个适用于具有以以下开头的类的 div 的规则status-
(以下片段中的 A 和 C,但不是 B):
<div id='A' class='foo-class status-important bar-class'></div>
<div id='B' class='foo-class bar-class'></div>
<div id='C' class='foo-class status-low-priority bar-class'></div>
某种组合:
div[class|=status]
and div[class~=status-]
在 CSS 2.1 下可行吗?它在任何 CSS 规范下都可行吗?
注意:我知道我可以使用 jQuery 来模拟它。
这对于 CSS2.1 来说是不可能的,但是对于 CSS3 属性子字符串匹配选择器来说是可能的(其中areIE7+ 支持):
div[class^="status-"], div[class*=" status-"]
请注意第二个属性选择器中的空格字符。这拾起div
其元素class
属性满足以下任一条件:
当然,这也适用于 jQuery,如所示here.
如上所述,您需要组合两个属性选择器的原因是因为诸如[class*="status-"]
将匹配以下元素,这可能是不需要的:
<div id='D' class='foo-class foo-status-bar bar-class'></div>
如果你能保证这样的场景会发生never如果发生这种情况,那么为了简单起见,您可以随意使用这样的选择器。然而,上面的组合更加稳健。
如果您可以控制 HTML 源或生成标记的应用程序,则只需制作status-
自己的前缀status
类代替正如冈博建议的那样.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)