我正在为我的项目使用css模块,我有一个文件 positioning.css ,它有一些我想要导入的有用类。例如.right,
.left
使用CSS模块的最佳方法是什么?
目前我可以看到两个选项,但它们并不是那么好:
组件风格的构成
.right {
composes: right from '../styles/positioning.css';
}
或
组件中的多个css模块导入
import positioning from '../styles/positioning.css'
import styles from './myComponent.css';
Object.assign(styles, positioning)
class Menu extends Component {
render() {
return (
<div styleName='menu'>
<div styleName='left'>this is left</div>
<div styleName='right'>this is right</div>
</div>
);
}
};
export default CSSModules(Menu, styles);
答案 0 :(得分:3)
我设法解决了这个问题
ts-node --compiler-options={\"module\":\"commonJS\"} xxx.ts
答案 1 :(得分:1)
一种方法是将顶级的所有应用级css变量和计算收集到app.css
中var field = new ExpressionFieldDefinition<MyDocModel, string>(x => x.Id);
await collection.DistinctAsync(myCollectionName, field, filter, options, timeout);
然后使用
引用app.css@import "./theme/layout.css";
@import "./theme/colors.css";
...
这样您就可以在根级别的一个文件中管理@import范围。
答案 2 :(得分:0)
我会选择第一个命题。 (结果安静一样)
答案 3 :(得分:0)
您可以将经常使用的css文件导入到您在特定页面上导入的更广泛的CSS文件中,这是第二种方法,但要使其更清晰,特别是如果您导入了许多常见的核心css文件在几乎所有页面上。
答案 4 :(得分:0)
我建议你和[Sass]一起去[1]。 Sass允许使用partials(即分布式/作用域css表)。
你写了scoped(到你想要的组件)css然后将你所有的部分导入你的main.css。
其他一些优点:
答案 5 :(得分:0)
您可以选择像SASS这样的预编译css语言,它可以使用@extend ..etc重用公共属性,如下所示:
%common {
width: 100%;
height: inherit;
}
.my-class {
@extend %common;
}
答案 6 :(得分:0)
我发现这一行非常有助于导入:
@import 'file.css';
答案 7 :(得分:0)
您可以将它们设置为全局变量并将其名称更新为更加语义化,例如BootStraps pull-right
。
如果您将其声明为
:global(.right) {
/* ... */
}
然后您可以在应用程序中使用它们,最好在入口点的早期输入全局变量。