Tailwind CSS中设定宽度和高度的方法

在 Tailwind CSS 中,设定元素的宽度(width)和高度(height)有多种方式,涵盖固定值、相对值、响应式调整等。以下是完整的方法分类及示例:

一、固定宽度 / 高度类

4px (0.25rem) 为单位递增,适用于精确控制:

复制代码
<!-- 宽度类 -->
w-0       /* 宽度: 0 */
w-px      /* 宽度: 1px */
w-1       /* 宽度: 0.25rem (4px) */
w-2       /* 宽度: 0.5rem (8px) */
w-3       /* 宽度: 0.75rem (12px) */
w-4       /* 宽度: 1rem (16px) */
w-5       /* 宽度: 1.25rem (20px) */
w-6       /* 宽度: 1.5rem (24px) */
w-8       /* 宽度: 2rem (32px) */
w-10      /* 宽度: 2.5rem (40px) */
w-12      /* 宽度: 3rem (48px) */
w-16      /* 宽度: 4rem (64px) */
w-20      /* 宽度: 5rem (80px) */
w-24      /* 宽度: 6rem (96px) */
w-32      /* 宽度: 8rem (128px) */
w-40      /* 宽度: 10rem (160px) */
w-48      /* 宽度: 12rem (192px) */
w-56      /* 宽度: 14rem (224px) */
w-64      /* 宽度: 16rem (256px) */
w-72      /* 宽度: 18rem (288px) */
w-80      /* 宽度: 20rem (320px) */
w-96      /* 宽度: 24rem (384px) */

<!-- 高度类 -->
h-0       /* 高度: 0 */
h-px      /* 高度: 1px */
h-1       /* 高度: 0.25rem (4px) */
h-2       /* 高度: 0.5rem (8px) */
h-3       /* 高度: 0.75rem (12px) */
h-4       /* 高度: 1rem (16px) */
h-5       /* 高度: 1.25rem (20px) */
h-6       /* 高度: 1.5rem (24px) */
h-8       /* 高度: 2rem (32px) */
h-10      /* 高度: 2.5rem (40px) */
h-12      /* 高度: 3rem (48px) */
h-16      /* 高度: 4rem (64px) */
h-20      /* 高度: 5rem (80px) */
h-24      /* 高度: 6rem (96px) */
h-32      /* 高度: 8rem (128px) */
h-40      /* 高度: 10rem (160px) */
h-48      /* 高度: 12rem (192px) */
h-56      /* 高度: 14rem (224px) */
h-64      /* 高度: 16rem (256px) */
h-72      /* 高度: 18rem (288px) */
h-80      /* 高度: 20rem (320px) */
h-96      /* 高度: 24rem (384px) */

二、相对宽度 / 高度类

基于视口(viewport)、父元素或内容的百分比:

复制代码
<!-- 宽度类 -->
w-auto    /* 宽度由内容决定 */
w-full    /* 100% 父元素宽度 */
w-screen  /* 100% 视口宽度 */
w-min     /* 最小内容宽度 */
w-max     /* 最大内容宽度 */
w-fit     /* 适应内容宽度 */

<!-- 高度类 -->
h-auto    /* 高度由内容决定 */
h-full    /* 100% 父元素高度 */
h-screen  /* 100% 视口高度 */
h-min     /* 最小内容高度 */
h-max     /* 最大内容高度 */
h-fit     /* 适应内容高度 */

三、自定义宽度 / 高度(使用方括号)

支持任意数值或单位:

复制代码
<!-- 自定义宽度 -->
w-[120px]   /* 宽度: 120px */
w-[50%]     /* 宽度: 50% 父元素 */
w-[3.5rem]  /* 宽度: 3.5rem (56px) */
w-[calc(100%-80px)]  /* 父元素宽度减去80px */

<!-- 自定义高度 -->
h-[120px]   /* 高度: 120px */
h-[50%]     /* 高度: 50% 父元素 */
h-[3.5rem]  /* 高度: 3.5rem (56px) */
h-[calc(100vh-80px)]  /* 视口高度减去80px */

四、最小 / 最大宽度 / 高度类

限制元素的最小或最大尺寸:

复制代码
<!-- 最小宽度 -->
min-w-0       /* 最小宽度: 0 */
min-w-full    /* 最小宽度: 100% 父元素 */
min-w-[200px] /* 最小宽度: 200px */

<!-- 最大宽度 -->
max-w-0       /* 最大宽度: 0 */
max-w-none    /* 无最大宽度限制 */
max-w-xs      /* 最大宽度: 20rem (320px) */
max-w-sm      /* 最大宽度: 24rem (384px) */
max-w-md      /* 最大宽度: 28rem (448px) */
max-w-lg      /* 最大宽度: 32rem (512px) */
max-w-xl      /* 最大宽度: 36rem (576px) */
max-w-2xl     /* 最大宽度: 42rem (672px) */
max-w-3xl     /* 最大宽度: 48rem (768px) */
max-w-4xl     /* 最大宽度: 56rem (896px) */
max-w-5xl     /* 最大宽度: 64rem (1024px) */
max-w-6xl     /* 最大宽度: 72rem (1152px) */
max-w-7xl     /* 最大宽度: 80rem (1280px) */
max-w-full    /* 最大宽度: 100% 父元素 */
max-w-prose   /* 最大宽度: 65ch (适合阅读的宽度) */
max-w-[300px] /* 最大宽度: 300px */

<!-- 最小高度 -->
min-h-0       /* 最小高度: 0 */
min-h-full    /* 最小高度: 100% 父元素 */
min-h-screen  /* 最小高度: 100% 视口 */
min-h-[200px] /* 最小高度: 200px */

<!-- 最大高度 -->
max-h-0       /* 最大高度: 0 */
max-h-full    /* 最大高度: 100% 父元素 */
max-h-screen  /* 最大高度: 100% 视口 */
max-h-[300px] /* 最大高度: 300px */
max-h-min     /* 最大高度为内容最小高度 */
max-h-max     /* 最大高度为内容最大高度 */
max-h-fit     /* 最大高度适应内容 */

五、响应式变体

通过前缀(如 md:w-32)在特定屏幕尺寸应用宽度 / 高度类:

复制代码
<div class="w-16 md:w-32 lg:w-48">
  <!-- 在小屏幕宽度为64px,中屏幕为128px,大屏幕为192px -->
</div>

<div class="h-16 md:h-32 lg:h-auto">
  <!-- 在小屏幕高度为64px,中屏幕为128px,大屏幕自适应内容 -->
</div>

六、交互状态变体

结合 hover:, focus:, active: 等前缀实现动态尺寸变化:

复制代码
<div class="w-16 hover:w-20 transition-all">
  <!-- 悬停时宽度从64px变为80px -->
</div>

<button class="h-10 focus:h-12">
  <!-- 聚焦时高度从40px变为48px -->
</button>

七、常见组合示例

复制代码
<!-- 固定尺寸卡片 -->
<div class="w-64 h-40 bg-blue-100">固定宽高</div>

<!-- 响应式布局 -->
<div class="w-full md:w-1/2 lg:w-1/3">
  <!-- 在小屏幕占满宽度,中屏幕占1/2,大屏幕占1/3 -->
</div>

<!-- 自适应高度容器,最大为视口一半 -->
<div class="min-h-[100px] max-h-[50vh] overflow-auto">内容区</div>

<!-- 图片容器,保持宽高比 -->
<div class="w-48 h-32 aspect-video bg-gray-200">
  <!-- 宽高比为16:9的容器 -->
</div>

八、注意事项

  1. 默认配置 :Tailwind 提供的尺寸类基于默认主题配置,可通过 tailwind.config.js 自定义。
  2. 与 Flex/Grid 结合 :使用 w-full/h-full 可让子元素填满父容器的宽 / 高。
  3. 性能提示 :优先使用预定义类(如 w-32)而非自定义值(如 w-[128px]),以利用 CSS 类复用。
  4. 宽高比 :使用 aspect-* 类(如 aspect-video)可轻松设置元素的宽高比。

通过组合这些类,可以灵活控制元素在不同场景下的尺寸表现。

相关推荐
崔庆才丨静觅7 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60617 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了8 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅8 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅8 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅8 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment8 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅9 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊9 小时前
jwt介绍
前端
爱敲代码的小鱼9 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax