提问者:小点点

在CSS中按属性选择元素


有可能在CSS中通过元素的HTML5数据属性(例如,data-role)来选择元素吗?


共3个答案

匿名用户

如果您的意思是使用属性选择器,当然,为什么不:

[data-role="page"] {
    /* Styles */
}

有多种属性选择器可以用于各种场景,在我链接到的文档中都有介绍。注意,尽管自定义数据属性是一个“新的HTML5特性”,

>

  • 浏览器通常不会在支持非标准属性方面遇到任何问题,因此您应该能够使用属性选择器筛选它们;和

    您也不必担心CSS验证问题,因为CSS并不关心非命名空间属性名,只要它们不破坏选择器语法。

  • 匿名用户

    在现代浏览器中,也可以选择属性而不考虑其内容

    与:

    [data-my-attribute] {
       /* Styles */
    }
    
    [anything] {
       /* Styles */
    }
    

    例如:http://codepen.io/jasonm23/pen/fadnu

    适用于相当大比例的浏览器。

    注这也可以在JQuery选择器中使用,或者使用document.queryselector

    匿名用户

    值得注意的是CSS3子字符串属性选择器

    [attribute^=value] { /* starts with selector */
    /* Styles */
    }
    
    [attribute$=value] { /* ends with selector */
    /* Styles */
    }
    
    [attribute*=value] { /* contains selector */
    /* Styles */
    }