【发布时间】:2017-06-11 14:50:51
【问题描述】:
我想用某种颜色选择页面上的所有元素,比如说红色。
我知道我可以这样做:$("div[style=color:rgb(255,0,0)]")。但是,我的问题是红色有不同的表示形式,例如#FF0000 和简单的 red。但rgb(255, 0, 0) 中的任意数量的空白仍然定义红色。
我需要以适用于任何颜色并接受该颜色的任何表示的通用方式进行操作。有没有办法定义这样一个“智能”的 CSS 选择器?
【问题讨论】:
-
getComputedStyle返回解析的 rgba 颜色 -
我可以在 CSS 选择器中使用它吗?它是更大的选择过滤器的一部分...
-
您不能在标准的 CSS 选择器中使用它,但由于您使用的是 jQuery,您可以编写一个使用 getComputedStyle 的自定义选择器。
-
尝试将 css 选择器定义为正则表达式字符串。我不擅长正则表达式,但它可以以
regex = "style=color:"之类的开头,但至于冒号之后的内容取决于您要选择的内容。如果您想选择所有可能的格式,我仍然会说可能的格式数量有限,因此列出一个简短的列表不会太难。 -
getComputedStyle 不适合选择器,但是,除了dina 的想法之外,您可以将解析后的值设置到.style。再次,将所有颜色均质化,以便 CSS 查询可以工作。
标签: javascript jquery html css