flex 左右布局_移动WEB开发 — 流式布局

03ae9371c7fbc786125607074c54d811.png

流式布局

一、手机网页没有版心

手机网页没有版心,都左右撑满。
这是因为:
1) 手机视口已经非常小了,如果再限制一个版心,左右留白,非常难看。
2) APP都是满的,你没有见过一个app是中间一条,左右是白的。所以手机网页  我们习惯也让他撑满。

没有版心对我们写页面影响很大,比如你版心是980,那么可以精确计算:
logo占120,nav占860,nav里面一共10个li,每个li都是86px。
但是,手机页面没有版心,视口的大小又各有不同,所以要用百分比来进行布局。

流式布局(百分比布局)

思维线:
手机屏幕小 → 不希望有留白 → 希望撑满页面 → 视口宽度不同 → 不能用px写死 → 用百分比写宽度

百分比布局也叫作流式布局、弹性盒布局也称非固定像素布局。

百分比能够设置的属性是width、height、padding、margin。
百分比是一个相对单位,相对谁的单位?父元素。如果没有父元素,实际上也有父元素就是body,就是
屏幕。

如果用百分比写width,那么指的是父元素width的百分之多少。
如果用百分比写height,那么指的是父元素height的百分之多少。
如果用百分比写padding,那么指的是父元素width的百分之多少,无论是水平的padding还是竖直的
padding。
如果用百分比写margin,那么指的是父元素width的百分之多少,无论是水平的margin还是 竖直的
margin。

不能用百分比写如border、font-size。

b59b2fc6cf96f3b17bfb61db0b2cf8e4.png

c0d8deadbcd125748d2c866295cd4cd3.png

CSS3弹性盒属性display:-webkit-box;

来看看百分比布局有什么不方便的地方,比如让三个p按1:2:3设置宽度,那应该给每个p设置多少的%。
<div>
    <p></p>
    <p></p>
    <p></p>
</div>

width不直观

p:nth-child(1){
    float: left;
    width: 16.6666%;
}
p:nth-child(2){
    float: left;
    width: 33.3333%;
}
p:nth-child(3){
    float: left;
    height: 100px;
}

css3推出了一个新的属性,display属性有了一个新的值:box。目前还需要加兼容前缀
display:-webkit-box;

加上这个属性之后,它自己的儿子都是弹性盒了。儿子们不需要设置float:left就能够默认并排。
通过设置-webkit-box-flex:数字;来设置占的比例。

div{
    /*自己的亲儿子都是弹性盒模型了*/
    /*这个div是弹性盒模型的容器*/
    display: -webkit-box;
}
p:nth-child(1){
    /*box-flex属性表示比例*/
    -webkit-box-flex:1;
    height: 100px;
    background: orange;
}
p:nth-child(2){
    /*box-flex属性表示比例*/
    -webkit-box-flex:2;
    height: 100px;
    background: skyblue;
}
p:nth-child(3){
    /*box-flex属性表示比例*/
    -webkit-box-flex:3;
    height: 100px;
    background: yellowgreen;
}

CSS3新的盒模型box-sizing:border-box

div{
    width: 200px;
    height: 200px;
    padding: 10px 20px 30px 40px;
    border:5px solid red;
    box-sizing:border-box;
}

box-sizing就是盒子的尺寸,这个属性定义了你设置的width、height指的是什么的宽度、高度。
默认来说,width、height是内容的宽度、高度。但是加上 box-sizing:border-box;

6447a9677f6deee5a38b3777fbbe4af9.png
box-sizing:border-box;在流式布局中太好用了,因为border必须用px写单位,而加边框必须减宽度。
而百分比的宽度,怎么减px的单位呢??box-sizing:border-box;就可以让这个元素不用减border,
因为width里面已经含有了border。

固比固

ba6a01fb4fbb9ff98db1ca124579662a.png

3d5dc54b589891179892b8fb59cf9754.png

6e8d809a22981d67ce409e90819fc323.png

方法1:绝对定位的方法(圣杯布局)

88b2e658163d2704c86e63911445ba9c.png

方法2: display:box;属性

14711796828e4abf6bd2e7440d9cb034.png

高度等比变化

做手机页面的时候,盒子的宽度可能是百分比写的,高度是固定的。有些时候,盒子的高度也会等比例
变化。

图片自动就是等比例变化的

图片只设置width。height不设置,高度就是自动等比例变化的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值