Skip to content

布局与排列

本篇介绍最常用的布局类与弹性盒子控制类。

Display

控制元素的显示方式。常用的包含 blockinline-blockflexgrid

类名效果说明
block将元素显示为块级元素
inline-block将元素显示为行内块级元素
html
<div class="block bg-blue-100 p-2 mb-2">块级元素</div>
<div class="inline-block bg-blue-200 p-2">行内块元素 1</div>
<div class="inline-block bg-blue-300 p-2">行内块元素 2</div>
块级元素
行内块元素 1
行内块元素 2

Flexbox

控制弹性盒子的排列、对齐与换行。

类名效果说明
flex启用弹性盒子布局
justify-between主轴方向两端对齐
items-center交叉轴方向居中
gap-4设置子元素之间的间隔
html
<div class="flex flex-row justify-between items-center gap-4 bg-gray-100 p-4">
  <div class="bg-red-200 p-4">子项目 1</div>
  <div class="bg-red-300 p-4">子项目 2</div>
  <div class="bg-red-400 p-4 w-full">占据剩余宽度的子项目</div>
</div>
子项目 1
子项目 2
占据剩余宽度的子项目

Grid

控制网格布局。通过 grid-cols-N 控制列数。

类名效果说明
grid启用网格布局
grid-cols-3设置网格为等宽的三列
col-span-2让项目跨越两列宽度
html
<div class="grid grid-cols-3 gap-2 bg-gray-100 p-4">
  <div class="bg-green-200 p-4">1</div>
  <div class="bg-green-300 p-4">2</div>
  <div class="bg-green-400 p-4">3</div>
  <div class="bg-green-500 p-4 col-span-2">4 (跨度2)</div>
  <div class="bg-green-600 p-4">5</div>
</div>
1
2
3
4 (跨度2)
5

Position

控制元素的定位类型。需要搭配 toprightbottomleft 属性一同使用。还可以使用 z-index 控制堆叠层级。

类名效果说明
relative开启相对定位
absolute开启绝对定位
z-10提升元素的层叠顺序
top-4距离容器顶部间距
html
<div class="relative h-32 bg-gray-200">
  <div class="absolute top-4 left-4 bg-yellow-300 p-2 z-10">位于上方靠左</div>
  <div class="absolute bottom-4 right-4 bg-yellow-400 p-2">位于下方靠右</div>
</div>
位于上方靠左
位于下方靠右

宽高比与图片填充

控制多媒体内容的比例以及内容的拉伸与裁剪方式。

类名效果说明
aspect-video设定为16:9的常用视频比例
aspect-square设定为一比一的正方形比例
object-cover保持比例并裁剪图片以填满容器
object-contain保持比例并完整显示图片
html
<div class="flex gap-4">
    <div>
        <img class="aspect-square w-32 object-cover bg-gray-300" src="/assets/samples/EDNLuDbtvttdzwo.jpg" alt="方图裁剪示例" />
        <p class="mt-2 text-xs text-slate-600 ">object-cover 会裁剪边缘,优先铺满容器。</p>
    </div>
    <div>
        <img class="aspect-video w-48 object-contain bg-gray-300" src="/assets/samples/nHLgfpbtvttdzvF.jpg" alt="宽图完整示例" />
        <p class="mt-2 text-xs text-slate-800 ">object-contain 会完整显示图片,可能保留留白。</p>
    </div>
</div>

方图裁剪示例

object-cover 会裁剪边缘,优先铺满容器。

宽图完整示例

object-contain 会完整显示图片,可能保留留白。

溢出处理

负责控制内容超出容器边界时的隐藏逻辑与滚动条表现。

类名效果说明
overflow-hidden裁剪超出边界的内容且不出现滚动条
overflow-y-auto垂直方向内容超出容器时自动展示滚动条
html
<div class="h-20 w-48 bg-gray-100 overflow-y-auto p-2">
  <p>第一行数据文本</p>
  <p>第二行数据文本</p>
  <p>第三行数据文本</p>
  <p>第四行导致滚动条显示</p>
</div>

第一行数据文本

第二行数据文本

第三行数据文本

第四行导致滚动条显示