Layout 布局

# Layout 布局

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

# 基础布局

使用单一分栏创建基础的栅格布局。

通过 row 和 col 组件,并通过 col 组件的 span 属性我们就可以自由地组合布局。

<aui-row>
  <aui-col :span="24" background="red"><div class="grid-content bg-purple-dark"></div></aui-col>
</aui-row>
<aui-row>
  <aui-col :span="12"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="12"><div class="grid-content bg-purple-light"></div></aui-col>
</aui-row>
<aui-row>
  <aui-col :span="8"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="8"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="8"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple-light"></div></aui-col>
</aui-row>
<aui-row>
  <aui-col :span="4"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="4"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="4"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="4"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="4"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="4"><div class="grid-content bg-purple-light"></div></aui-col>
</aui-row>

<style scopescope>
  .aui-row {
    margin-bottom: 20px;
    &:last-child {
      margin-bottom: 0;
    }
  }
  .aui-col {
    border-radius: 4px;
  }
  .bg-purple-dark {
    background: #99a9bf;
  }
  .bg-purple {
    background: #d3dce6;
  }
  .bg-purple-light {
    background: #e5e9f2;
  }
  .grid-content {
    border-radius: 4px;
    min-height: 36px;
  }
  .row-bg {
    padding: 10px 0;
    background-color: #f9fafc;
  }
</style>
显示代码 复制代码

# 分栏间隔

分栏之间存在间隔。

Row 组件 提供 gutter 属性来指定每一栏之间的间隔,默认间隔为 0。

<aui-row :gutter="20">
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>

<style>
  .aui-row {
    margin-bottom: 20px;
    &:last-child {
      margin-bottom: 0;
    }
  }
  .aui-col {
    border-radius: 4px;
  }
  .bg-purple-dark {
    background: #99a9bf;
  }
  .bg-purple {
    background: #d3dce6;
  }
  .bg-purple-light {
    background: #e5e9f2;
  }
  .grid-content {
    border-radius: 4px;
    min-height: 36px;
  }
  .row-bg {
    padding: 10px 0;
    background-color: #f9fafc;
  }
</style>
显示代码 复制代码

# 混合布局

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

<aui-row :gutter="20">
  <aui-col :span="16"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="8"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row :gutter="20">
  <aui-col :span="8"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="8"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="4"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="4"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row :gutter="20">
  <aui-col :span="4"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="16"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="4"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>

<style>
  .aui-row {
    margin-bottom: 20px;
    &:last-child {
      margin-bottom: 0;
    }
  }
  .aui-col {
    border-radius: 4px;
  }
  .bg-purple-dark {
    background: #99a9bf;
  }
  .bg-purple {
    background: #d3dce6;
  }
  .bg-purple-light {
    background: #e5e9f2;
  }
  .grid-content {
    border-radius: 4px;
    min-height: 36px;
  }
  .row-bg {
    padding: 10px 0;
    background-color: #f9fafc;
  }
</style>
显示代码 复制代码

# 分栏偏移

支持偏移指定的栏数。

通过制定 col 组件的 offset 属性可以指定分栏偏移的栏数。

<aui-row :gutter="20">
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row :gutter="20">
  <aui-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row :gutter="20">
  <aui-col :span="12" :offset="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>

<style>
  .aui-row {
    margin-bottom: 20px;
    &:last-child {
      margin-bottom: 0;
    }
  }
  .aui-col {
    border-radius: 4px;
  }
  .bg-purple-dark {
    background: #99a9bf;
  }
  .bg-purple {
    background: #d3dce6;
  }
  .bg-purple-light {
    background: #e5e9f2;
  }
  .grid-content {
    border-radius: 4px;
    min-height: 36px;
  }
  .row-bg {
    padding: 10px 0;
    background-color: #f9fafc;
  }
</style>
显示代码 复制代码

# 对齐方式

通过 flex 布局来对分栏进行灵活的对齐。

type 属性赋值为 'flex',可以启用 flex 布局,并可通过 justify 属性来指定 start, center, end, space-between, space-around 其中的值来定义子元素的排版方式。

<aui-row type="flex" class="row-bg">
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row type="flex" class="row-bg" justify="center">
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row type="flex" class="row-bg" justify="end">
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row type="flex" class="row-bg" justify="space-between">
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>
<aui-row type="flex" class="row-bg" justify="space-around">
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple-light"></div></aui-col>
  <aui-col :span="6"><div class="grid-content bg-purple"></div></aui-col>
</aui-row>

<style>
  .aui-row {
    margin-bottom: 20px;
    &:last-child {
      margin-bottom: 0;
    }
  }
  .aui-col {
    border-radius: 4px;
  }
  .bg-purple-dark {
    background: #99a9bf;
  }
  .bg-purple {
    background: #d3dce6;
  }
  .bg-purple-light {
    background: #e5e9f2;
  }
  .grid-content {
    border-radius: 4px;
    min-height: 36px;
  }
  .row-bg {
    padding: 10px 0;
    background-color: #f9fafc;
  }
</style>
显示代码 复制代码

# Row Attributes

参数 说明 类型 可选值 默认值
gutter 栅格间隔 number 0
type 布局模式,可选 flex,现代浏览器下有效 string
justify flex 布局下的水平排列方式 string start / end / center / space-around / space-between start
align flex 布局下的垂直排列方式 string top / middle / bottom top
orient 排布方向 string horizontal / vertical horizontal
wrap flex 的 flex-wrap 属性 string
direction flex 的 flex-direction 属性 string

# Row Slot

name 说明
default col的内容插槽

# Col Attributes

参数 说明 类型 可选值 默认值
span 栅格占据的列数 number
offset 栅格左侧的间隔格数 number 0
push 栅格向右移动格数 number 0
pull 栅格向左移动格数 number 0
sm ≥768px 响应式栅格数或者栅格属性对象 number/object (例如: {span: 4, offset: 4})
order flex的order属性 number / string
background col 列的背景颜色 string

# Col Slot

name 说明
default 内容插槽
Last Updated: 2022/6/28 上午10:11:15