我有一个侧边栏导航元素,我试图根据该元素在React中的位置将SCSS样式应用于该元素。这是我目前从模块导入的CSS类的组合所拥有的:
styles.main,
styles[position],
isOpen ? styles.opened : styles.closed,
SCSS文件中的代码段
.right {
top: 0;
right: 0;
.opened {
visibility: visible;
}
.closed {
visibility: hidden;
}
}
我试图弄清楚如何正确应用SCSS样式。这些元素继承了.main
类和.right
的根选择器(包含top
和right
属性),但没有继承.right.opened
和{ {1}}。
对于我要去哪里的任何帮助或指示,将不胜感激。非常感谢你!
答案 0 :(得分:2)
您不必继承样式,而可以组合样式。而不是:
.right {
top: 0;
right: 0;
.opened {
visibility: visible;
}
.closed {
visibility: hidden;
}
}
您必须这样做:
.right {
top: 0;
right: 0;
&__opened {
visibility: visible;
}
&__closed {
visibility: hidden;
}
}
然后,您将应用类似isOpen ? styles.right__opened : styles.right__closed
的类。
您可以选中my demo。
答案 1 :(得分:1)
使用classnames实用程序,这是当前推荐的在ReactJs中处理条件CSS类名称的方法。