边框宽度与颜色
使用 border-* 宽度实用程序添加边框,使用 border-{color}-{shade} 设置其颜色,并控制各个边。
边框宽度与颜色 是 CoddyKit 上的免费 Tailwind CSS Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Tailwind CSS Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Tailwind CSS Academy 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
Adding Borders With Tailwind
Borders visually separate elements, define form fields, and add structure to card layouts. Tailwind provides the border family of utilities to control width, color, style, and individual sides — all without writing custom CSS. The base border class applies a 1px solid border in the current border color, giving you a clean starting point for any bordered component.
<!-- Simple bordered card -->
<div class="border border-gray-200 rounded-lg p-4 max-w-sm">
<h3 class="font-semibold">Card Title</h3>
<p class="text-gray-600 mt-2">Card content with a simple border.</p>
</div>Border Width Utilities
Tailwind's border width utilities control thickness: border (1px), border-2 (2px), border-4 (4px), and border-8 (8px). The plain border class without a number sets the width to 1px. You can also use border-0 to explicitly remove a border — useful when inheriting a border from a base style that you want to suppress.
<!-- Different border widths -->
<div class="space-y-3">
<div class="border p-3 rounded">border (1px)</div>
<div class="border-2 p-3 rounded">border-2 (2px)</div>
<div class="border-4 p-3 rounded">border-4 (4px)</div>
<div class="border-8 p-3 rounded">border-8 (8px)</div>
</div>Individual Side Borders
You can apply borders to individual sides using directional variants: border-t (top), border-r (right), border-b (bottom), and border-l (left). These are commonly used for bottom-bordered navigation links, left accent lines on blockquotes, and top dividers between list items. Combine them freely — border-t border-b adds horizontal borders only.
<!-- Single-side borders for different effects -->
<div class="space-y-4">
<!-- Bottom border only — navigation tab style -->
<div class="border-b-2 border-blue-500 pb-2 font-semibold">Active Tab</div>
<!-- Left border — blockquote accent -->
<blockquote class="border-l-4 border-indigo-500 pl-4 text-gray-600 italic">
A meaningful quote with a left accent border.
</blockquote>
<!-- Top and bottom borders — horizontal rule effect -->
<div class="border-t border-b border-gray-200 py-3 text-center">Divider</div>
</div>Border Color Utilities
Border colors follow Tailwind's color palette with the border-{color}-{shade} pattern, such as border-blue-500 or border-gray-200. If no border color is specified, Tailwind uses the default border color, which is typically a light gray. Setting an explicit color allows your borders to convey semantic meaning — red for errors, green for success, blue for focus, and neutral gray for structure.
<!-- Semantic border colors -->
<div class="space-y-3">
<div class="border-2 border-blue-500 rounded p-3">Info (blue border)</div>
<div class="border-2 border-green-500 rounded p-3">Success (green border)</div>
<div class="border-2 border-yellow-500 rounded p-3">Warning (yellow border)</div>
<div class="border-2 border-red-500 rounded p-3">Error (red border)</div>
</div>Default vs Custom Border Color
Tailwind sets a global default border color in its base styles, so plain border already has a color. You can override this default globally in your config's theme.borderColor.DEFAULT. At the component level, simply add any border-* color class to override. The pattern border border-gray-200 is extremely common — a clean 1px light gray border for subtle structure.
<!-- The most common border pattern: 1px gray -->
<div class="grid grid-cols-2 gap-4">
<div class="border border-gray-200 rounded-lg p-4">
<span class="font-medium">Default gray border</span>
</div>
<div class="border border-gray-300 rounded-lg p-4">
<span class="font-medium">Slightly darker gray</span>
</div>
</div>Border Color With Opacity
Use the slash opacity modifier to make borders semi-transparent: border-blue-500/50 gives you the blue border at 50% opacity. This is useful for subtle layering effects where a solid border would be too harsh but a lighter shade would shift the hue. Semi-transparent borders are common on glassmorphism UI cards, frosted nav bars, and translucent overlay components.
<!-- Glass card with semi-transparent border -->
<div class="bg-white/10 backdrop-blur border border-white/30 rounded-2xl p-6 max-w-sm" style="background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05)); border: 1px solid rgba(255,255,255,0.3);">
<h3 class="text-white font-bold">Glass Card</h3>
<p class="text-white/80 mt-2">Semi-transparent border on a frosted glass card.</p>
</div>Border Style Utilities
Beyond solid borders, Tailwind provides border-dashed, border-dotted, border-double, and border-none to control the visual style of the border line. Dashed borders are often used for upload drop zones and placeholder sections. Dotted borders appear in breadcrumb separators and legacy UI patterns. border-none removes a border entirely, overriding inherited styles.
<!-- Border style examples -->
<div class="space-y-3">
<div class="border-2 border-solid border-gray-400 p-3 rounded">Solid</div>
<div class="border-2 border-dashed border-blue-400 p-3 rounded">
Dashed — great for drag-and-drop zones
</div>
<div class="border-2 border-dotted border-purple-400 p-3 rounded">Dotted</div>
<div class="border-4 border-double border-green-400 p-3 rounded">Double</div>
</div>X and Y Axis Border Shortcuts
For applying borders to both horizontal sides (top and bottom) or both vertical sides (left and right) simultaneously, use border-x and border-y. border-x sets left and right borders and border-y sets top and bottom. These are more concise than writing two separate directional classes and clearly communicate the intent in your HTML.
<!-- border-x and border-y shortcuts -->
<div class="space-y-4">
<!-- Left and right borders only -->
<div class="border-x-2 border-indigo-500 px-4 py-2">
border-x: left + right borders
</div>
<!-- Top and bottom borders only -->
<div class="border-y border-gray-300 py-3">
border-y: top + bottom borders
</div>
</div>Responsive and State Borders
Border utilities work with responsive prefixes and state variants. A common pattern is border-b-2 border-transparent hover:border-blue-500 for animated underline navigation links — the border is always there (preventing layout shift) but transparent until hovered. This technique creates a smooth, non-jumping underline effect that appears on hover without any JavaScript.
<!-- Animated underline navigation links -->
<nav class="flex gap-6 p-4">
<a href="#" class="border-b-2 border-transparent hover:border-blue-500 pb-1 text-gray-700 hover:text-blue-600 transition-colors">
Home
</a>
<a href="#" class="border-b-2 border-blue-500 pb-1 text-blue-600 font-medium">
Active Link
</a>
<a href="#" class="border-b-2 border-transparent hover:border-blue-500 pb-1 text-gray-700 hover:text-blue-600 transition-colors">
About
</a>
</nav>Divide Utilities for Children
Instead of adding border-b to every child except the last, use divide-y on the parent. Tailwind's divide-y-* utilities automatically add a top border to every child except the first, creating cleanly separated list items. divide-x-* does the same horizontally. Combine with divide-gray-200 to set the divider color.
<!-- List with automatic dividers using divide utilities -->
<ul class="divide-y divide-gray-200 border border-gray-200 rounded-lg overflow-hidden">
<li class="flex items-center gap-3 p-4 hover:bg-gray-50">
<div class="w-8 h-8 rounded-full bg-blue-400"></div>
<span>Alice Johnson</span>
</li>
<li class="flex items-center gap-3 p-4 hover:bg-gray-50">
<div class="w-8 h-8 rounded-full bg-green-400"></div>
<span>Bob Smith</span>
</li>
<li class="flex items-center gap-3 p-4 hover:bg-gray-50">
<div class="w-8 h-8 rounded-full bg-purple-400"></div>
<span>Carol Davis</span>
</li>
</ul>Borders in Form Fields
Form inputs use borders as the primary visual affordance that they are interactive. The standard pattern is border border-gray-300 focus:border-blue-500 with a ring for additional focus visibility: focus:ring-2 focus:ring-blue-500/20. For error states, switch to border-red-500 conditionally. This combination creates accessible, visually clear form fields that meet WCAG focus indicator requirements.
<!-- Form fields with semantic borders -->
<div class="space-y-4 max-w-sm">
<!-- Default state -->
<input
type="text"
placeholder="Default input"
class="w-full border border-gray-300 rounded-lg px-4 py-2 focus:outline-none focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20"
/>
<!-- Error state -->
<input
type="text"
placeholder="Error input"
class="w-full border border-red-500 rounded-lg px-4 py-2 bg-red-50 focus:outline-none"
/>
<p class="text-red-600 text-sm">This field is required</p>
</div>Quick Check
Test your understanding of Tailwind CSS Mastery concepts from this lesson.
Lesson Recap
In this lesson you learned: border-{width} utilities from border (1px) to border-8 control thickness, directional utilities like border-t, border-b, border-x apply borders to specific sides, and divide-y on the parent creates automatic child dividers. Next up we explore border radius utilities for rounded corners.
常见问题解答
「边框宽度与颜色」课时是免费的吗?
是的 — 「边框宽度与颜色」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Tailwind CSS Academy 课程的其余内容,请升级到 CoddyKit PRO。 Tailwind CSS Academy 课程共包含 4 节课。
「边框宽度与颜色」这节课中我会学到什么?
使用 border-* 宽度实用程序添加边框,使用 border-{color}-{shade} 设置其颜色,并控制各个边。 你通过在浏览器中直接运行的动手代码来练习 Tailwind CSS Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Tailwind CSS Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Tailwind CSS Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「边框宽度与颜色」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Tailwind CSS Academy 课中编写并运行代码吗?
能。每节 Tailwind CSS Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。