Space 间距

介绍

设置元素之间的间距,从 v3.6.0 版本开始支持。

引入

通过以下方式来全局注册组件,更多注册方式请参考组件注册

  1. import { createApp } from 'vue';
  2. import { Space } from 'vant';
  3. const app = createApp();
  4. app.use(Space);

代码演示

基础用法

Space 组件会在各个子组件之间设置一定的间距,默认间距为 8px

  1. <van-space>
  2. <van-button type="primary">按钮</van-button>
  3. <van-button type="primary">按钮</van-button>
  4. <van-button type="primary">按钮</van-button>
  5. <van-button type="primary">按钮</van-button>
  6. </van-space>

垂直排列

direction 属性设置为 vertical,可以设置垂直方向排列的间距。

  1. <van-space direction="vertical" fill>
  2. <van-button type="primary" block>按钮</van-button>
  3. <van-button type="primary" block>按钮</van-button>
  4. <van-button type="primary" block>按钮</van-button>
  5. </van-space>

自定义间距

通过调整 size 的值来控制间距的大小。传入 number 类型时,会默认使用 px 单位;也可以传入 string 类型,比如 2rem5vw 等带有单位的值。

  1. <!-- 20px -->
  2. <van-space :size="20">
  3. <van-button type="primary">按钮</van-button>
  4. <van-button type="primary">按钮</van-button>
  5. <van-button type="primary">按钮</van-button>
  6. </van-space>
  7. <!-- 2rem -->
  8. <van-space size="2rem">
  9. <van-button type="primary">按钮</van-button>
  10. <van-button type="primary">按钮</van-button>
  11. <van-button type="primary">按钮</van-button>
  12. </van-space>

对齐方式

通过调整 align 的值来设置子元素的对齐方式, 可选值为 start, center ,end ,baseline,在水平模式下的默认值为 center

  1. <van-radio-group
  2. v-model="align"
  3. direction="horizontal"
  4. style="margin-bottom: 16px"
  5. >
  6. <van-radio name="start">start</van-radio>
  7. <van-radio name="center">center</van-radio>
  8. <van-radio name="end">end</van-radio>
  9. <van-radio name="baseline">baseline</van-radio>
  10. </van-radio-group>
  11. <van-space :align="align" style="padding: 16px; background: #f3f2f5">
  12. <van-button type="primary">{{ align }}</van-button>
  13. <div style="padding: 40px 20px; background: #fff">Block</div>
  14. </van-space>
  1. import { ref } from 'vue';
  2. export default {
  3. setup() {
  4. const align = ref('center');
  5. return { align };
  6. },
  7. };

自动换行

在水平模式下, 通过 wrap 属性来控制子元素是否自动换行。

  1. <van-space wrap>
  2. <van-button type="primary" block>按钮</van-button>
  3. <van-button type="primary" block>按钮</van-button>
  4. <van-button type="primary" block>按钮</van-button>
  5. <van-button type="primary" block>按钮</van-button>
  6. <van-button type="primary" block>按钮</van-button>
  7. <van-button type="primary" block>按钮</van-button>
  8. <van-button type="primary" block>按钮</van-button>
  9. <van-button type="primary" block>按钮</van-button>
  10. </van-space>

API

Props

参数说明类型默认值
direction间距方向vertical | horizontalhorizontal
size间距大小,如 20px 2em,默认单位为 px,支持数组形式来分别设置横向和纵向间距number | string | number[] | string[]8px
align设置子元素的对齐方式start | end | center | baseline-
wrap是否自动换行,仅适用于水平方向排列booleanfalse
fill是否让 Space 变为一个块级元素,填充整个父元素booleanfalse

Slots

名称说明
default间距组件内容

类型定义

组件导出以下类型定义:

  1. import type { SpaceProps, SpaceSize, SpaceAlign } from 'vant';

Space 间距 - 图1