首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以用一个选择器来定位所有的<H>标签吗?

我可以用一个选择器来定位所有的<H>标签吗?
EN

Stack Overflow用户
提问于 2011-09-24 20:49:45
回答 8查看 158.5K关注 0票数 185

我想在一个页面上定位所有的h标签。我知道你可以这样做...

代码语言:javascript
复制
h1,
h2,
h3,
h4,
h5,
h6 {
  font: 32px/42px trajan-pro-1,trajan-pro-2;
}

但是有没有一种更有效的方式来使用高级CSS选择器呢?例如,类似于:

代码语言:javascript
复制
[att^=h] {
  font: 32px/42px trajan-pro-1,trajan-pro-2;
}

(但显然这是行不通的)

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2020-06-16 04:00:26

新的:is() CSS pseudo-class可以在一个选择器中做到这一点。

例如,下面是如何定位容器元素中所有标题的方法:

代码语言:javascript
复制
.container :is(h1, h2, h3, h4, h5, h6)
{
    color: red;
}

大多数浏览器现在都支持:is(),但请记住,2020年前的大多数浏览器都不支持没有前缀的它,所以如果您需要支持较旧的浏览器,请谨慎使用它。

在某些情况下,您可能希望使用:where()伪类,它与:is()非常相似,但具有不同的特异性规则。

票数 21
EN

Stack Overflow用户

发布于 2011-09-24 20:52:08

不,在这种情况下,您需要的是逗号分隔的列表。

票数 148
EN

Stack Overflow用户

发布于 2013-05-06 10:33:01

它不是基本的css,但是如果你使用LESS (http://lesscss.org),你可以使用递归:

代码语言:javascript
复制
.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语法:

代码语言:javascript
复制
@for $index from 1 through 6 {
  h#{$index}{
    font: 32px/42px trajan-pro-1,trajan-pro-2;
  }
}

如果你使用的不是像LESS或Sass这样编译成CSS的动态语言,你绝对应该试试这些选项之一。它们真的可以简化你的CSS开发,让你的CSS开发更有活力。

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

https://stackoverflow.com/questions/7539125

复制
相关文章

相似问题

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