布局
使用 24 栏网格快速组织页面内容。
TIP
Row / Col 默认基于 Flex 布局,无需再设置 type="flex"。 默认断点收敛为 xs / sm / md 三档,推荐从窄屏开始逐步增强。
基础布局
通过 row 和 col 的 span 属性组织内容分区。
vue
<template>
<el-row>
<el-col :span="24">
<div class="grid-content ep-bg-purple-dark" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :span="12">
<div class="grid-content ep-bg-purple-light" />
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :span="8">
<div class="grid-content ep-bg-purple-light" />
</el-col>
<el-col :span="8">
<div class="grid-content ep-bg-purple" />
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :span="6">
<div class="grid-content ep-bg-purple-light" />
</el-col>
<el-col :span="6">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :span="6">
<div class="grid-content ep-bg-purple-light" />
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :span="4">
<div class="grid-content ep-bg-purple-light" />
</el-col>
<el-col :span="4">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :span="4">
<div class="grid-content ep-bg-purple-light" />
</el-col>
<el-col :span="4">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :span="4">
<div class="grid-content ep-bg-purple-light" />
</el-col>
</el-row>
</template>
<style>
.el-row {
margin-bottom: 20px;
}
.el-row:last-child {
margin-bottom: 0;
}
.el-col {
border-radius: 4px;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
</style>
隐藏来源
列间距
使用 gutter 控制列之间的留白。
vue
<template>
<el-row :gutter="20">
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
</template>
<style>
.el-row {
margin-bottom: 20px;
}
.el-row:last-child {
margin-bottom: 0;
}
.el-col {
border-radius: 4px;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
</style>
隐藏来源
混合布局
组合不同的列宽,构建更灵活的内容分组。
vue
<template>
<el-row :gutter="20">
<el-col :span="16"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="8"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="8"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="4"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="4"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="16"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="4"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
</template>
<style>
.el-row {
margin-bottom: 20px;
}
.el-row:last-child {
margin-bottom: 0;
}
.el-col {
border-radius: 4px;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
</style>
隐藏来源
列偏移
使用 offset 控制列的起始位置。
vue
<template>
<el-row :gutter="20">
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6" :offset="6">
<div class="grid-content ep-bg-purple" />
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6" :offset="6">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :span="6" :offset="6">
<div class="grid-content ep-bg-purple" />
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12" :offset="6">
<div class="grid-content ep-bg-purple" />
</el-col>
</el-row>
</template>
<style>
.el-row {
margin-bottom: 20px;
}
.el-row:last-child {
margin-bottom: 0;
}
.el-col {
border-radius: 4px;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
</style>
隐藏来源
对齐方式
通过 justify 和 align 调整行内容的分布方式。
vue
<template>
<el-row class="row-bg">
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple-light" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
<el-row class="row-bg" justify="center">
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple-light" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
<el-row class="row-bg" justify="end">
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple-light" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
<el-row class="row-bg" justify="space-between">
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple-light" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
<el-row class="row-bg" justify="space-around">
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple-light" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
<el-row class="row-bg" justify="space-evenly">
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple-light" /></el-col>
<el-col :span="6"><div class="grid-content ep-bg-purple" /></el-col>
</el-row>
</template>
<style>
.el-row {
margin-bottom: 20px;
}
.el-row:last-child {
margin-bottom: 0;
}
.el-col {
border-radius: 4px;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
</style>
隐藏来源
响应式布局
默认断点如下:
xs:< 480pxsm:>= 480pxmd:>= 768px
vue
<template>
<el-row :gutter="16">
<el-col :xs="12" :sm="8" :md="6">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :xs="12" :sm="16" :md="12">
<div class="grid-content ep-bg-purple-light" />
</el-col>
<el-col :xs="12" :sm="16" :md="12">
<div class="grid-content ep-bg-purple" />
</el-col>
<el-col :xs="12" :sm="8" :md="6">
<div class="grid-content ep-bg-purple-light" />
</el-col>
</el-row>
</template>
<style>
.el-col {
border-radius: 0.25rem;
}
.grid-content {
border-radius: 0.25rem;
min-height: 2.75rem;
}
</style>
隐藏来源
隐藏工具类
如需按断点隐藏元素,请引入:
ts
import 'element-plus-mobile/theme-chalk/display.css'可用类名如下:
hidden-xs-only:仅在xs隐藏hidden-sm-only:仅在sm隐藏hidden-sm-and-down:在sm及更窄屏幕隐藏hidden-sm-and-up:在sm及更宽屏幕隐藏hidden-md-only:仅在md隐藏hidden-md-and-down:在md及更窄屏幕隐藏hidden-md-and-up:在md及更宽屏幕隐藏
Row API
Row 属性
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| gutter | 栅格间隔 | number | 0 |
| justify | 水平方向对齐方式 | enum | start |
| align | 垂直方向对齐方式 | enum | — |
| tag | 自定义元素标签 | string | div |
Row 插槽
| 插槽名 | 说明 |
|---|---|
| default | 自定义默认内容 |
Col API
Col 属性
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| span | 栅格占据的列数 | number | 24 |
| offset | 左侧偏移的列数 | number | 0 |
| push | 向右移动的列数 | number | 0 |
| pull | 向左移动的列数 | number | 0 |
| xs | < 480px 响应式列配置 | number / object | — |
| sm | >= 480px 响应式列配置 | number / object | — |
| md | >= 768px 响应式列配置 | number / object | — |
| tag | 自定义元素标签 | string | div |
Col 插槽
| 插槽名 | 说明 |
|---|---|
| default | 自定义默认内容 |