SCSS循环检查输入并应用样式
SCSS Looping through checked inputs and applying styles
我不确定这是否可行(对 scss 还是个新手)但是是否可以编写一个循环函数 is scss 来编译成这段代码?
如果选中输入按钮,我想将这些 css 属性添加到这些元素。我希望只使用 css 和 scss 来实现这一点,而不是 JS。
#menu-results:checked + #reveal-results{ height: 100%; visibility:visible; opacity:1; };
#menu-membership:checked + #reveal-membership{ height: 100%; visibility:visible; opacity:1;};
#menu-lotterywest:checked + #reveal-lotterywest{ height: 100%; visibility:visible; opacity:1;};
#menu-grants:checked + #reveal-grants{ height: 100%; visibility:visible; opacity:1; };
#menu-more:checked + #reveal-more{ height: 100%; visibility:visible; opacity:1;};
或许可以创建一个 mixin
来设置样式并循环访问一组 ID。
@mixin menu-checked-styles($name){
#menu-#{$name} {
&:checked {
& + #reveal-#{$name} {
height: 100%; visibility:visible; opacity:1;
}
}
}
}
$menu-names: results, membership, lotterywest, grants, more;
@each $name in $menu-names {
@include menu-checked-styles($name);
}
我不确定这是否可行(对 scss 还是个新手)但是是否可以编写一个循环函数 is scss 来编译成这段代码?
如果选中输入按钮,我想将这些 css 属性添加到这些元素。我希望只使用 css 和 scss 来实现这一点,而不是 JS。
#menu-results:checked + #reveal-results{ height: 100%; visibility:visible; opacity:1; };
#menu-membership:checked + #reveal-membership{ height: 100%; visibility:visible; opacity:1;};
#menu-lotterywest:checked + #reveal-lotterywest{ height: 100%; visibility:visible; opacity:1;};
#menu-grants:checked + #reveal-grants{ height: 100%; visibility:visible; opacity:1; };
#menu-more:checked + #reveal-more{ height: 100%; visibility:visible; opacity:1;};
或许可以创建一个 mixin
来设置样式并循环访问一组 ID。
@mixin menu-checked-styles($name){
#menu-#{$name} {
&:checked {
& + #reveal-#{$name} {
height: 100%; visibility:visible; opacity:1;
}
}
}
}
$menu-names: results, membership, lotterywest, grants, more;
@each $name in $menu-names {
@include menu-checked-styles($name);
}