CSS3 盒元素 弹性空间分配

CSS3新增了box-flex属性,用于定义盒元素内部的子元素是否具有空间弹性。

所谓空间弹性:当盒元素的尺寸发生变化时(放大或缩小),被定义为有空间弹

性的子元素的尺寸也会相应的发生变化(放大或缩小)。

每当盒元素有额外的空间时,具有空间弹性的子元素会扩大自身大小来弥补这

一空间。

看下面的例子:实现一个三栏的网页


此时菜单栏的空间是根据自身的大小来确定的

/*其代码如下*/

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>20171213 开启盒布局</title>
<style type="text/css">
*{margin: 0;padding: 0;}
.container{
/*开启盒布局*/
display: -webkit-box;/*兼容webkit内核*/
display: -moz-box;/*兼容Gecko内核*/
display: box;  /*定义为盒子显示*/
}
.container div{
color: #fff;
font-size: 15px;
padding: 10px;
line-height: 20px;
}
.container div ul{
margin: 0;
padding-left: 20px;
}
.container>div:first-child{/*选中菜单栏所对应的div元素,并设置其样式*/
background-color: #f63;
}
.container>div:nth-child(2){/*选中内容栏所对应的div元素,并设置其样式*/
background-color: #390;
width: 200px;
}
.container>div:last-child{
background-color: #039;
}
</style>
</head>
<body>
<div class="container">
<div>
<h2>菜单</h2>
<ul>
<li>HTML5</li>
<li>CSS3</li>
<li>活动沙龙</li>
<li>研发小组</li>
</ul>
</div>
<div>
<h2>内容</h2>
<p>盒布局是CSS3发展的新型布局方式,它比传统的浮动布局方式更加完善,

更加灵活,而使用方法却极为简单。</p>
<p>开启盒布局的方法,就是设置display的属性为box(或inline-box)。</p>
</div>
<div>
<h2>工具</h2>
<ul>
<li>天气预报</li>
<li>货币汇率</li>
</ul>
</div>
</div>
</body>
</html>

如果我们把盒元素的某一子元素设为具有空间弹性,以中间的“内容”

为例,可对其代码做如下修改。

.container>div:nth-child(2){
background-color: #390;
/*设置菜单栏具有空间弹性*/
box-flex:1;
-webkit-box-flex:1;
-moz-box-flex:1;
}

可得到如下结果:

(1)全屏显示时:


(2)屏幕宽度发生变化时:


通过对这三幅图进行比较可知:在盒元素内部的子元素设置空间弹性时,该元素的宽度和

高度会随着页面的变化而发生相应的变化,且总能充满整个盒元素的空间。

box-flex的属性值是一个整数或小数,不可为负数,默认值是0。

当一个盒元素内部有多个子元素设置了空间弹性时,子元素的空间弹性是相对的,结合其

空间弹性值进行按比分配

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值