页面布局(传统布局与现代布局)

传统布局与现代布局详解

在前端开发中,布局是非常重要的一部分。随着技术的发展,布局方式也在不断演变。本文将详细介绍传统布局方法(如 float 和 inline-block)以及现代布局方法(如 flexbox)的特点、存在的问题以及解决办法。

传统布局

Float布局

浮动(float)是早期常用的一种布局方式,通过向需要横向布局的元素添加 float 属性可以实现左右浮动。

float: left; 左浮动

float: right; 右浮动

存在的问题:

使用 float 之后,所在的父级元素无高度,会导致下方元素向上移动。

解决办法:

1.给父级元素设置高度(不推荐)。

2.给父级元素设置 overflow: hidden;,达到父级高度随自己高度自适应的效果(推荐)。

无法解决的问题:

1.元素之间均匀分布需要计算,而且不一定均匀分布。

2.元素均分父级需要计算,而且不一定实现均分。

3.书写繁琐,代码冗余。

Inline-block布局

通过向需要横向布局的元素添加 display: inline-block 可以将其变为内联块级元素。

内联块级元素不独占一行,对宽高支持。

存在的问题:

使用之后元素之间产生莫名其妙的空隙,对整体的布局有影响。

产生的原因:

把换行和空格都当成空白。

解决办法:

1.把元素标签首尾相连(不推荐)。

2.文字大小处理,给使用 display: inline-block 的父级元素设置 font-size: 0;,并且该元素要有有效的字体大小。

无法解决的问题:

1.元素之间均匀分布需要计算,而且不一定均匀分布。

2.元素均分父级需要计算,而且不一定实现均分。

3.书写繁琐,代码冗余。

现代布局

Flexbox布局

弹性盒子(Flexbox)是现代CSS布局的一种方式,只需给父级元素添加 display: flex,就能让多个子元素横向布局。

控制弹性盒子模型内子元素的排列方向:

flex-direction:

row 横向从左到右排列

row-reverse 横向从右往左排列

column 纵向从上到下排列

column-reverse 纵向从下到上排列

设置弹性盒子内子元素是否换行:

flex-wrap:

wrap 换行

nowrap 不换行

设置弹性盒子内子元素的排列顺序:

order:作用到子元素上,属性值为一个整数,值越小,该子元素出现的顺序越靠前。

控制弹性盒子内子元素的缩放比例:

flex 复合属性:

flex-grow 拉伸因子

flex-shrink 压缩因子

flex-basis 基准因子

控制弹性盒子内子元素的分布方式:

justify-content:

flex-start 在排列方向上的开始位置分布

flex-end 在排列方向上的结束位置分布

center 在排列方向上的中间位置分布

space-between 空自元素分布在元素中间

space-around 空白元素分布在元素周围

space-evenly 空白元素均匀分散

控制弹性盒子内子元素在垂直方向上的对齐方式:

align-items:

flex-start 顶部(左端)

flex-end 底部(右端)

center 居中对齐

baseline 首行底部对齐

设置弹性盒子内多行元素的分布方式:

align-content:

flex-start 所有行都靠近顶部(左端)

flex-end 所有行都靠近底部(右端)

center 所有行居中显示

space-between 空自元素分布在行与行之间

space-around 空白元素分布在行的周围

space-evenly 空白元素均匀分布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值