首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有“[class]”的CSS作为选择器的一部分。括号中的文字字符串'class‘

带有“[class]”的CSS作为选择器的一部分。括号中的文字字符串'class‘
EN

Stack Overflow用户
提问于 2016-12-02 03:26:22
回答 2查看 290关注 0票数 0

我在看CSS,里面有这样的规则:

代码语言:javascript
运行
复制
table[class].outer{width:600px;}

我从来没有见过这种类型的选择器,它几乎不可能搜索,即使是谷歌的“逐字”设置。

有人能解释这是怎么回事吗?是某种黑客吗?它只是一个坏了的CSS3选择器吗?

如果出现任何混淆,而不是[class="something"][class^="something']或任何字符串class后面跟着与属性内容匹配的代码的话。字面上就是开括号,c,l,a,s,s,近括号。这就是我所说的破碎的CSS3选择器的意思。用于“具有类属性”的选择器不需要匹配任何特定属性。

它可能与电子邮件呈现有关。该规则似乎不适用于任何普通浏览器。

EN

回答 2

Stack Overflow用户

发布于 2017-04-11 07:46:37

属性选择器[class]匹配具有类属性的任何元素。它的工作原理与您期望的任何其他属性匹配的属性选择器完全相同,而不仅仅是类。

这样的选择器本身没有什么问题;它是有效的CSS。即使在雅虎的电子邮件中获得CSS也是必要的!很久以前,它已经不是了。只匹配具有class属性的元素是没有错的。

但奇怪的是,在同一个复合选择器中有一个[class]属性选择器和一个类选择器。在HTML中,类选择器意味着元素有一个class属性,这使得属性选择器完全多余。据我所知,这样一个选择器唯一的目的是增加特异性。但是,您也可以通过复制类选择器(即table.outer.outer)来做到这一点,因为属性选择器和类选择器具有相同的特定性。也许作者没有意识到这一点,或者他们认为复制类选择器看起来比拥有一个[class]属性选择器更愚蠢。

或者这只是个错误,我们永远不会知道。

票数 0
EN

Stack Overflow用户

发布于 2017-04-11 07:51:18

类选择器仅仅意味着如果它有一个类,例如

代码语言:javascript
运行
复制
div[class] {
  color: red;
}
代码语言:javascript
运行
复制
<div class="a">somthing</div>

<div>something else</div>

<div class="b">blah blah</div>

正如您可以看到的,第一和第三div获得样式,但第二div没有,所以在您的例子中不会做太多,因为如果一个表的类是.outer,那么显然它有一个类

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40924283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档