Grid 栅格布局
基本用法
查看示例
vue
<template>
<yy-grid :cols="2" :gap="16">
<yy-button>A</yy-button>
<yy-button>B</yy-button>
</yy-grid>
</template>
列间距
查看示例
vue
<template>
<yy-grid :cols="4" :gap="[24, 8]">
<yy-button>A</yy-button>
<yy-button>B</yy-button>
<yy-button>C</yy-button>
<yy-button>D</yy-button>
</yy-grid>
</template>
响应式的列
列根据窗口的响应式
json
// 具体的标识代表的窗口尺寸
{
"xs": 0, // mobile
"s": 640, // tablet
"m": 1024, // laptop s
"l": 1280, // laptop
"xl": 1536, // laptop l
"xxl": 1920 // normal desktop display
}
查看示例
vue
<template>
<yy-grid cols="1 l:3 xl:4 xxl:5" :gap="8">
<yy-gi>
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
<yy-gi>
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
<yy-gi>
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
<yy-gi>
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
<yy-gi>
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
</yy-grid>
</template>
列根据元素尺寸的响应式
查看示例
vue
<template>
<yy-grid
cols="1 500:3"
:gap="8"
style="resize: horizontal; overflow: auto; max-width: 100%"
>
<yy-gi style="display: flex">
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
<yy-gi style="display: flex">
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
<yy-gi style="display: flex">
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
<yy-gi style="display: flex">
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
<yy-gi style="display: flex">
<yy-button style="width: 100%; padding: 0">
我们是响应式的
</yy-button>
</yy-gi>
</yy-grid>
</template>
项跨列/行和偏移
查看示例
vue
<template>
<yy-grid :cols="4" :gap="8">
<yy-grid-item :span="2">
<yy-button style="width: 100%; height: 100%; padding: 0">
2列
</yy-button>
</yy-grid-item>
<yy-grid-item :span="1" :offset="1">
<yy-button style="width: 100%; height: 100%; padding: 0">
偏移1列
</yy-button>
</yy-grid-item>
<yy-grid-item :span="1" :row-span="3">
<yy-button style="width: 100%; height: 100%; padding: 0">
跨2行
</yy-button>
</yy-grid-item>
<yy-grid-item :span="1" :offset="1">
<yy-button style="width: 100%; height: 100%; padding: 0">
填充物
</yy-button>
</yy-grid-item>
<yy-grid-item :span="1" :offset="1">
<yy-button style="width: 100%; height: 100%; padding: 0">
填充物
</yy-button>
</yy-grid-item>
</yy-grid>
</template>
响应式的栅格项
栅格项根据窗口的响应式
查看示例
vue
<template>
<yy-grid :cols="4" :gap="8">
<yy-grid-item span="1 l:2 xl:3 xxl:4">
<yy-button style="width: 100%; height: 100%; padding: 0">
我是响应式的项
</yy-button>
</yy-grid-item>
</yy-grid>
</template>
栅格项根据元素尺寸的响应式
查看示例
vue
<template>
<yy-grid :cols="4" :gap="8">
<yy-grid-item span="1 150:2">
<yy-button style="width: 100%; height: 100%; padding: 0">
我是响应式的项
</yy-button>
</yy-grid-item>
</yy-grid>
</template>
Props
Grid
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
cols | 列数 | number | string | 12 |
gap | 间距 | number | [number, number] | 0 |
GridItem
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
span | 占据的列数 | number | string | 1 |
offset | 距离左侧的间隔数 | number | 0 |
rowSpan | 占据的行数 | number | 1 |