Css sass嵌套不';I don’我没想到它会这样
我正在努力学习如何使用Sass,但我似乎无法找到筑巢的方法。有人能给我解释一下我做错了什么吗。这是一个真正的初学者问题,我知道,但我不明白我做错了什么。任何帮助都将不胜感激Css sass嵌套不';I don’我没想到它会这样,css,reactjs,sass,material-ui,Css,Reactjs,Sass,Material Ui,我正在努力学习如何使用Sass,但我似乎无法找到筑巢的方法。有人能给我解释一下我做错了什么吗。这是一个真正的初学者问题,我知道,但我不明白我做错了什么。任何帮助都将不胜感激 .header{ 显示器:flex; 高度:10vh; 背景色:#131921; 位置:粘性; 排名:0; z指数:100; 对齐项目:居中; 标题标志{ 宽度:100px; } } 你好 登录 返回 &命令 你的 首要的 我的印象是,为了设计标题img,它有一类标题\uuu徽标,我可以将它嵌套在我的sass文件中的
.header{
显示器:flex;
高度:10vh;
背景色:#131921;
位置:粘性;
排名:0;
z指数:100;
对齐项目:居中;
标题标志{
宽度:100px;
}
}
你好
登录
返回
&命令
你的
首要的
我的印象是,为了设计标题img,它有一类标题\uuu徽标,我可以将它嵌套在我的sass文件中的.header括号中,但这显然是错误的,因为它不会显示在生成的App.css文件中,也不会出现在开发工具中
抱歉,我知道这是一个noob问题。我正在添加一个快速答案,尽管这是一个输入错误(缺少类名的
),但是因为您正在学习
由于所有子元素都使用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*/
}
你在header\uu logo(.header\uu logo
)之前错过了一个
,这是一个打字错误,你忘记添加
来表示类名header\uu logo{width:100px;}
应该是。header\uu logo{]
投票结束,因为这是一个打字错误。该死……是的,现在我记起来了。谢谢你没有投否决票。我知道这很简单。谢谢你的支持help@MarkScholes我对SCS进行了一些更新,添加了一个变量来保存父元素,这样您就可以在子元素上使用它,例如header\u box
,因为它们是子元素在nav
类中。我不确定“/*将父项设置为孙辈的引用变量*/$p:&;”的含义基本上,&
指的是直接的父元素。因此,&\uu元素
将编译为.parentclass\uu元素
,但是,对于&\uu元素
的子元素,如果您使用&\uu子元素
,它将编译为.parentclass\uu元素
,但在标记中您使用的是头元素
randchildren.因此,您要做的是将&
设置为一个变量,以始终引用顶级元素。因此,无论您得到多么嵌套的{$p}
都将始终引用.header
。查看要查看的代码的\uu导航和\uu框
部分。