Grid 栅格

    我们采用了24栅格系统,将区域进行24等分,这样可以轻松应对大部分布局问题。使用栅格系统进行网页布局,可以使页面排版美观、舒适。

    我们定义了两个概念,行和列col,具体使用方法如下:

    • 使用row在水平方向创建一行
    • 将一组col插入在row
    • 在每个col中,键入自己的内容
    • 通过设置colspan参数,指定跨越的范围,其范围是1到24
    • 每个row中的col总和应该为24

    注意:非 template/render 模式下,需使用 i-col

    基础用法

    水平排列的布局。

    col必须放在row里面。

    Grid 栅格 - 图3

    区块间隔

    通过给 row 添加 gutter 属性,可以给下属的 col 添加间距,推荐使用 (16+8n)px 作为栅格间隔。

    1. <template>
    2. <Row :gutter="16">
    3. <Col span="6">
    4. <div>col-6</div>
    5. </Col>
    6. <Col span="6">
    7. <div>col-6</div>
    8. </Col>
    9. <Col span="6">
    10. <div>col-6</div>
    11. </Col>
    12. <Col span="6">
    13. <div>col-6</div>
    14. </Col>
    15. </Row>
    16. </template>
    17. <script>
    18. export default {
    19. }
    20. </script>

    栅格顺序(Flex) )

    通过 Flex 布局的order来改变栅格的顺序。

    1. <template>
    2. <Row type="flex">
    3. <Col span="6" order="4">1 | order-4</Col>
    4. <Col span="6" order="3">2 | order-3</Col>
    5. <Col span="6" order="2">3 | order-2</Col>
    6. <Col span="6" order="1">4 | order-1</Col>
    7. </Row>
    8. </template>
    9. <script>
    10. export default {
    11. </script>

    栅格排序

    通过设置pushpull来改变栅格的顺序。

    Grid 栅格 - 图6

    左右偏移

    通过设置offset属性,将列进行左右偏移,偏移栅格数为offset的值。

    1. <template>
    2. <Row>
    3. <Col span="8">col-8</Col>
    4. </Row>
    5. <br>
    6. <Row>
    7. <Col span="6" offset="8">col-6 | offset-8</Col>
    8. <Col span="6" offset="4">col-6 | offset-4</Col>
    9. </Row>
    10. <br>
    11. <Row>
    12. <Col span="12" offset="8">col-12 | offset-8</Col>
    13. </Row>
    14. </template>
    15. <script>
    16. export default {
    17. }
    18. </script>

    Flex布局

    通过给row设置参数justify为不同的值,来定义子元素的排布方式。在flex模式下有效。

    1. <template>
    2. <p>子元素向左排列</p>
    3. <Row type="flex" justify="start" class="code-row-bg">
    4. <Col span="4">col-4</Col>
    5. <Col span="4">col-4</Col>
    6. <Col span="4">col-4</Col>
    7. <Col span="4">col-4</Col>
    8. </Row>
    9. <p>子元素向右排列</p>
    10. <Row type="flex" justify="end" class="code-row-bg">
    11. <Col span="4">col-4</Col>
    12. <Col span="4">col-4</Col>
    13. <Col span="4">col-4</Col>
    14. <Col span="4">col-4</Col>
    15. </Row>
    16. <p>子元素居中排列</p>
    17. <Row type="flex" justify="center" class="code-row-bg">
    18. <Col span="4">col-4</Col>
    19. <Col span="4">col-4</Col>
    20. <Col span="4">col-4</Col>
    21. <Col span="4">col-4</Col>
    22. <p>子元素等宽排列</p>
    23. <Row type="flex" justify="space-between" class="code-row-bg">
    24. <Col span="4">col-4</Col>
    25. <Col span="4">col-4</Col>
    26. <Col span="4">col-4</Col>
    27. <Col span="4">col-4</Col>
    28. </Row>
    29. <p>子元素分散排列</p>
    30. <Row type="flex" justify="space-around" class="code-row-bg">
    31. <Col span="4">col-4</Col>
    32. <Col span="4">col-4</Col>
    33. <Col span="4">col-4</Col>
    34. <Col span="4">col-4</Col>
    35. </Row>
    36. </template>
    37. <script>
    38. }
    39. </script>

    Flex对齐

    通过给row设置参数align为不同的值,来定义子元素在垂直方向上的排布方式。在flex模式下有效。

    Grid 栅格 - 图9

    响应式布局

    参照 Bootstrap 的 ,预设六个响应尺寸:xs sm md lg xl xxl,详见 API。

    调整浏览器尺寸来查看效果。

    1. <template>
    2. <Row>
    3. <Col :xs="2" :sm="4" :md="6" :lg="8">Col</Col>
    4. <Col :xs="20" :sm="16" :md="12" :lg="8">Col</Col>
    5. <Col :xs="2" :sm="4" :md="6" :lg="8">Col</Col>
    6. </Row>
    7. </template>
    8. <script>
    9. export default {
    10. }
    11. </script>

    其它属性的响应式

    span pull push offset order 属性可以通过内嵌到 xs sm md lg 属性中来使用。

    其中 :xs="6" 相当于 :xs="{ span: 6 }"

    1. <template>
    2. <Row>
    3. <Col :xs="{ span: 5, offset: 1 }" :lg="{ span: 6, offset: 2 }">Col</Col>
    4. <Col :xs="{ span: 11, offset: 1 }" :lg="{ span: 6, offset: 2 }">Col</Col>
    5. <Col :xs="{ span: 5, offset: 1 }" :lg="{ span: 6, offset: 2 }">Col</Col>
    6. </Row>
    7. </template>
    8. <script>
    9. export default {
    10. </script>

    Col props

    属性说明类型默认值
    span栅格的占位格数,可选值为0~24的整数,为 0 时,相当于display:noneNumber | String-
    order栅格的顺序,在flex布局模式下有效Number | String-
    offset栅格左侧的间隔格数,间隔内不可以有栅格Number | String-
    push栅格向右移动格数Number | String-
    pull栅格向左移动格数Number | String-
    class-name自定义的class名称String-
    xs<576px 响应式栅格,可为栅格数或一个包含其他属性的对象Number | Object-
    sm≥576px 响应式栅格,可为栅格数或一个包含其他属性的对象Number | Object-
    md≥768px 响应式栅格,可为栅格数或一个包含其他属性的对象Number | Object-
    lg≥992px 响应式栅格,可为栅格数或一个包含其他属性的对象Number | Object-
    xl≥1200px 响应式栅格,可为栅格数或一个包含其他属性的对象Number | Object-
    xxl 响应式栅格,可为栅格数或一个包含其他属性的对象Number | Object-