feat: 增加 flex 布局的支持

This commit is contained in:
展新 2015-06-09 22:19:35 +08:00
parent a5cb458b46
commit 428dae25ef
5 changed files with 214 additions and 2 deletions

View File

@ -0,0 +1,40 @@
# Flex Align
- order: 5
Flex 子元素垂直对齐
---
````html
<div class="row-flex center top">
<div class="col-4 hight-100">2</div>
<div class="col-4 hight-50">2</div>
<div class="col-4 hight-120">2</div>
<div class="col-4 hight-80">2</div>
</div>
<p>顶部对齐</p>
<div class="row-flex space-around middle">
<div class="col-4 hight-100">2</div>
<div class="col-4 hight-50">2</div>
<div class="col-4 hight-120">2</div>
<div class="col-4 hight-80">2</div>
</div>
<p>居中对齐</p>
<div class="row-flex space-between bottom">
<div class="col-4 hight-100">2</div>
<div class="col-4 hight-50">2</div>
<div class="col-4 hight-120">2</div>
<div class="col-4 hight-80">2</div>
</div>
<p>底部对齐</p>
````

View File

@ -0,0 +1,23 @@
# Flex Order
- order: 6
通过 Flex 布局的 Order 来改变元素的排序
---
````html
<div class="row-flex">
<div class="col-6 col-order-4">1 col-order-4</div>
<div class="col-6 col-order-3">2 col-order-3</div>
<div class="col-6 col-order-2">3 col-order-2</div>
<div class="col-6 col-order-1">4 col-order-1</div>
</div>
````

View File

@ -0,0 +1,57 @@
# Flex Basic
- order: 4
Flex 布局基础
使用 `row-flex` 定义 `flex` 布局,其子元素根据不同的值 `start`,`center`,`end`,`space-between`,`space-around`,分别定义其在父节点里面的排版方式。
---
````html
<div class="row-flex start">
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
</div>
<p>子元素居左排列</p>
<div class="row-flex center">
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
</div>
<p>子元素居中排列</p>
<div class="row-flex end">
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
</div>
<p>子元素居右排列</p>
<div class="row-flex space-between">
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
</div>
<p>子元素等宽排列</p>
<div class="row-flex space-around">
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
<div class="col-4">2</div>
</div>
<p>子元素分散对齐</p>
````

View File

@ -68,13 +68,19 @@
* 栅格系统中的列是指1到24的值来表示其跨越的范围。例如三个等宽d的列可以使用`.col-8`来创建
* 如果一个`row`中的`col`总和超过24那么多余的`col`会作为一个整体另起一行排列
## Flex 布局
我们的栅格化系统支持 Flex 布局,允许子元素在父节点内的水平对齐方式 - 居左、居中、居右、等宽排列、分散排列。子元素与子元素之间,支持顶部对齐、垂直居中对齐、底部对齐的方式。同时,支持使用 order 来定义元素的排列顺序。
<style>
.row {
.row,
.row-flex {
background-image: linear-gradient(90deg, #F5F5F5 4.16666667%, transparent 4.16666667%, transparent 8.33333333%, #F5F5F5 8.33333333%, #F5F5F5 12.5%, transparent 12.5%, transparent 16.66666667%, #F5F5F5 16.66666667%, #F5F5F5 20.83333333%, transparent 20.83333333%, transparent 25%, #F5F5F5 25%, #F5F5F5 29.16666667%, transparent 29.16666667%, transparent 33.33333333%, #F5F5F5 33.33333333%, #F5F5F5 37.5%, transparent 37.5%, transparent 41.66666667%, #F5F5F5 41.66666667%, #F5F5F5 45.83333333%, transparent 45.83333333%, transparent 50%, #F5F5F5 50%, #F5F5F5 54.16666667%, transparent 54.16666667%, transparent 58.33333333%, #F5F5F5 58.33333333%, #F5F5F5 62.5%, transparent 62.5%, transparent 66.66666667%, #F5F5F5 66.66666667%, #F5F5F5 70.83333333%, transparent 70.83333333%, transparent 75%, #F5F5F5 75%, #F5F5F5 79.16666667%, transparent 79.16666667%, transparent 83.33333333%, #F5F5F5 83.33333333%, #F5F5F5 87.5%, transparent 87.5%, transparent 91.66666667%, #F5F5F5 91.66666667%, #F5F5F5 95.83333333%, transparent 95.83333333%);
}
.row div {
.row div,
.row-flex div {
padding: 5px 0;
background: rgba(24, 115, 216, 0.7);
text-align: center;
@ -112,4 +118,16 @@
color: #999;
}
.hight-100 {
height: 100px;
}
.hight-50 {
height: 50px;
}
.hight-120 {
height: 120px;
}
.hight-80 {
height: 80px;
}
</style>

View File

@ -37,5 +37,79 @@
}
}
// x轴原点
.row-flex.start,
.row-flex.start.top,
.row-flex.start.middle,
.row-flex.start.bottom {
justify-content: flex-start;
}
// x轴居中
.row-flex.center,
.row-flex.center.top,
.row-flex.center.middle,
.row-flex.center.bottom {
justify-content: center;
}
// x轴反方向
.row-flex.end,
.row-flex.end.top,
.row-flex.end.middle,
.row-flex.end.bottom {
justify-content: flex-end;
}
// x轴平分
.row-flex.space-between,
.row-flex.space-between.top,
.row-flex.space-between.middle,
.row-flex.space-between.bottom {
justify-content: space-between;
}
// x轴有间隔地平分
.row-flex.space-around,
.row-flex.space-around.top,
.row-flex.space-around.middle,
.row-flex.space-around.bottom {
justify-content: space-around;
}
// 顶部对齐
.row-flex.center.top,
.row-flex.start.top,
.row-flex.end.top,
.row-flex.space-between.top,
.row-flex.space-around.top {
align-items: flex-start;
}
// 居中对齐
.row-flex.center.middle,
.row-flex.start.middle,
.row-flex.end.middle,
.row-flex.space-between.middle,
.row-flex.space-around.middle {
align-items: center;
}
// 底部对齐
.row-flex.center.bottom,
.row-flex.start.bottom,
.row-flex.end.bottom,
.row-flex.space-between.bottom,
.row-flex.space-around.bottom {
align-items: flex-end;
}
.col {
position: relative;
display: block;
float: left;
flex: 0 0 auto;
}
.make-grid-columns();
.make-grid();