【问题标题】:Is it possible to select all elements which do not have any CSS class?是否可以选择所有没有任何 CSS 类的元素?
【发布时间】:2012-10-06 03:18:59
【问题描述】:

The W3C Recommendations 定义了使用A[CLASS]{/*Code*/} 选择具有定义类的任何锚点的能力,但是有前因吗?

我可以选择所有没有类的锚点吗?

我的直觉是使用A[~CLASS]{/*Code*/},但没有记录,A[CLASS=]{/*Code*/} 选择所有类名为空字符串的锚(例如,<A CLASS="" HREF="http://example.com/">This anchor has a class, but it's empty.</A>)。

示例用法


在这段代码中,我只希望无类链接是绿色的。

<HTML>
<HEAD>
<LINK REL="stylesheet" TYPE="text/css" HREF="http://example.com/externalUneditableStyles.CSS" />
<STYLE>
A.deadLink{
color:#FF0000 !important;
}
A{
color:#00FF00;
}

</STYLE>
</HEAD>

<BODY>
<A HREF="http://fakesite.not/" CLASS="deadLink">This link is red, as specified by the CSS above.</A>
<A HREF="http://example.com/">This link is green, as specified by the CSS above.</A>
<A HREF="#/childpage/" CLASS="childLink">This is a link to a child page, and is styled by external uneditable CSS. That CSS doesn't specify a color, so it is green, even though that might not be the intended effect.</A>
</BODY>
</HTML>

【问题讨论】:

  • 其实A[CLASS=]是语法错误。 A[CLASS=""]是正确的表达方式。
  • @pst 谢谢,但是你写它的方式也把它从一个问题变成了一个陈述,但最后有一个问号。另外,你改的时候我正在编辑,所以改回来了。我会尽量让它更符合您的喜好。
  • @Supuhstar 是的,我倾向于用“问题”标题来做到这一点:(我认为这是一个很好的标题。

标签: html css css-selectors anchor


【解决方案1】:

使用这样的东西:

a:not([class]) {
    /*some styling here*/
}

小演示:little link.

【讨论】:

  • htis 是否适用于多个属性?可以用来选择既没有class又没有id的元素?
  • @Supuhstar 是的,使用a:not([class]):not([id])。这是一个小演示:little link.
【解决方案2】:

这正是级联的用途,如果你这样做的话:

a { color: #000; } /* this targets all anchors */

然后在你的样式表中你可以这样做

a.classname { color: #ffcc00; } /* to override the color for the once with the classname class defined. */

我希望这可以澄清你的问题。

【讨论】:

  • 这个问题不是问如何选择具有特定类别的A。它询问如何选择具有no的A。
  • 这就是没有类的 {} 所做的事情。
  • 这将匹配所有的A。不是 no 类的A的集合。
  • 当你有很多类时这会变得很麻烦。我正在处理一个拥有数百种锚点的网站(它是一个 wiki;它有常规、死、外部、编辑、页面选项卡等)。
  • 我想@pst 试图说明的一点是,使用级联覆盖一般样式和选择特定元素之间存在区别.
【解决方案3】:

尝试使用.foo:not(.bar)-pseudo 选择器。我还建议您不要在大写字母中编码标签。我相信它在 HTML5 中是允许的,但在 XHTML 中是不允许的。即便如此,这种做法还是不受欢迎。

【讨论】:

  • 建议这个有点晚了,你不觉得吗?查看接受的答案:P
  • 在 CSS :not() 中使用引号也是无效的,即使 jQuery 允许这样做。
猜你喜欢
  • 2016-07-21
  • 2018-09-16
  • 2013-05-01
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多