Css选择器有几种:是否有类前缀的CSS选择器(prefix half)

关于Css选择器有几种的问题,在prefix half中经常遇到, 我想将 CSS 规则应用于其中一个类匹配指定前缀的任何元素。

我想将 CSS 规则应用于其中一个类匹配指定前缀的任何元素。

例如,我想要一个适用于具有以status-开头的类的 div 的规则(A 和 C,但不是以下代码片段中的 B):

<div id='A' class='foo-class status-important bar-class'></div>
<div id='B' class='foo-class bar-class'></div>
<div id='C' class='foo-class status-low-priority bar-class'></div>


div[class|=status]div[class~=status-]的某种组合

它在 CSS 2.1 下是可行的吗?在任何 CSS 规范下都是可行的吗?

注意:我知道我可以使用 jQuery 来模拟。

469

它不适用于 CSS2.1,但可以使用 CSS3 属性子字符串匹配选择器(IE7 + 支持):

div[class^="status-"], div[class*=" status-"]

注意第二个属性选择器中的空格字符。这将拾取class属性满足以下条件之一的div元素:

[class^="status-"]-以“status-”开头

[class*=" status-"]-包含直接出现在空格字符之后的子字符串“status-”。类名由空格per the HTML spec分隔,因此是重要的空格字符。如果指定了多个类,则会检查第一个类之后的任何其他类,增加了在属性值为空格填充的情况下动态检查第一个类的好处(这可能发生在输出属性

当然,这也适用于 jQuery,如here所示。

您需要如上所述组合两个属性选择器的原因是因为属性选择器(如[class*="status-"])将匹配以下元素,这可能是不可取的:

<div id='D' class='foo-class foo-status-bar bar-class'></div>

如果您可以确保这样的场景永远不会发生,那么为了简单起见,您可以自由地使用这样的选择器。但是,上面的组合要健壮得多。

如果您可以控制 HTML 源或生成标记的应用程序,那么将status-前缀作为自己的status类而不是as Gumbo suggests可能会更简单。

22

CSS 属性选择器将允许您检查字符串的属性。(在这种情况下-类名)

https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

(看起来它实际上处于 2.1 和 3 的“推荐”状态)


是我 * 认为它是如何工作的概述:

[ ]:是复杂选择器的容器,如果您愿意的话...

class:'class' 是您在本例中查看的属性

*:修饰符(如果有):在这种情况下-“通配符”表示您正在寻找任何匹配。

test-:属性的值(假设有一个)-包含字符串“test-”(可以是任何东西)

所以,例如:

[class*='test-'] {
  color: red;
}

如果你有充分的理由,你可以更具体,元素也是

ul[class*='test-'] >li {...}

我试图找到边缘情况,但我认为没有必要使用^*的组合-作为 * 得到一切...

example:http://codepen.io/sheriffderek/pen/MaaBwp http://caniuse.com/#feat=css-sel2

IE6 以上的一切都会愉快地服从。:)

请注意:

[class] {...}

将选择任何与类...

6

这对于 CSS 选择器是不可能的。但是您可以使用两个类而不是一个,例如statusimportant而不是status-important

3

你不能这样做没有。有一个attribute selector完全匹配或部分直到一个-符号,但它不会在这里工作,因为你有多个属性。如果你正在寻找的类名总是第一个,你可以这样做:

<html>
<head>
<title>Test Page</title>
<style type="text/css">
div[class|=status] { background-color:red; }
</style>
</head>
<body>
<div id='A' class='status-important bar-class'>A</div>
<div id='B' class='bar-class'>B</div>
<div id='C' class='status-low-priority bar-class'>C</div>
</body>
</html>

请注意,这只是指出哪个 CSS 属性选择器是最接近的,不建议假设类名总是在前面,因为 javascript 可以操纵属性。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(702)
Web.xml配置过滤器:如何在web.xml中配置欢迎文件列表
上一篇
Js获取checkbox是否选中:如何在Vuejs中确定复选框是否被选中
下一篇

相关推荐

  • css参考手册:标题

    CSS参考手册是一本关于CSS语言的参考书,由W3C组织出版,包含了CSS语言的完整语法、属性、值和案例等。它提供了一个完整的CSS语言参考,可以帮助开发者快速学习和使用CSS语言,从而更好地创建网页。…

    2023-06-29 01:40:51
    0 59 12
  • css登录界面模板代码:登录你的账号,开启新的旅程

    CSS登录界面模板代码是一种使用CSS来制作登录界面的代码,它可以帮助开发者快速制作出美观且易于使用的登录界面,以下是一个简单的CSS登录界面模板代码:…

    2023-05-06 06:17:54
    0 38 88
  • html引用css文件:My Webpage Welcome to My Webpage!

    示例示例在html文件中引用css文件,可以使用标签,代码示例如下:其中,rel属性表示关系,type属性表示文件的类型,href属性表示css文件的路径。…

    2023-06-21 12:33:03
    0 42 70
  • css鼠标移入移出:标题

    CSS鼠标移入移出,可以使用CSS中的:hover伪类来实现,代码如下:上面的代码表示,当鼠标移入.example元素时,将其文字颜色改为白色。…

    2023-04-28 12:13:20
    0 17 17
  • css自动换行:标题

    CSS自动换行可以使用CSS的word-wrap属性来实现,代码如下:该属性有两个可选值:…

    2023-11-21 11:03:53
    0 52 74
  • css布局技巧:和3个段落 标题 段落1 段落2 段落3

    CSS布局技巧是指使用CSS来实现页面布局的方法。这些技巧可以帮助开发人员快速实现页面布局,并且可以更好地控制页面的外观和行为。…

    2023-04-17 01:31:53
    0 40 69
  • css 超出自动换行:这是一个标题

    css 超出自动换行,可以使用 css 的 word-wrap 属性来实现,该属性允许长单词或 URL 地址换行到下一行。代码如下:…

    2023-04-08 01:41:59
    0 41 61
  • css出现滚动条控制页面内容的浏览

    当页面内容超出浏览器窗口的大小,会出现滚动条,可以通过CSS来控制。例如:…

    2023-06-05 08:29:43
    0 28 12

发表评论

登录 后才能评论

评论列表(7条)