Jeango 2/2/2021, 7:01:07 PM
👉 Styling Tips 样式配置建议
有时候需要给组件指定不止一个的样式类名,上面的列子中使用了两种方法,一是使用模板字符串将多个样式类名插入,另一个方法是使用数组的 join 方法以空格联接。
官方文档提供的是使用 classnames 模块,它可以根据条件是否成立来决定样式类是否设置,参考用法:
import styles from './alert.module.css'
import cn from 'classnames'
export default function Alert({ children, type }) {
return (
<div
className={cn({
[styles.success]: type === 'success',
[styles.error]: type === 'error'
})}
>
{children}
</div>
)
}
作为开箱即用的 Next.js 默认使用 PostCSS 来处理 CSS 文件。
要配置 PostCSS 可以在顶层目录中创建 postcss.config.js 配置文件,它在你使用 Tailwind CSS 这些样式库时很有用。推荐使用 postcss-preset-env 和 postcss-flexbugs-fixes 以匹配 Next.js 的默认行为,首先安装依赖:
npm install tailwindcss postcss-preset-env postcss-flexbugs-fixes
然后编辑 postcss.config.js
:
module.exports = {
plugins: [
'tailwindcss',
'postcss-flexbugs-fixes',
[
'postcss-preset-env',
{
autoprefixer: {
flexbox: 'no-2009'
},
stage: 3,
features: {
'custom-properties': false
}
}
]
]
}
建议清理未使用的 CSS,通过 tailwind.config.js
配置 purge 选项:
// tailwind.config.js
module.exports = {
purge: [
// Use *.tsx if using TypeScript
'./pages/**/*.js',
'./components/**/*.js'
]
// ...
}
Next.js 可以导入 SASS,两种 .scss .sass 扩展名都可以,通过样式模块支持组件级别的样式,.module.scss
or .module.sass
。
当然要为 Next.js 安装 Sass 依赖:
npm install sass
作为开箱即用的 Next.js 默认使用 PostCSS 来处理 CSS 文件。
要配置 PostCSS 可以在顶层目录中创建 postcss.config.js 配置文件,它在你使用 Tailwind CSS 这些样式库时很有用。推荐使用 postcss-preset-env 和 postcss-flexbugs-fixes 以匹配 Next.js 的默认行为,首先安装依赖:
npm install tailwindcss postcss-preset-env postcss-flexbugs-fixes
然后编辑 postcss.config.js
:
module.exports = {
plugins: [
'tailwindcss',
'postcss-flexbugs-fixes',
[
'postcss-preset-env',
{
autoprefixer: {
flexbox: 'no-2009'
},
stage: 3,
features: {
'custom-properties': false
}
}
]
]
}
建议清理未使用的 CSS,通过 tailwind.config.js
配置 purge 选项:
// tailwind.config.js
module.exports = {
purge: [
// Use *.tsx if using TypeScript
'./pages/**/*.js',
'./components/**/*.js'
]
// ...
}
Next.js 可以导入 SASS,两种 .scss .sass 扩展名都可以,通过样式模块支持组件级别的样式,.module.scss
or .module.sass
。
当然要为 Next.js 安装 Sass 依赖:
npm install sass