码迷,mamicode.com
首页 > 其他好文 > 详细

display: flexbox

时间:2015-08-17 11:49:31      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

伸缩盒模型

用法:

结构:

1 <div class="flex-container">
2 <div class="flex-item">flex item 1</div>
3 <div class="flex-item">flex item 2</div>
4 </div>

样式:

 1 .flex-container {
 2     display: -webkit-flex;
 3     display: flex;
 4     width: 300px;
 5     height: 240px;
 6     background-color: Silver;
 7 }
 8 
 9 .flex-item {
10     background-color: DeepSkyBlue;
11     width: 100px;
12     height: 100px;
13     margin: 5px;
14 }

结果

2个项目在默认情况下的定位:沿着一个水平伸缩行从左至右显示。

技术分享

让我们把前一个示例中的 flex-direction 改为 column。结果为

技术分享

我们设置 justify-contentcenter 让伸缩项目在主轴上居中对齐:

技术分享

flex-start, flex-end, 和 center 一看就懂。space-betweenspace-around 则是分配伸缩项目之间空白空间的不同方法。这张规范中的图示很好的解释了一切:

技术分享

align-items 侧轴对齐

align-items 是一个和 justify-content 相呼应的属性。align-items 调整伸缩项目在侧轴上的定位方式。可能的值有:

  • flex-start (默认)
  • flex-end
  • center
  • baseline
  • stretch

这里我们设置 align-itemscenter 让伸缩项目在侧轴上居中对齐:

&lt;br /&gt;

和之前一样,flex-start, flex-end, 和 center 的意义显而易见。stretch 也很简单:它会将伸缩项目从侧轴起点拉伸到侧轴终点。baseline 则是让伸缩项目与它们的基线对齐。基线根据伸缩项目的内容计算得到。下面这张来自W3C标准的图例很好的解释了这些属性:

技术分享

flex-wrap 伸缩行换行

目前为止,每个伸缩容器都有且只有一个伸缩行。使用 flex-wrap 你可以为伸缩容器创建多个伸缩行。这个属性接受以下值:

  • nowrap (默认)
  • wrap
  • wrap-reverse

如果 flex-wrap 设置为 wrap,在一个伸缩行容不下所有伸缩项目时,伸缩项目会换行到一条新增的伸缩行上。新增的伸缩行根据侧轴的方向添加。

我们使用 flex-wrap 来看个例子:

&lt;br /&gt;

wrap-reverse 和 wrap 一样,只是新的伸缩行会被添加到侧轴的反方向上。

margin 外边距

你应该对 margin: auto;这种用法很熟悉。在伸缩盒中,它也能做同样的事情,但是更加强大。一个 "auto" 的 margin 会合并剩余的空间。它可以用来把伸缩项目挤到其他位置。

这里我们在第一个伸缩项目上声明了 margin-right: auto;,导致了所有的剩余空间被合并到那个元素的右边去了:

技术分享

&lt;br /&gt;

这里我们使用 margin: auto; 来重现经典CSS布局中的圣杯:真·垂直居中:

技术分享

 

display: flexbox

标签:

原文地址:http://www.cnblogs.com/liujianhui/p/4735967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!