flex的相关属性有多个版本,为达到同一个功能,就需要使用多个不同版本的属性。
人工书写会比较费事,gulp中有一个插件可以实现自动匹配,叫“autoprefixer”
将某个标签加上这个属性后,这个标签就是一个弹性框了,内部的标签可以设置弹性属性。
<section class="ui-flex">
//......
</section>
水平排列与纵向排列,弹性布局默认是水平排列的, 使用到了属性“flex-direction”。
<section class="ui-flex ui-flex-row">
//水平排列
</section>
<section class="ui-flex ui-flex-column">
//纵向排列
</section>
“align-content:center”, 多行垂直居中存在兼容性问题,Android中UC与微信等浏览器不支持换行,WebView支持。
单行垂直居中“align-items:center;”。
<section class="ui-flex ui-flex-column-center">
//....
</section>
单行基线对齐“align-items:baseline;”,当不同大小的字体在同一行上,可以简单的让字体对齐。
单行侧轴对齐“align-items:flex-end;”。
如果当前是水平排列,那么侧轴就是纵轴。
如果当前是纵向排列,那么侧轴就是横轴。
“justify-content: center”, 向行中间位置对齐,这个对齐会受排列方向的影响。
第一个效果是水平排列,这里的行是横轴,效果就是水平居中;
第二张效果是纵向排列,这里的行是纵轴,效果就是垂直居中。
<section class="ui-flex ui-flex-row-center">
//水平居中
</section>
<section class="ui-flex ui-flex-column ui-flex-row-center">
//垂直居中
</section>
“justify-content: space-between”,向行两边位置对齐,同样也会受到排列方向的影响。
空间属性,也就是“flex”, 总共分了12种空间。以“ui-col”开头,后面跟数字。
<section class="ui-flex">
<div class="ui-col-1">1</div>
<div class="ui-col-2">2</div>
....
</section>
分配了24种百分比宽度(width)、偏移量(margin-left)、右边距(right)和左边距(left)。
前缀分别是“ui-width-”、“ui-offset-”、“ui-pull-”和“ui-push-”,同样后面跟的是数字。
<section class="ui-flex">
<div class="ui-width-1">1</div>
<div class="ui-width-2 ui-offset-1">2</div>
.....
</section>
在有些浏览器中,行内元素使用弹性布局会有问题,可先设置为块元素。
以“ui-width-db”为前缀的就是默认设置为块级元素了,其它都一样,后面也是跟数字。
流布局就是将元素布局用“float”实现,与上面百分比宽度一样,也是用“ui-width-”作为前缀,偏移、边距也一样。
不同的是容器使用了“ui-fluid”类。