Layout 布局

定义

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

Span

设置栅格的占位格数。

Layout 布局 - 图1

  1. <template>
  2. <se-row class="custom-grid-example">
  3. <se-col>1</se-col>
  4. <se-col>2</se-col>
  5. <se-col>3</se-col>
  6. </se-row>
  7. </template>
  8. <style lang="scss">
  9. .custom-grid-example {
  10. &.se-row {
  11. margin: 10px auto;
  12. background: #eee;
  13. }
  14. .se-col {
  15. padding: 16px 0;
  16. color: #fff;
  17. text-align: center;
  18. background: #01d567;
  19. }
  20. .se-col:nth-child(odd) {
  21. background: #01c05d;
  22. }
  23. }
  24. </style>

Gutter

设置栅格之间的间隔。值的设置参考 grid-gap

Layout 布局 - 图2

  1. <se-row class="custom-grid-example" gutter="20px">
  2. <se-col :span="3">span 3</se-col>
  3. <se-col :span="3">span 3</se-col>
  4. <se-col :span="3">span 3</se-col>
  5. </se-row>
  6. <style lang="scss">
  7. .custom-grid-example {
  8. &.se-row {
  9. margin: 10px auto;
  10. background: #eee;
  11. }
  12. .se-col {
  13. padding: 16px 0;
  14. color: #fff;
  15. text-align: center;
  16. background: #01d567;
  17. }
  18. .se-col:nth-child(odd) {
  19. background: #01c05d;
  20. }
  21. }
  22. </style>

Start

设置栅格的起点位置(格数)。

Layout 布局 - 图3

  1. <se-row class="custom-grid-example">
  2. <se-col :start="0">start 0</se-col>
  3. <se-col :start="4">start 4</se-col>
  4. <se-col :start="8">start 8</se-col>
  5. </se-row>
  6. <style lang="scss">
  7. .custom-grid-example {
  8. &.se-row {
  9. margin: 10px auto;
  10. background: #eee;
  11. }
  12. .se-col {
  13. padding: 16px 0;
  14. color: #fff;
  15. text-align: center;
  16. background: #01d567;
  17. }
  18. .se-col:nth-child(odd) {
  19. background: #01c05d;
  20. }
  21. }
  22. </style>

Justify

设置水平方向的布局行为。

含义与 Flexbox 中的 justify-content 不同。具体表现形式参考 Props 表格。

Layout 布局 - 图4

  1. <se-row class="custom-grid-example custom-grid-row" justify="end">
  2. <se-col>1</se-col>
  3. <se-col>2</se-col>
  4. <se-col>3</se-col>
  5. </se-row>
  6. <style lang="scss">
  7. .custom-grid-example {
  8. &.se-row {
  9. margin: 10px auto;
  10. background: #eee;
  11. }
  12. .se-col {
  13. padding: 16px 0;
  14. color: #fff;
  15. text-align: center;
  16. background: #01d567;
  17. }
  18. .se-col:nth-child(odd) {
  19. background: #01c05d;
  20. }
  21. }
  22. .custom-grid-row {
  23. grid-template-columns: repeat(12, 30px);
  24. }
  25. </style>

Align

设置垂直方向的布局行为。

Layout 布局 - 图5

  1. <se-row class="custom-grid-example" align="center" style="height:200px;">
  2. <se-col :span="3">
  3. <div style="height:100px;">span 3</div>
  4. </se-col>
  5. <se-col :span="3">
  6. <div style="height:80px;">span 3</div>
  7. </se-col>
  8. <se-col :span="3">
  9. <div style="height:120px;">span 3</div>
  10. </se-col>
  11. <se-col :span="3">
  12. <div style="height:150px;">span 3</div>
  13. </se-col>
  14. </se-row>
  15. <style lang="scss">
  16. .custom-grid-example {
  17. &.se-row {
  18. margin: 10px auto;
  19. background: #eee;
  20. }
  21. .se-col {
  22. padding: 16px 0;
  23. color: #fff;
  24. text-align: center;
  25. background: #01d567;
  26. }
  27. .se-col:nth-child(odd) {
  28. background: #01c05d;
  29. }
  30. }
  31. </style>

Order

动态改变盒子的展示顺序(ascending)。

使用 order 会导致 DOM 结构和实际展示不符,导致潜在的无障碍(accessibility)问题。

Layout 布局 - 图6

  1. <se-row class="custom-grid-example">
  2. <se-col :order="1">1</se-col>
  3. <se-col>2</se-col>
  4. <se-col :order="-1">3</se-col>
  5. </se-row>
  6. <style lang="scss">
  7. .custom-grid-example {
  8. &.se-row {
  9. margin: 10px auto;
  10. background: #eee;
  11. }
  12. .se-col {
  13. padding: 16px 0;
  14. color: #fff;
  15. text-align: center;
  16. background: #01d567;
  17. }
  18. .se-col:nth-child(odd) {
  19. background: #01c05d;
  20. }
  21. }
  22. </style>

Responsive

设置响应式布局。

响应式字段的对应的屏幕尺寸,如下所示:

字段屏幕尺寸
xs< 600px
sm600px ~ 960px
md960px ~ 1200px
lg1200px ~ 1920px
xl1920px ~ 2560px
xxl> 2560px

通过传入 类 propsobject ,可以实现分别响应式控制 se-rowse-col 的表现形式。

object 的配置信息,参考 Props 表格。

Layout 布局 - 图7

  1. <se-row
  2. class="custom-grid-example"
  3. gutter="5px"
  4. :sm='{ gutter: "2px" }'
  5. :lg='{ gutter: "10px " }'
  6. :xxl='{ gutter: "18px" }'
  7. >
  8. <se-col
  9. :xs="{ span: 12 }"
  10. :sm="{ span: 6 }"
  11. :md="{ span: 3 }"
  12. :lg="{ span: 3 }"
  13. :xl="{ span: 3 }"
  14. :xxl="{ span: 2 }"
  15. >
  16. 1
  17. </se-col>
  18. <se-col
  19. :xs="{ span: 12 }"
  20. :sm="{ span: 6 }"
  21. :md="{ span: 3 }"
  22. :lg="{ span: 3 }"
  23. :xl="{ span: 3 }"
  24. :xxl="{ span: 2 }"
  25. >
  26. 2
  27. </se-col>
  28. <se-col
  29. :xs="{ span: 12 }"
  30. :sm="{ span: 6 }"
  31. :md="{ span: 3 }"
  32. :lg="{ span: 3 }"
  33. :xl="{ span: 3 }"
  34. :xxl="{ span: 2 }"
  35. >
  36. 3
  37. </se-col>
  38. </se-row>
  39. <style lang="scss">
  40. .custom-grid-example {
  41. &.se-row {
  42. margin: 10px auto;
  43. background: #eee;
  44. }
  45. .se-col {
  46. padding: 16px 0;
  47. color: #fff;
  48. text-align: center;
  49. background: #01d567;
  50. }
  51. .se-col:nth-child(odd) {
  52. background: #01c05d;
  53. }
  54. }
  55. </style>

Props

Row

属性类型默认值必选说明
gutterstring-列间距。可取 CSS 中有效的长度,比如 1px 1em 6%
justifystringflex-start控制子元素在水平方向的分布方式。取值参考 justify-content
alignstringstretch控制子元素在垂直方向的对齐方式。取值参考 align-items
xs{ gutter?: string; justify?: string; align?: string }-响应式 row。响应式调整 gutterjustify 以及 align
sm{ gutter?: string; justify?: string; align?: string }-同上
md{ gutter?: string; justify?: string; align?: string }-同上
lg{ gutter?: string; justify?: string; align?: string }-同上
xl{ gutter?: string; justify?: string; align?: string }-同上
xxl{ gutter?: string; justify?: string; align?: string }-同上

Col

属性类型默认值必填说明
spannumber1指定该列所占栅格数。取值范围 0-12。
startnumber-指定该列从几个栅格开始。取值范围 0-12。
ordernumber-调整该列的在水平方向的顺序。
xsnumber / { span?: number; start?: number; order?: number }-响应式 col。为 number 类型时表示 span 值,为 object 类型时可以分别指定其他属性的值。
smnumber / { span?: number; start?: number; order?: number }-同上
mdnumber / { span?: number; start?: number; order?: number }-同上
lgnumber / { span?: number; start?: number; order?: number }-同上
xlnumber / { span?: number; start?: number; order?: number }-同上
xxlnumber / { span?: number; start?: number; order?: number }-同上