Closed
Description
样式如下
用flex和百分比同样做响应式布局,效果一样,但是方法不一样
传统布局方法一般是基于盒状模型的,通过display属性,position属性和float属性达到目的。它这对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。
这里header相当于一个flex的盒模型,里面的div根据这个盒做相应的改变
body {
margin: 0;
padding: 0;
}
/*flex方法*/
.header {
display: flex;
/*设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。*/
flex-direction: row;
background-color: #c5c5c5;
width: 100%;
}
.header div {
text-align: center;
flex: 1;
}
/*百分比方法*/
.headerPer{
background-color: #c5c5c5;
width: 100%;
float: left;
}
.headerPer div{
float: left;
width: 25%;
text-align: center;
}
</style>
<body>
<header class="header">
<div>左边</div>
<div>中间</div>
<div>中间</div>
<div>右边</div>
</header>
<header class="headerPer">
<div>左边</div>
<div>中间</div>
<div>中间</div>
<div>右边</div>
</header>
</body>
上面flex属性用于设置或检索弹性盒模型对象的子元素如何分配空间。比如上面就把每个div分成四个1,每个占四份之一
flex设置为1就是默认设置flex-grow,flex-shrink和flex-basis属性值
- flex-grow 一个数字,规定项目将相对于其他灵活的项目进行扩展的量。
- flex-shrink 一个数字,规定项目将相对于其他灵活的项目进行收缩的量。
- flex-basis 项目的长度。合法值:"auto"、"inherit" 或一个后跟 "%"、"px"、"em" 或任何其他长度单位的数字。
flex-basis属性用于设置或检索弹性盒伸缩基准值
注意:如果元素不是弹性盒对象的元素,则 flex-basis 属性不起作用
如果用JS写的话就用这种
注意:display: box; 是 2009版本. display: flex;是2011修订版
Activity
Wscats commentedon Jul 11, 2016
Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
任何一个容器都可以指定为Flex布局。
行内元素也可以使用Flex布局。
Wscats commentedon Jul 11, 2016
我们可以对header盒子增加一个
flex-direction: row-reverse;
他可以有以下的值
flex-direction:initial;
设置默认值为rowflex-direction:inherit;
从父元素继承该属性Wscats commentedon Jul 14, 2016
参考:Flex 布局教程:实例篇
参考:Wsscat的例子
Wscats commentedon Jul 14, 2016
写了个比较全的DEMO
Wscats commentedon Jul 16, 2016
参考:Wsscat的例子