宽度实用程序
使用 w-4、w-64 等设置固定宽度,使用 w-1/2 等分数宽度,并使用 w-full 和 w-screen 拉伸至完整宽度。
宽度实用程序 是 CoddyKit 上的免费 Tailwind CSS Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Tailwind CSS Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Tailwind CSS Academy 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
Controlling Width in Tailwind
Setting element widths is one of the most common layout tasks in CSS. Tailwind provides the w-* family of utilities that cover fixed sizes, fractional sizes, percentage-based sizes, and viewport-relative sizes. Instead of memorizing pixel values, you work with Tailwind's consistent spacing scale and semantic keywords that map to well-designed CSS values.
<!-- Width examples side by side -->
<div class="space-y-2">
<div class="w-32 bg-blue-100 p-2">w-32 (128px)</div>
<div class="w-1/2 bg-blue-200 p-2">w-1/2 (50%)</div>
<div class="w-full bg-blue-300 p-2">w-full (100%)</div>
</div>Fixed Width With the Spacing Scale
Fixed widths follow Tailwind's spacing scale where each unit equals 4px (0.25rem). So w-4 is 16px, w-16 is 64px, and w-64 is 256px. The scale goes up to w-96 (384px). These values are perfect for icons, avatars, sidebars, and any element with a known, fixed size that should not change with viewport width.
<!-- Fixed-size avatar and sidebar examples -->
<div class="flex gap-4 items-center">
<!-- Avatar: 12 x 12 = 48px -->
<div class="w-12 h-12 rounded-full bg-indigo-400 flex items-center justify-center text-white font-bold">
JD
</div>
<!-- Sidebar: 64 = 256px -->
<div class="w-64 bg-gray-100 p-4 rounded">
Sidebar panel (256px)
</div>
</div>Fractional Widths
Fractional width utilities express width as a fraction of the parent container. Tailwind supports halves (w-1/2), thirds (w-1/3, w-2/3), quarters (w-1/4 through w-3/4), fifths, and sixths. These compile to percentage values — for example, w-1/3 becomes width: 33.333333% — making them ideal for side-by-side column layouts.
<!-- Two-thirds / one-third split layout -->
<div class="flex gap-4">
<div class="w-2/3 bg-emerald-100 p-4 rounded">Main (2/3 wide)</div>
<div class="w-1/3 bg-emerald-200 p-4 rounded">Sidebar (1/3 wide)</div>
</div>w-full and w-screen
w-full sets width to 100% of the parent container, while w-screen sets width to 100vw (the viewport width). The difference matters when the parent is not the full viewport: w-full fills the parent, but w-screen always fills the entire browser window and may cause horizontal overflow if there is a scrollbar. Use w-screen for full-viewport overlays and w-full for everything else.
<!-- w-full fills the parent, regardless of parent width -->
<div class="w-1/2 bg-gray-100 p-4">
<button class="w-full bg-blue-500 text-white py-2 rounded">
Full-width button inside half-width parent
</button>
</div>
<!-- w-screen fills the entire viewport -->
<div class="w-screen bg-indigo-800 text-white py-3 text-center">
Full-viewport-width banner
</div>w-auto for Natural Width
w-auto lets the element take its natural or content-driven width. This is the browser default for most block elements, but you may need to apply it explicitly to override a wider width set at a different breakpoint. It is commonly used when switching from w-full on mobile back to auto sizing on desktop, for example in a button that should only be as wide as its text.
<!-- Full-width on mobile, natural width on desktop -->
<button class="w-full md:w-auto bg-purple-500 text-white px-6 py-3 rounded">
Get Started
</button>w-fit, w-min, and w-max
Three modern width keywords help elements size themselves based on content: w-fit makes an element as wide as its content (like fit-content), w-min sets width to the minimum content size (collapses to the longest unbreakable word), and w-max expands to the maximum content width without wrapping. These are useful for tags, pills, tooltips, and inline labels.
<!-- Tags that size to their text content -->
<div class="flex gap-2">
<span class="w-fit bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">
Design
</span>
<span class="w-fit bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm">
Development
</span>
<span class="w-fit bg-purple-100 text-purple-800 px-3 py-1 rounded-full text-sm">
Marketing
</span>
</div>Arbitrary Width Values
When the built-in scale does not cover your exact need, use the arbitrary value syntax: w-[347px] or w-[calc(100%-2rem)]. This compiles to exactly that CSS value in the JIT engine. While convenient, arbitrary values bypass the design system, so use them sparingly — first check if a fractional or fixed scale value achieves the same visual result.
<!-- One-off width for a specific UI element -->
<div class="w-[280px] bg-amber-100 p-4 rounded">
Tooltip or popover of exact width
</div>
<!-- Calc inside brackets -->
<div class="w-[calc(100%-3rem)] bg-amber-200 p-4 rounded">
Full width minus 3rem padding
</div>Responsive Width Changes
Combining responsive prefixes with width utilities is one of the most powerful patterns in Tailwind. A common pattern is w-full sm:w-1/2 lg:w-1/3: full width on mobile, half on small screens, and one-third on large screens. This creates a responsive card layout from a single set of utility classes without any media query CSS.
<!-- Responsive-width cards in a flex wrap container -->
<div class="flex flex-wrap gap-4">
<div class="w-full sm:w-1/2 lg:w-1/3 bg-rose-100 p-6 rounded">
Card A
</div>
<div class="w-full sm:w-1/2 lg:w-1/3 bg-rose-100 p-6 rounded">
Card B
</div>
<div class="w-full sm:w-1/2 lg:w-1/3 bg-rose-100 p-6 rounded">
Card C
</div>
</div>max-w-* for Readable Content
While w-* sets an exact width, max-w-* sets an upper limit. The most important max-width utility is max-w-prose, which limits text to around 65 characters per line — the sweet spot for readability identified by typography researchers. max-w-sm through max-w-7xl give you semantic container widths matching common design breakpoints.
<!-- Readable article column with max-width -->
<article class="max-w-prose mx-auto px-4">
<h1 class="text-2xl font-bold mb-4">Article Title</h1>
<p class="text-gray-700 leading-relaxed">
This paragraph stays at a comfortable reading width regardless
of the viewport size. max-w-prose limits it to about 65 characters
per line for optimal readability.
</p>
</article>Width in Flex Containers
Inside a flex container, w-* classes interact with flex-grow and flex-shrink. A child with w-full will try to be 100% wide but the flex container can shrink it. To prevent shrinking, add shrink-0 alongside the width class. This pattern is commonly used for icons and avatars that should never squish, while the sibling text content takes the remaining space.
<!-- Icon stays fixed width, text takes remaining space -->
<div class="flex items-center gap-3 p-4 border rounded">
<!-- Icon: fixed 40px, never shrinks -->
<div class="w-10 h-10 shrink-0 bg-blue-500 rounded-full flex items-center justify-center">
<span class="text-white font-bold">AI</span>
</div>
<!-- Text: takes all remaining width -->
<div class="min-w-0">
<p class="font-semibold truncate">Long title that might overflow</p>
<p class="text-sm text-gray-500">Subtitle text</p>
</div>
</div>Centering Fixed-Width Elements
A classic layout pattern is a fixed-width container centered on the page. The combination of a max-width utility and mx-auto (auto horizontal margins) achieves this cleanly. Wrap your page content in max-w-5xl mx-auto px-4 to create a centered, readable column with comfortable side padding on all screen sizes.
<!-- Classic centered page layout -->
<div class="max-w-5xl mx-auto px-4 py-8">
<header class="mb-6">
<h1 class="text-3xl font-bold">Page Title</h1>
</header>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<div class="bg-gray-100 p-4 rounded">Column 1</div>
<div class="bg-gray-100 p-4 rounded">Column 2</div>
<div class="bg-gray-100 p-4 rounded">Column 3</div>
</div>
</div>Quick Check
Test your understanding of Tailwind CSS Mastery concepts from this lesson.
Lesson Recap
In this lesson you learned: w-* fixed utilities follow the 4px spacing scale up to w-96, fractional utilities like w-1/2 set percentage widths relative to the parent, and w-full, w-screen, w-fit, w-min, and w-max cover semantic sizing needs. Next up we explore height utilities that complement width controls.
常见问题解答
「宽度实用程序」课时是免费的吗?
是的 — 「宽度实用程序」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Tailwind CSS Academy 课程的其余内容,请升级到 CoddyKit PRO。 Tailwind CSS Academy 课程共包含 4 节课。
「宽度实用程序」这节课中我会学到什么?
使用 w-4、w-64 等设置固定宽度,使用 w-1/2 等分数宽度,并使用 w-full 和 w-screen 拉伸至完整宽度。 你通过在浏览器中直接运行的动手代码来练习 Tailwind CSS Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Tailwind CSS Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Tailwind CSS Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「宽度实用程序」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Tailwind CSS Academy 课中编写并运行代码吗?
能。每节 Tailwind CSS Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。