【发布时间】:2021-04-13 14:11:23
【问题描述】:
获取这个 SCSS 样式表:
@import "../vars";
img.userIcon {
&.regular {
max-width: 64px;
max-height: 64px;
}
&.small {
max-width: 32px;
max-height: 32px;
}
border-radius: 50%;
border: 2px solid $bg-light;
}
究竟如何让我的页面识别.regular 或.small?
这是我的UserIcon.tsx,应用了这种样式:
import styles from "../styles/components/UserIcon.module.scss";
type Props = {
src: string,
variant?: "regular" | "small"
}
export default function UserIcon({ src, variant = "regular" }: Props) {
return <img className={`${styles.userIcon} ${variant} mb-2`} src={src} />
}
现在,这显然行不通,因为在某些地方,类名都混杂在一起,看起来像这样:
<img class="UserIcon_userIcon__1jFAP regular mb-2">
这很奇怪,因为它不会对我导入的 boostrap scss 文件执行此操作。
所以我需要知道:
- 如何删除类名重命名。
- 如何正确实现
.regular和.small,使其使用混乱的名称。
【问题讨论】:
-
这被称为“CSS 模块”,它们是非常非常好的东西。不管你信不信,你想要那些“混乱”的类名。类名成为全局唯一的字符串,允许您在不相互冲突的不同文件中拥有相同的类名。缺点是必须通过导入的 css 对象翻译所有类名。但这是值得的。
标签: javascript css reactjs typescript sass