【问题标题】:Why use an attribute selector to match classes?为什么使用属性选择器来匹配类?
【发布时间】:2013-03-14 07:22:16
【问题描述】:

我在an example 的响应式电子邮件模板中找到了这样的 CSS 选择器,例如:

a[class="btn"]

如果与以下语法完全相同,为什么要使用此语法:

a.btn

它对移动浏览器或其他任何东西有影响吗?

【问题讨论】:

    标签: css css-selectors


    【解决方案1】:

    [] 语法是 attribute selector

    a[class="btn"]
    

    这将选择任何带有class="btn"<a> 标记。但是,它不会选择具有class="btn btn_red"<a>,例如(而a.btn 会)。它仅完全匹配该属性。

    您可能想阅读The 30 CSS Selectors you Must Memorize。对于任何崭露头角的 Web 开发人员来说,它都是无价之宝。

    【讨论】:

    • 但它与响应无关,它是纯 CSS 语法,对吧?
    • 我也遇到了相同的教程 (campaignmonitor.com/guides/mobile/coding) - 他们会在教程中使用这种技术似乎很奇怪。教程应该让刚开始的人尽可能清楚。特别是当常见的.btn 选择器就足够了。我错过了什么吗?这有什么好处吗?我猜的特异性更高?
    • 难道没有一种新方法可以使用 jQuery 和括号来选择所有类名以获取所有具有相同前缀的类吗?像 $(this).css("[class~='btn_']", "red");语法可能是错误的,但你知道正确的语法是什么吗?
    • @whyoz 我想你在找[class^='btn_']
    • 如果您更新答案以显示其他类型的属性选择器,那就太好了。搜索“css 选择器方括号”会在搜索中提出这个问题,并且很难搜索其他变体(“css 选择器方括号星”)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    相关资源
    最近更新 更多