我想在一个页面上定位所有的h标签。我知道你可以这样做...
h1,
h2,
h3,
h4,
h5,
h6 {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
但是有没有一种更有效的方式来使用高级CSS选择器呢?例如,类似于:
[att^=h] {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
(但显然这是行不通的)
发布于 2020-06-16 04:00:26
新的:is()
CSS pseudo-class可以在一个选择器中做到这一点。
例如,下面是如何定位容器元素中所有标题的方法:
.container :is(h1, h2, h3, h4, h5, h6)
{
color: red;
}
大多数浏览器现在都支持:is()
,但请记住,2020年前的大多数浏览器都不支持没有前缀的它,所以如果您需要支持较旧的浏览器,请谨慎使用它。
在某些情况下,您可能希望使用:where()
伪类,它与:is()
非常相似,但具有不同的特异性规则。
发布于 2011-09-24 20:52:08
不,在这种情况下,您需要的是逗号分隔的列表。
发布于 2013-05-06 10:33:01
它不是基本的css,但是如果你使用LESS (http://lesscss.org),你可以使用递归:
.hClass (@index) when (@index > 0) {
h@{index} {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
.hClass(@index - 1);
}
.hClass(6);
@for
(http://sass-lang.com)将允许您管理这一点,但不允许递归;他们为这些实例提供了Sass语法:
@for $index from 1 through 6 {
h#{$index}{
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
}
如果你使用的不是像LESS或Sass这样编译成CSS的动态语言,你绝对应该试试这些选项之一。它们真的可以简化你的CSS开发,让你的CSS开发更有活力。
https://stackoverflow.com/questions/7539125
复制相似问题