css - 在 css 中按 ".class"或 "*[class~=box]"定位类有什么区别?

标签 css css-selectors

假设我有一个带有盒子类的 html 元素: <p class="box alert">Content here</p>

最近我了解了一种在 CSS 中定位元素的方法,所以如果我想选择任何带有框类的元素,我可以使用这个: *[class~=box] {border: 2px solid grey;}

我想知道,这与仅通过类名定位元素的字面意思不一样吗?还是我没有正确理解? .box {border: 2px solid grey;}

如果相同,在哪些情况下使用第二种方法而不是第一种方法比较合适?

最佳答案

属性选择器并不是真正为类设计的,它是为元素中的其他属性设计的,例如 a[href*="google"],但是是的,您可以设置这样和那样的元素样式肯定会被视为反模式

虽然 .classname[class~="classname"] 会为相同的元素设置样式,但这些选择器的 CSS 特异性会以不同的方式计算 - 老实说,我' 不完全确定,但 *[class~="classname"] 可以通过 .classname 获胜,而使用这样编写的样式的人应该是知道。

关于css - 在 css 中按 ".class"或 "*[class~=box]"定位类有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63430783/

相关文章:

javascript - 粘性菜单不考虑调整大小

jquery - 动态事件链接不起作用

防止悬停的 CSS 内联元素

java - 如何使用 driver.findElement 来定位具有以下 XML 的元素?

css - 如果有内部 div,则最后一个子选择器无法正确设置

php - 在 Netbeans 中将 php 文件视为 css

html - 我如何居中 <img/> <h1>...</h1> <img/> HTML + CSS?

html - 如何在我的代码中使用第一个 child ?

html - 将 * 与 :not in css 一起使用

html - 为特定元素定义 css