基础样式
为 Tailwind 项目提供的一组有主见的基础样式。
基于 modern-normalize 构建,预检是一组为 Tailwind 项目设计的基础样式,旨在消除跨浏览器的不一致性,并让你更容易在设计系统的约束内工作。
当你在项目中导入 tailwindcss
时,预检会自动注入到 base
层中:
@layer theme, base, components, utilities;@import "tailwindcss/theme.css" layer(theme);@import "tailwindcss/preflight.css" layer(base);@import "tailwindcss/utilities.css" layer(utilities);
虽然预检中的大多数样式都是不引人注意的——它们只是让事物的表现更符合你的预期——但有些样式更有主见,当你第一次遇到它们时可能会感到惊讶。
要查看预检应用的所有样式的完整参考,请查看样式表。
预检移除了所有元素的默认外边距,包括标题、引用块、段落等:
*,::after,::before,::backdrop,::file-selector-button { margin: 0; padding: 0;}
这使得你更难意外地依赖用户代理样式表中应用的、不属于你的间距比例的外边距值。
为了让你只需添加 border
类就能轻松添加边框,Tailwind 使用以下规则覆盖了所有元素的默认边框样式:
*,::after,::before,::backdrop,::file-selector-button { box-sizing: border-box; border: 0 solid;}
由于 border
类只设置 border-width
属性,这个重置确保了添加该类时总是会添加一个使用 currentColor
的实线 1px
边框。
在集成某些第三方库时,这可能会导致一些意外的结果,例如 Google maps。
当你遇到这种情况时,你可以通过使用自定义 CSS 覆盖预检样式来解决:
@layer base { .google-map * { border-style: none; }}
默认情况下,所有标题元素都完全没有样式,并且具有与普通文本相同的字体大小和粗细:
h1,h2,h3,h4,h5,h6 { font-size: inherit; font-weight: inherit;}
这样做有两个原因:
你可以通过添加自己的基础样式来为你的项目添加默认的标题样式。
默认情况下,有序和无序列表都没有样式,没有项目符号或数字:
ol,ul,menu { list-style: none;}
如果你想为列表添加样式,可以使用 list-style-type 和 list-style-position 工具类:
<ul class="list-inside list-disc"> <li>一</li> <li>二</li> <li>三</li></ul>
你可以通过添加自己的基础样式来为你的项目添加默认的列表样式。
无样式的列表不会被 VoiceOver 宣布为列表。如果你的内容确实是一个列表,但你想保持它无样式,请添加一个"list"角色到元素上:
<ul role="list"> <li>一</li> <li>二</li> <li>三</li></ul>
默认情况下,图片和其他替换元素(如 svg
、video
、canvas
等)都是 display: block
:
img,svg,video,canvas,audio,iframe,embed,object { display: block; vertical-align: middle;}
这有助于避免使用浏览器默认的 display: inline
时经常遇到的意外对齐问题。
如果你需要将这些元素中的任何一个从 block
改为 inline
,只需使用 inline
工具类:
<img class="inline" src="..." alt="..." />
图片和视频以保持其固有宽高比的方式被限制在父元素的宽度内:
img,video { max-width: 100%; height: auto;}
这可以防止它们溢出其容器,并使它们默认具有响应式特性。如果你需要覆盖这个行为,请使用 max-w-none
工具类:
<img class="max-w-none" src="..." alt="..." />
如果你想在预检之上添加自己的基础样式,请使用 @layer base
将它们添加到 CSS 中的 base
CSS 层:
@layer base { h1 { font-size: var(--text-2xl); } h2 { font-size: var(--text-xl); } h3 { font-size: var(--text-lg); } a { color: var(--color-blue-600); text-decoration-line: underline; }}
Learn more in the adding base styles documentation.
如果你想完全禁用预检——可能是因为你正在将 Tailwind 集成到现有项目中,或者你更喜欢定义自己的基础样式——你可以通过只导入你需要的 Tailwind 部分来实现。
默认情况下,@import "tailwindcss";
注入的内容如下:
@layer theme, base, components, utilities;@import "tailwindcss/theme.css" layer(theme);@import "tailwindcss/preflight.css" layer(base);@import "tailwindcss/utilities.css" layer(utilities);
要禁用预检,只需在保留其他内容的同时省略其导入:
@layer theme, base, components, utilities;@import "tailwindcss/theme.css" layer(theme);@import "tailwindcss/preflight.css" layer(base);@import "tailwindcss/utilities.css" layer(utilities);