css - React css 模块 - 将样式应用于原生 html 标签
问题描述
这很简单。假设我有一些NavBar
组件:
import React from 'react';
import styles from './NavBar.module.css';
export default function NavBar() {
return(
<nav className={styles.nav}>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</nav>
);
}
现在我有一个NavBar.module.css
文件:
.nav {
display: flex;
padding: 20px;
background: #6dd3d6;
}
但是由于我使用的是语义标签并且使用 css-modules 的好处是它们不会引起名称干扰,是否有可能以某种方式直接设置样式nav
而无需通过styles
类?
喜欢
import styles from './NavBar.module.css';
export default function NavBar() {
return(
<nav>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</nav>
);
}
和
nav {
display: flex;
padding: 20px;
background: #6dd3d6;
}
解决方案
我认为你可以做类似的事情。
import React from 'react';
import styles from './NavBar.module.css';
export default function NavBar() {
return(
<div className={styles.nav_container}>
<nav>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</nav>
</div>
);
}
在您的 css 模块文件(NavBar.module.css)中,您可以执行
.nav_container nav {
display: flex;
padding: 20px;
background: #6dd3d6;
}
.nav_container ul{
/* for example */
list-style: none;
}
.nav_container li{
/* for example */
font-size: large;
}
尽管您将在 css 文件中多次编写 nav_container ,但它比将 className 放在每个 jsx 标记上更易于管理和复制。
当然,而不是额外的 div 你可以做
<nav className={styles.nav}>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</nav>
和 css 模块文件
.nav{
display: flex;
padding: 20px;
background: #6dd3d6;
}
.nav ul{
}
.nav li{
}
推荐阅读
- visual-studio-code - 在 VsCode 中将 () 替换为 {} 的最有效方法?
- javascript - 如何将带括号的字符串解析为数组数组?
- sql - 如何使用 sql AND 和 OR 运算符按类别查询帖子
- tensorflow - 带有 Keras 的 Tf.Dataset 返回 ValueError
- codenameone - 代号一“无法找到或加载主类#”消息
- angular - 带有字符串数组参数的Angular 5 / typescript类构造函数
- r - winzorized 的值比发现的异常值多?
- java - 从一组字符串推断正则表达式模式,我需要一个 java 中的算法来创建以下信息
- c - 在函数获取的代码块中构建错误
- gwt - 我是一名设计师,在使用 SMARTGWT 时遇到了一些问题