首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多类CSS3中的后置伪

多类CSS3中的后置伪
EN

Stack Overflow用户
提问于 2018-02-20 10:05:44
回答 2查看 1.4K关注 0票数 1

如何为多个CSS-类分配前后的伪类

例如,

代码语言:javascript
运行
复制
[class*="divclass-"]::before, ::after{
      border-radius: 50%;
      width: 30%;
      height : 30%;
      border: 3px solid red;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-20 10:22:09

考虑一下这个HTML结构,其中您有一个<div>,它有子<span><p>。另一个<span><p>作为兄弟姐妹。

代码语言:javascript
运行
复制
<div>
  <span>abc</span>
  <p>xyz</p>
</div>
<span>123</span>
<p>456</p>

例如,如果我们需要改变孩子的颜色,我们可以在你的路上写,

代码语言:javascript
运行
复制
div span, p{
  color: red;
}

这样做的问题是,它也将改变兄弟<p>456</p>的颜色,因为样式被全局应用于所有段落标记。

解决方案是遵循特定性,就像我们对<span>所做的那样,并将选择器编写为

代码语言:javascript
运行
复制
div span, 
div p{
  color: red;
}

同样的规则也适用于伪元素。因此,解决方案是,

代码语言:javascript
运行
复制
[class*="divclass-"]::before, 
[class*="divclass-"]::after{
  border-radius: 50%;
  width: 30%;
  height : 30%;
  border: 3px solid red;
}

注1

如果您正在使用SASS,您的语法可能是,

代码语言:javascript
运行
复制
[class*="divclass-"]{
  &::before, 
  &::after{
    border-radius: 50%;
    width: 30%;
    height : 30%;
    border: 3px solid red;
  }
}

注2

beforeafter pesudo元素需要content属性。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2018-02-20 10:14:27

逗号并不意味着以下元素是相同选择器的子元素(此处为class*="divclass-")。它只允许你连锁选择器。

@见https://www.thoughtco.com/comma-in-css-selectors-3467052

以下是解决办法:

代码语言:javascript
运行
复制
[class*="divclass-"]::before, 
[class*="divclass-"]::after {
      border-radius: 50%;
      width: 30%;
      height : 30%;
      border: 3px solid red;
      content: '';
}
代码语言:javascript
运行
复制
<div class="divclass-1" style="height: 10px; width: 10px"></div>

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

https://stackoverflow.com/questions/48882583

复制
相关文章

相似问题

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