我正在使用CSS模块,到目前为止一切工作都很好。
我们开始将外部UI库与我们自己的库一起使用,因此我正在编写如下组件:
<div className={styles['my-component']}>
<ExternalUIComponent />
</div>
假设ExternalUIComponent
有自己的类,在最终的CSS文件中看起来像external-ui-component
,那么如何从css
文件中调整此组件样式?下面的示例不起作用:
.my-component {
font-size: 1em;
}
.my-component .external-ui-component {
padding: 16px;
// Some other styling adjustments here
}
答案 0 :(得分:2)
请不要使用别人建议的内联样式。尽可能远离内联样式,因为它们会导致不必要的重新渲染。
您应该改用global
。
.my-component {
:global {
.external-ui-component {
padding: 16px;
// Some other styling adjustments here
}
}
}
https://github.com/css-modules/css-modules#usage-with-preprocessors
此外,我建议使用驼峰式样式名称,这是css-modules的首选方式。
因此您的班级名称为:.myComponent { ... }
您可以在代码中将其用作
<div className={ styles.myComponent } >
如果您想添加更多样式,可以使用array.join(' ')
语法。
<div className={ [ styles.myComponent, styles.anotherStyle ].join(' ') } >
这更干净!
答案 1 :(得分:0)
您是否尝试过对该组件使用内联样式?
https://reactjs.org/docs/dom-elements.html#style
const divStyle = {
color: 'blue',
backgroundImage: 'url(' + imgUrl + ')',
};
function HelloWorldComponent() {
return <div style={divStyle}>Hello World!</div>;
}
答案 2 :(得分:0)
这是纯 CSS 中的较短形式(即不需要预处理器):
.my-component :global .external-ui-component {
// ...
}