首页 > 代码库 > Flex布局摆脱float带来的布局问题

Flex布局摆脱float带来的布局问题

  完整文章地址http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

  使用浮动(float)的一个比较疑惑的事情是他们怎么影响包含他们的父元素的。如果父元素只包含浮动元素,且父元素未设置高度和宽度的时候。那么它的高度就会塌缩为零。那我们就不能

做高度根据内容自动调整的布局,但是利用flex布局可以实现,不需要设置父元素的宽度和高度,让父元素根据子元素自动调整大小。

  Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局:.div{dispaly:flex}.采用Flex布局的元素,称为Flex容器(flex container),简称"容器"。它的所有子元素自动成为容器成员。这里我主要说一下容器的一个属性flex-direction.他有4个取值分别为:row、row-reverse、column、column-reverse.

  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。

代码如下:

可以通过设置flex-direction属性得到不同的效果。下面代码只是设置{flex-direction:row}。

<!DOCTYPE html>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<style type="text/css">
.div1{
display: flex;
flex-direction: row;
border:1px solid red;
width:300px;
}
.div1 div{
border:1px solid black;
margin:10px 10px;
width:50px;
height:50px;
}
</style>
</head>
<body>
<div class="div1">
<div>a
</div>
<div>b
</div>
<div>c
</div>
</div>
</body>
</html>

Flex布局摆脱float带来的布局问题