在 CSS 中,如果兄弟在输出中的上方,即 html 中的前一个元素,则无法选择带有加号的兄弟。
例如
<div class="first">
<div class="second">
.second + .first { style applied to div.first}
无论如何在 SASS/SCSS 中可以做到这一点?
在 CSS 中,如果兄弟在输出中的上方,即 html 中的前一个元素,则无法选择带有加号的兄弟。
例如
<div class="first">
<div class="second">
.second + .first { style applied to div.first}
无论如何在 SASS/SCSS 中可以做到这一点?
SASS 支持所有 CSS3 选择器。兄弟姐妹+就是其中之一。但它并没有带来一些额外的功能。这意味着你可以做到
first {
+ second {
font-size: smaller;
}
}
但是你不能用它来影响父母......
Ps : 好像是 CSS4 的一个特性 :)
我知道那种感觉,这真的很烦人。我找到了一种快速的方法。
<div class="mainmenu">
<div class="subnav">
<ul>
<li>Whatever</li>
</ul>
</div>
</div>
CSS指向第一个div "mainmenu"
孩子> class "subnav"
.mainmenu{
& > .subnav{
// Child Selector SCSS HERE
}
}
@thgaskell,你证明我错了 :) 我的代码运行良好,但我丢失了 6KB 的缩小代码!我已将代码更新为以下评论的通知方式。
可能适合也可能不适合您的需求,但您可以使用 Sass/CSS 中的通用兄弟选择器。这将选择同一节点级别的所有元素(之前没有明确但仍然很方便):
.second {
.first ~ & {
/* styles to be applied to .second if a .first exists at the same node level */
}
}
我最终使用了 Jquery。完成工作 :) (抱歉,当我走另一条路线时,我不再有示例代码,但它非常简单,例如“如果孩子有课,则向此添加课”。:)
div { & + & { margin-left: 15px; background: firebrick;}}
试试它的工作。