在 Tailwind 的基础上添加自己的全局基础样式的最佳实践。
基础(或全局)样式是样式表开头的样式,可为诸如<a>
标签、标题等基本 HTML 元素设置有用的默认值,或者有目的重置,像流行的 box-sizing reset 。
Tailwind 包含了一系列有用的开箱即用的基础样式,我们称之为 Preflight,他实际上是 modern-normalize,外加少些额外的样式。
对于大多数项目来说,Preflight 是一个很好的起点,但是如果您想添加您自己的额外的基础样式,以下是一些惯用做法的建议。
如果您只想对 html
或者 body
元素应用某种全局样式,只需将现有类添加到 HTML 中的那些元素,而不是编写新的 CSS :
<!doctype html>
<html lang="en" class="text-gray-900 leading-tight">
<!-- ... -->
<body class="min-h-screen bg-gray-100">
<!-- ... -->
</body>
</html>
如果要将某些基本样式应用于特定元素,最容易的方法是将其简单地添加到 CSS 中。
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
h1 {
@apply text-2xl;
}
h2 {
@apply text-xl;
}
}
通过使用 @layer
指令,Tailwind 将自动将这些样式移到 @tailwind base
的同一位置,以避免出现一些意外问题。
使用 @layer
指令还能告诉 Tailwind 在清除基础样式时考虑这些样式。阅读我们的 关于生产优化的文档 以了解更多信息。
最好使用 @apply 或者 theme() 来定义这些样式,以避免意外偏离您的设计系统。
您可以使用相同的方式为您正在使用的任何自定义字体添加 @font-face
规则。
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
@font-face {
font-family: Proxima Nova;
font-weight: 400;
src: url(/fonts/proxima-nova/400-regular.woff) format("woff");
}
@font-face {
font-family: Proxima Nova;
font-weight: 500;
src: url(/fonts/proxima-nova/500-medium.woff) format("woff");
}
}
您还可以通过 编写插件 并使用 addBase
函数来添加基础样式:
// tailwind.config.js
const plugin = require('tailwindcss/plugin')
module.exports = {
plugins: [
plugin(function({ addBase, config }) {
addBase({
'h1': { fontSize: config('theme.fontSize.2xl') },
'h2': { fontSize: config('theme.fontSize.xl') },
'h3': { fontSize: config('theme.fontSize.lg') },
})
})
]
}
使用 addBase
添加的样式将会与 Tailwind 的其它基础样式一起添加到 base
层中。