gpt4 book ai didi

html - :root CSS variables are not set to element styles

转载 作者:太空狗 更新时间:2023-10-29 19:32:58 24 4
gpt4 key购买 nike

请看Stackblitz或者下面的代码
来自 :root 的变量未设置为元素时出现问题。但是当我重命名 :root => .component 时。它按预期工作。显示框。
为什么 :root 变量没有设置?它们不是全局的还是特异性的问题?
提前致谢。

SCSS:

:host {
display: block;
}
:root {
--profile-picture-size-w: 9rem;
--profile-picture-size-h: 9rem;
--profile-picture-border: 1px solid #1e96a9;
--profile-box-backgound-size: cover;
--profile-box-p: 20px 0;
--article-dateInfo: 3px;
}

.component{
height: 500px;
background: lightgray;
#main_content {
.scrollbarContent{
article#profile {
.profileBox {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: var(--profile-box-p);

.profilePicture {
position: relative;
width: var(--profile-picture-size-w);
height: var(--profile-picture-size-h);
background: cyan;
}
}
}
}

}

}

@media all and (min-width: 768px){
:root {
--profile-picture-size-w: 5.5rem;
--profile-picture-size-h: 5.5rem;
--profile-picture-border: 5px solid #1e96a9;
--profile-box-backgound-size: 100% 38%;
--profile-box-p: 20px 0 0 0;
--article-date-info: 0;
}
}

HTML:

<div class="component">
<perfect-scrollbar id="main_content">
<div class="scrollbarContent">
<article id="profile">
<div class="profileBox">
<div class="profilePicture">
</div>
</div>
</article>
</div>
</perfect-scrollbar>

</div>

编译成 css 输出:

:host {
display: block;
height: auto;
margin-left: auto;
margin-top: 6px; }

:root {
--profile-picture-size-w: 9rem;
--profile-picture-size-h: 9rem;
--profile-picture-border: 1px solid #1e96a9;
--profile-box-backgound-size: cover;
--profile-box-p: 20px 0;
--article-dateInfo: 3px; }

.component {
height: calc(100%); }
.component #main_content .scrollbarContent article#profile .profileBox {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: var(--profile-box-p); }
.component #main_content .scrollbarContent article#profile .profileBox .profilePicture {
position: relative;
width: var(--profile-picture-size-w);
height: var(--profile-picture-size-h);
margin-top: 14px;
background: cyan; }

@media all and (min-width: 768px) {
:root {
--profile-picture-size-w: 5.5rem;
--profile-picture-size-h: 5.5rem;
--profile-picture-border: 5px solid #1e96a9;
--profile-box-backgound-size: 100% 38%;
--profile-box-p: 20px 0 0 0;
--article-date-info: 0; }
:host {
height: 77vh; } }

Node-sass包用于将scss编译成css。

最佳答案

SCSS 和 CSS4 变量的行为不同。

SCSS 变量格式:

$color: red;


.classRed{
color: $color;
}

SCSS 将以这种方式编译为 CSS:

.classRed{
color: red;
}

CSS4 变量格式:

:root{
--color: red;
}

.classRed{
color: var(--color);
}

CSS 不会像 SCSS 那样编译,因为它已经是 CSS(它使用 variables CSS4 feature )。

关于html - :root CSS variables are not set to element styles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50130673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com