【问题标题】:CSS selector for non-html attributes非 html 属性的 CSS 选择器
【发布时间】:2012-03-15 03:54:40
【问题描述】:

我知道标准 html 属性有 CSS 选择器: span[class="example"]

但我想知道是否有 CSS 属性的选择器,例如 span[background-image].
?

更新:
在阅读了到目前为止的一些 cmets 和答案之后,我最好给出这种“奇怪”需求的理由。我想找到所有将背景图像设置为未定义/空以外的任何元素,以将样式应用于它们。假设我无法控制现有的内联/全局样式,只能添加我自己的全局样式表。

【问题讨论】:

  • 这个问题有一个梗.. :)
  • @valentinas,你是什么意思?
  • 这些是 CSS 属性,而不是属性。不,您不能使用 CSS 通过计算或声明的样式来选择元素。这有什么意义?
  • @BoltClock 我更新了问题,但你说的有道理。
  • @Alex,我的意思是“Yo dawg ..”和“我们需要更深入”:) 在更相关的说明中:你能详细说明你想要实现的目标吗?也许还有其他方法可以做到这一点,而无需选择带有背景图像的元素,例如如果要删除所有背景图像,则只需执行 * {background-image:none}。如果您想更改图像位置等,同样适用。

标签: html css css-selectors


【解决方案1】:

您可以检查内联样式:

span[style*="background-image"]​{}​

Demo

【讨论】:

  • 它确实适用于内联样式 (FF10),但似乎不适用于全局样式
【解决方案2】:

没有。

浏览器查找规则的成本太高了。由于您很可能在其他 css 类中设置背景图像,因此明确定位它们将相当简单(同样,不是使用 span[class="example"] 而是 span .example 代替)

另外,正如您在 cmets 中提到的另一个答案,类型规则

span[style*="background-image"]​{}​

仅适用于内联样式,如果您像这样按值查找它们,您将陷入噩梦

span[style*="background-image: url(potato.png)"]​{}​

背景是显式设置还是通过 background:#fff url(potato.png); 之类的速记属性设置的?我是否在此处输入了空格?大写,可能是 .PNG

【讨论】:

    【解决方案3】:

    尝试内联 css 方法。

    span[style="background-image:url('YourImagePAth')]
    

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      相关资源
      最近更新 更多