css - sass 嵌套不像我想象的那样工作
问题描述
我正在尝试学习如何使用 Sass,但我似乎无法嵌套。有人可以向我解释我做错了什么。我知道这是一个真正的初学者问题,但我不明白我做错了什么。任何帮助,将不胜感激。
.header {
display: flex;
height: 10vh;
background-color: #131921;
position: sticky;
top: 0;
z-index: 100;
align-items: center;
header__logo {
width: 100px;
}
}
<div className="header">
<img
className="header__logo"
src="https://pngimg.com/uploads/amazon/amazon_PNG11.png"
alt="amazon_logo"
/>
<div className="header__search">
<input className="header__searchInput" type="text" />
<SearchIcon />
</div>
<div className="header__nav">
<div className="header__boxes">
<span className="header__boxesFirstLine">hello</span>
<span className="header__boxesSecondLine">sign in</span>
</div>
<div className="header__boxes">
<span className="header__boxesFirstLine">returns</span>
<span className="header__boxesSecondLine">& orders</span>
</div>
<div className="header__boxes">
<span className="header__boxesFirstLine">your</span>
<span className="header__boxesSecondLine">prime</span>
</div>
</div>
</div>
我的印象是,为了设置标题 img 的样式,它有一个 header__logo 类,我可以将它嵌套在我的 sass 文件中的 .header 括号中,但这显然是错误的,因为它没有出现在生成的 App 中。 css 文件,并且不在开发人员工具中。
对不起,我知道这是一个菜鸟问题。
解决方案
我正在添加一个快速答案,即使这是一个错字(缺少.
类名`),但因为您正在学习。
由于您的所有子元素都使用 BEM 样式作为类名,因此您可以使用以下方法引用父元素&
:
.header {
/* set the parent as a variable to reference for grandchildren */
$p : &;
display: flex;
height: 10vh;
background-color: #131921;
position: sticky;
top: 0;
z-index: 100;
align-items: center;
&__nav {
/* styles */
#{$p}__boxes {
/* styles */
}
}
&__logo {
width: 100px;
}
&__search {
/* styles*/
}
&__boxes {
/* styles*/
}
}
这将编译为:
.header {
display: flex;
height: 10vh;
background-color: #131921;
position: sticky;
top: 0;
z-index: 100;
align-items: center;
}
.header__nav {
/* styles */
}
.header__nav .header__boxes {
/* styles */
}
.header__logo {
width: 100px;
}
.header__search {
/* styles*/
}
.header__boxes {
/* styles*/
}
推荐阅读
- java - Hapi FHIR RestfulServer 未解析 R4 同意资源的 id
- reactjs - TypeError:加载 svg 时无法读取未定义的属性“tap”
- python - Matplotlib 子图没有按预期工作?
- python - 如何不使用多重继承混淆类变量?
- rust - Rust PyO3 与 cc 的链接失败
- swift - 在 macOS Monterey 上,无法创建快捷操作
- java - Cosmos DB SDK 的连接问题
- angular - Typescript:如何重置从 DI 注入的服务的属性值
- azure-devops - 在一个构建代理上运行所有 azure 管道阶段
- angular - 在ionic 5中单击谷歌地图标记时如何调用模态控制器