Layout 布局

通过基础的 24 分栏,迅速简便地创建布局。

WARNING

当使用旧的 el-row 和 el-col 组件来布局时:

组件默认使用 Flex 布局,不需要手动设置 type="flex"

请注意父容器避免使用 inline 相关样式,会导致组件宽度不能撑满。

Grid 网格布局

TIP

用它就完事了,没事别用 el-row,el-col, 除非要兼容老浏览器, 不会还有人想着兼容 ie 吧?

如果有希望你赶紧离职脱离苦海找到下一家不需要兼容 ie 的公司。😄

网格布局通过给父容器指定列的配置来产生布局效果。该组件使用grid 网格布局

一个简单的示例来了解 grid 布局如下:

.container {
  // 使用grid布局
  display: grid;
  // 配置列每个列宽信息以空格隔开
  // 下面表示2列等宽(宽度为容器的1/2也就是50%)
  grid-template-columns: 1fr 1fr;
  // 下面列表示3列等宽(宽度为容器的1/3也就是33.333333%)
  grid-template-columns: repeat(3, 1fr);
  // 下面几种都表示2列,第一列200px, 第二列占满
  grid-template-columns: 200px 1fr;
}

基于 display: grid 的布局

快速两栏布局

Grid 响应式

该响应式布局基于容器自身

基础布局

使用列创建基础网格布局。

分栏间隔

支持列间距。

混合布局

通过基础的 1/24 分栏任意扩展组合形成较为复杂的混合布局。

列偏移

您可以指定列偏移量。

对齐方式

默认使用 flex 布局来对分栏进行灵活的对齐。

基于断点的隐藏类

Element Ultra 额外提供了一系列类名,用于在某些条件下隐藏元素。 这些类名可以添加在任何 DOM 元素或自定义组件上。 如果需要,请自行引入以下文件:

import 'element-ultra/theme-chalk/display.css'

Grid 属性


type ResponsiveCols = {
  cols: number
  xs?: number
  s?: number
  m?: number
  l?: number
  xl?: number
  xxl?: number
}

type GridProps = {
  /**
   * 默认1
   * 是字符串时代表grid-columns-template属性
   * 是数字时表示具体几列(每列等宽)
   * 是数组时和字符串类似, 字符串以空格分割开即数组('1fr 1fr' 等价于 ['1fr', '1fr'])
   * 是数组时表示响应式布局 请查看上方 ResponsiveCols 类型
   */
  readonly cols?: string | number | string[] | ResponsiveCols
  /** 元素之间的间隔, 写法: <X,Y>或<Gap>  */
  readonly gap?: string
  /** 以何种标签渲染容器, 只支持原生元素, 后期有可能添加组件 */
  readonly tag?: string
  /** 和cols类似, 不过没有响应式(因为几乎大部分设备都是默认高度的) */
  readonly rows?: string | any[]
}

Grid 事件

type Emits = {
  (e: 'resize', rect: DOMRectReadOnly): void
}

Row 属性

属性说明类型可选值默认值
gutter栅格间隔number0
justifyflex 布局下的水平排列方式stringstart/end/center/space-around/space-betweenstart
alignflex 布局下的垂直排列方式stringtop/middle/bottomtop
tag自定义元素标签string*div

Row 插槽

插槽名说明子标签
自定义默认内容Col

Col 属性

属性说明类型可选值默认值
span栅格占据的列数number24
offset栅格左侧的间隔格数number0
push栅格向右移动格数number0
pull栅格向左移动格数number0
xs<768px 响应式栅格数或者栅格属性对象number/object (例如: {span: 4, offset: 4})
sm≥768px 响应式栅格数或者栅格属性对象number/object (例如 {span: 4, offset: 4})
md≥992px 响应式栅格数或者栅格属性对象number/object (例如 {span: 4, offset: 4})
lg≥1200px 响应式栅格数或者栅格属性对象number/object (例如 {span: 4, offset: 4})
xl≥1920px 响应式栅格数或者栅格属性对象number/object (例如: {span: 4, offset: 4})
tag自定义元素标签string*div

Col 插槽

插槽名说明
自定义默认内容