可以说我有以下html:
<header class="header">
<div class="title">
<h1>Home</h1>
</div>
<div class="logo">
<img src="#" alt="Logo">
</div>
<div class="account">
<div class="options">
</div>
<div class="search">
</div>
</div>
</header>
Run Code Online (Sandbox Code Playgroud)
我有以下SCSS:
header {
height: 4.1rem;
div {
width: 33%;
float: left;
height: 4.1rem;
line-height: 4.1rem;
color: #fff;
&.title {
h1 {
font-weight: normal;
font-size: 3rem;
padding: 0;
margin: 0;
}
}
&.logo {
text-align: center;
}
&.account {
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我遇到的问题是divs options,search其中33%account是逻辑,就像我一样div {width: 33%}.我知道我可以选择直接子元素:
header {
> div {
}
}
Run Code Online (Sandbox Code Playgroud)
但即使我把>所有其他课程都放在前面,这也无济于事.我也知道我可以说宽度应该是0或者再次进行,.account但我想防止这种情况.
Dro*_*ops 32
试试这个:
...
& > div {width: 33%;}
div {
float: left;
height: 4.1rem;
line-height: 4.1rem;
color: #fff;
...
Run Code Online (Sandbox Code Playgroud)
取出div宽度,仅适用于直接儿童.保持休息状态.这里是快速小提琴(稍后删除.option和.search样式,它仅用于可视化).
请编辑您的问题,并更好地解释您想要实现的目标.
DIN*_*LIT 13
在父元素中使用&with >,如下所示:
.services {
& > div {
margin-bottom: 25px;
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定我理解你。但我认为您想要在纯 CSS 中组合直接子选择器和子伪选择器:
header > div:first-child {
}
Run Code Online (Sandbox Code Playgroud)
或者,对于第二个 div:
header > div:nth-child(2) {
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用not选择器:
header > div:not(.account) {
}
Run Code Online (Sandbox Code Playgroud)
排除任何不需要的 div。