我需要一种方法来创建没有styled
norcss
方法的类。
让我们假设适当的样式系统,组件只有基本样式,但没有定位、边距等。
例如
const Root = styled.div`/* Some styles */`
export const MyComponent = ({className}) => <Root className={className} />
所以这很容易,我为组件附加了私有样式,并允许它从父级接收和应用类。
如果我有“经典”css,我会这样使用它
import styles from 'some-styles.module.css';
...
<MyComponent className={styles.someStyle} />
这将按预期工作。
这是问题所在:
如何styled-components
只创建一个类?它曾经使用Glamorous
过,但 SC(和 Emotion)没有从css
.
我不能使用单独的 css 文件来允许这种样式,这应该是常见的用例(父级设置子级的大小)
Emotion 中的编辑和解决方案
我发现 Emotion 添加了css
可用于每个 jsx 元素的额外属性。它可以用于原生<div>
、样式化<Div>
或自定义 React 组件<MyComponent
。Babel在编译期间将css
属性更改css({...})
为 className。如果<MyComponent>
只接受 prop className
,它将通过css
prop 从父级接收。