display: flexbox

伸缩盒模型

用法:

结构:

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布局中的圣杯:真·垂直居中:

时间: 2024-08-30 09:45:33

display: flexbox的相关文章

Designing CSS Layouts With Flexbox Is As Easy As Pie

This article is an updated excerpt of the chapter "Restyle, Recode, Reimagine With CSS3″ from our Smashing Book #3, written by Lea Verou and David Storey. - Ed. Flexible box layout (or flexbox) is a new box model optimized for UI layout. As one of th

CSS3弹性盒模型flexbox完整版教程

文章目录 基础知识 属性介绍 display: flex | inline-flex; (适用于父类容器元素上) 请注意: flex-direction (适用于父类容器的元素上) flex-wrap (适用于父类容器上) flex-flow (适用于父类容器上) justify-content (适用于父类容器上) align-items (适用于父类容器上) align-content (适用于父类容器上) order (适用于弹性盒模型容器子元素) flex-grow (适用于弹性盒模型容

Flexbox兼容性语法汇总

Flexbox版本 flexbox从第一次出现至今总共有三个语法版本,他们分别是: "display:box;"  —  2009年的老版本 "display:flexbox;"  —  2011年过渡版本/混合版本 "display:flex;"  —  标准版本 规范版本 IE Opera Firefox Chrome Safari 标准版本 IE 11 + 12.10+ * 20+ 21+ ( -webkit- ) 7.0(-webkit-

Flexbox兼容性

.flex-container{ display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */ display: -moz-box; /* Firefox 17- */ display: -webkit-flex; /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */ display: -moz-flex; /* Firefox 18+ */ display: -

Flexbox,更优雅的布局

在设计的眼中,排版的操作是一件很简单的事情,靠左.置中.靠右,我只要点一下,所有元素,就会乖乖的到指定的位置. 但到了前端在排版的实现上,就不是这样了. 我们常常得用一堆其实本来不是这样用的属性来做 hack,比如说用 line-height 来做垂直置中,这样做的确能达到效果,但是在语意上就有点不顺,拿刚刚提到的 line-height 来说,这本来是用来当作段落中的行距,但却因为这个属性能扩展文字的上下空间,结果也被拿来做垂直置中.那有没有一个方法能用来更好地实现 Web 布局呢? 这是 G

关于display:flex;兼容写法

display: -moz-box; /* Firefox */ display: -ms-flexbox; /* IE10 */ display: -webkit-box; /* Safari */ display: -webkit-flex; /* Chrome, WebKit */ display: box; display: flexbox; display: flex;

一个完整的Flexbox指南(转载)

本文由大漠根据Chris Coyier的<A Complete Guide to Flexbox>所译,整个译文带有我们自己的理解与思想,如果译得不好或不对之处还请同行朋友指点.如需转载此译文,需注明英文出处:http://css-tricks.com/snippets/css/a-guide-to-flexbox,以及作者相关信息 ——作者:Chris Coyier ——译者:大漠 Flexbox布局(Flexible Box)模块旨在提供一个更加有效的方式制定.调整和分布一个容器里的项目布

深入了解 Flexbox 伸缩盒模型

Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,为了现代网络中更为复杂的网页需求而设计.本文将介绍 Flexbox 语法的技术细节.浏览器的支持越来越快,所以当 Flexbox 被广泛支持并应用时你将会快人一步.如果你想知道它是什么并是如何工作的,不妨仔细了解下吧! 为什么需要伸缩布局盒(Flexbox)? 作者长期以来使用表格.浮动.行内块元素和其他 CSS 属性来布局网站内容.然而,这些并不是为复杂的页面和网页应用而设计的.不管是简单的垂直居中,还是灵活的网格布局都很难靠一己

【转】深入了解 Flexbox 伸缩盒模型

Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,为了现代网络中更为复杂的网页需求而设计.本文将介绍 Flexbox 语法的技术细节.浏览器的支持越来越快,所以当 Flexbox 被广泛支持并应用时你将会快人一步.如果你想知道它是什么并是如何工作的,不妨仔细了解下吧! 为什么需要伸缩布局盒(Flexbox)? 作者长期以来使用表格.浮动.行内块元素和其他 CSS 属性来布局网站内容.然而,这些并不是为复杂的页面和网页应用而设计的.不管是简单的垂直居中,还是灵活的网格布局都很难靠一己