【问题标题】:What is the correct usage of CSS attr function?CSS attr 函数的正确用法是什么?
【发布时间】:2009-06-25 16:11:06
【问题描述】:

由于这个功能是在 IE8 中实现的,我想看看我能用它做什么,但是我很难让它在除 :before 和 :after css 伪元素之外的任何地方工作。是否应该允许以下行为?

span[color] { color: attr(color); }

我也在谷歌浏览器中尝试过,但没有成功。此外,还有更多动态的东西,例如:

input[value=attr(default)] { color: gray; }

【问题讨论】:

    标签: css internet-explorer-8


    【解决方案1】:

    在 CSS 2.1(现在应该使用的)中,attr 函数的功能有点受限。它可以出现的唯一位置是在:before and :after pseudo-elements 上的content 属性中。所以它的唯一目的就是生成内容

    在 CSS 3 中,changed a bit,因为 attr() 可能返回其他类型,而不仅仅是字符串,它也可以用于其他属性。

    但请记住,CSS 3 is still a Working Draft 的大部分功能(不包括值和单位)都是候选推荐。用户代理对 CSS 3 功能的支持目前在有限和几乎不存在之间变化。大多数浏览器供应商似乎通过实现诸如圆角边框、文本阴影等“很酷的东西”来对抗无聊,但这并不意味着支持它的工作量很大。但是您在这里看到的绝对超出了此范围,并且 WD 状态在不久的将来不会改变。所以不要指望它会在任何地方实现。

    【讨论】:

    • 是的,那将是 CSS3 模块。 Johannes 明确表示它是有限制的 CSS2.1,而 CSS3 放宽了限制并使其更通用。
    • @Joey,在我就有关 attr() 的类似问题提出自己的问题之前,您是否知道在过去 3 年中浏览器对 attr() 的其他属性的支持是否发生了任何变化比如宽度?
    【解决方案2】:

    随便用

    span.red {}
    

    对于任何不同的颜色,我认为您不需要所有组合:)

    或者直接使用

    span[color="red"] {}
    

    【讨论】:

    • 我认为您错过了问题的重点。虽然我给出的例子是人为的,但我对 attr() 函数本身更感兴趣。
    猜你喜欢
    • 2010-10-25
    • 1970-01-01
    • 2015-10-21
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多