Tailwind CSS 的响应式设计通过断点前缀实现,让开发者能够轻松创建适应不同屏幕尺寸的布局。
默认断点:
- sm:640px(小屏幕)
- md:768px(中等屏幕)
- lg:1024px(大屏幕)
- xl:1280px(超大屏幕)
- 2xl:1536px(超超大屏幕)
断点使用方式:
- 在类名前添加断点前缀
- 示例:
html
<div class="w-full md:w-1/2 lg:w-1/3"> 响应式宽度 </div> - 默认样式(无前缀)适用于所有屏幕尺寸
- 断点样式从该断点开始生效,向上应用
常用响应式类:
- 布局:
- flex md:flex-row lg:grid lg:grid-cols-3
- 间距:
- p-4 md:p-8 lg:p-12
- 字体:
- text-sm md:text-base lg:text-lg
- 显示:
- block md:hidden lg:block
- 宽高:
- w-full md:w-3/4 lg:w-1/2
- h-auto md:h-screen lg:h-96
自定义断点:
- 在 tailwind.config.js 中配置
- 示例:
javascript
theme: { screens: { 'xs': '475px', 'sm': '640px', 'md': '768px', 'lg': '1024px', 'xl': '1280px', '2xl': '1536px', } } - 可以使用范围断点:
javascript
screens: { '2xl': { max: '1535px' }, // 或 'print': { raw: 'print' }, }
移动优先设计:
- 默认样式应用于所有屏幕
- 使用断点前缀覆盖更大屏幕的样式
- 示例:
html
<div class="text-sm md:text-base lg:text-lg"> 移动优先设计 </div>
堆叠顺序:
- 断点类按从小到大的顺序应用
- 后面的断点会覆盖前面的断点
- 示例:
html
<div class="w-full md:w-3/4 lg:w-1/2"> 宽度从 100% 到 75% 再到 50% </div>
常见响应式模式:
- 导航栏:
html
<nav class="flex flex-col md:flex-row"> <div class="w-full md:w-auto">Logo</div> <ul class="flex flex-col md:flex-row"> <li>Home</li> <li>About</li> </ul> </nav> - 卡片布局:
html
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"> <div class="card">Card 1</div> <div class="card">Card 2</div> <div class="card">Card 3</div> </div> - 隐藏/显示:
html
<div class="hidden md:block"> 只在中等及以上屏幕显示 </div> <div class="block md:hidden"> 只在移动屏幕显示 </div>
最佳实践:
- 采用移动优先的设计方法
- 合理使用断点,避免过度细分
- 保持响应式类的一致性
- 测试不同屏幕尺寸的显示效果
- 使用容器查询(Container Queries)进行更精细的控制