基础样式
一套针对 Tailwind 项目的意见性基础样式。
Preflight 建立在 modern-normalize 之上,它是一套针对 Tailwind 项目的基础样式,旨在消除跨浏览器差异,让您更容易在设计系统约束下工作。
当您在 CSS 中包含 @tailwind base
时,Tailwind 会自动注入这些样式。
@tailwind base; /* Preflight will be injected here */
@tailwind components;
@tailwind utilities;
虽然 Preflight 中的大多数样式都旨在不被注意——它们只是让事物表现得更符合预期——但有些样式更具意见性,当您第一次遇到它们时可能会感到意外。
要查看 Preflight 应用的所有样式的完整参考,请查看样式表.
Preflight 会移除所有元素(如标题、引用、段落等)的默认边距。
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
margin: 0;
}
这使得您更难意外地依赖用户代理样式表中应用的边距值,而这些值不是您间距比例的一部分。
默认情况下,所有标题元素都没有样式,并且具有与普通文本相同的字体大小和字体粗细。
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: inherit;
font-weight: inherit;
}
这样做的原因有两个
您可以通过添加您自己的基本样式,始终将默认标题样式添加到您的项目中。
如果您想选择性地将合理的默认标题样式引入页面中的文章样式部分,我们建议您使用@tailwindcss/typography 插件。
默认情况下,有序列表和无序列表没有样式,没有项目符号/数字,也没有边距或填充。
ol,
ul {
list-style: none;
margin: 0;
padding: 0;
}
如果您想为列表设置样式,可以使用list-style-type和list-style-position实用程序。
<ul class="list-disc list-inside">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
您可以通过添加您自己的基本样式,始终将默认列表样式添加到您的项目中。
如果您想选择性地将默认列表样式引入页面中的文章样式部分,我们建议您使用@tailwindcss/typography 插件。
没有样式的列表不会被 VoiceOver 宣布为列表。如果您的内容确实是列表,但您想保持无样式,在元素中添加“list”角色
<ul role="list">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
图像和其他替换元素(如svg
、video
、canvas
等)默认情况下为display: block
。
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
display: block;
vertical-align: middle;
}
这有助于避免使用浏览器默认的display: inline
时经常遇到的意外对齐问题。
如果您需要将其中一个元素设置为inline
而不是block
,只需使用inline
实用程序即可。
<img class="inline" src="..." alt="...">
图像和视频被限制在父级宽度内,以保持其固有的纵横比。
img,
video {
max-width: 100%;
height: auto;
}
这可以防止它们溢出容器,并使它们默认情况下具有响应性。如果您需要覆盖此行为,请使用max-w-none
实用程序。
<img class="max-w-none" src="..." alt="...">
为了便于通过添加border
类来添加边框,Tailwind 使用以下规则覆盖了所有元素的默认边框样式。
*,
::before,
::after {
border-width: 0;
border-style: solid;
border-color: theme('borderColor.DEFAULT', currentColor);
}
由于border
类仅设置border-width
属性,因此此重置确保添加该类始终使用您配置的默认边框颜色添加一个 1px 的实线边框。
这在集成某些第三方库(例如Google 地图)时可能会导致一些意外结果。
当您遇到这种情况时,可以通过使用您自己的自定义 CSS 覆盖 Preflight 样式来解决它们。
.google-map * {
border-style: none;
}
如果你想在 Preflight 之上添加自己的基础样式,只需使用 `@layer base` 指令将它们添加到你的 CSS 中。
@tailwind base;
@layer base {
h1 {
@apply text-2xl;
}
h2 {
@apply text-xl;
}
h3 {
@apply text-lg;
}
a {
@apply text-blue-600 underline;
}
}
@tailwind components;
@tailwind utilities;
在 添加基础样式文档 中了解更多信息。
如果你想完全禁用 Preflight - 也许是因为你正在将 Tailwind 集成到现有项目中,或者因为你想要提供自己的基础样式 - 你只需要在 `tailwind.config.js` 文件的 `corePlugins` 部分将 `preflight` 设置为 `false`。
module.exports = {
corePlugins: {
preflight: false,
}
}