Пожалуйста, посмотрите Stackblitz или код ниже
Возникла проблема, когда переменные из: root не установлены для элементов. Но когда я переименую : root => .component . Работает как положено. Коробка показана.
Почему: корневые переменные не установлены? Разве они не глобальны или это проблема специфичности?
Заранее спасибо.
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.