×

CSS 布局 Flex

✊深入剖析CSS布局,探讨灵活非Flex实现方式🤏

元智汇电子 元智汇电子 发表于2023-11-29 14:15:16 浏览414 评论0

抢沙发发表评论

引言👇

在当今充斥着Flex布局的前端开发环境中,我们将探讨全屏布局、两列布局、三列布局等经典布局的非Flex实现形式。虽然Flex布局提供了便捷的方式,但了解其他实现方式仍然具有重要意义。特别是在一些实际场景中,比如维护老代码👎或者应对面试八股文✊,对于各类布局方式的熟练掌握都显得尤为必要。


🖐全局布局

经典的全局布局通常由顶部、底部和主体三个部分组成。其特性在于三个部分充满整个屏幕,顶部和底部的高度固定,而主体部分的高度则可以自适应内容。


全屏布局实现方式:

🤞实现全屏布局的Position方式

使用position结合left/right/top/bottom属性,通过设置left: 0和right: 0使布局左右充满屏幕,同时通过top: 0和bottom: 0实现顶部吸顶和底部吸底效果。主体部分通过设置top: 50px和bottom: 50px,使其在布局中居中,代码示例如下:

image.pngimage.png

通过这种方式,我们实现了全屏布局的经典效果,同时保持了布局的固定性,使得在实际应用中更加灵活。这种布局方式适用于各种项目,能够在保持简洁的同时实现灵活的页面布局。


🤏灵活运用Flex实现布局

使用flex: 1属性能够简便地实现高度自适应效果,这里直接呈现相应代码:

image.png

这种flex方式是一种简便而高效的布局方式,通过声明flex: 1,右列即可实现自适应高度,避免了繁琐的计算和额外的样式设置。


🐵两列布局的实现

通过不同方式实现两列布局,灵活选择适用于项目的方式:

🦍 1、Overflow + Float

左列使用float使其脱离文档流,右列通过声明overflow: hidden形成BFC区域,与外部隔离。

image.png

🦧 2、Float + Margin-Left/Right

左列使用float脱离文档流,右列通过margin-left确保两列不重叠。

image.png

💪 3、Flex

左列声明固定宽度,右列通过flex: 1实现自适应宽度。

image.png

这样,我们就展示了多种布局方式,让开发者能够根据具体需求选择最适合的方式,实现灵活而高效的布局。



🐷三列布局

通过巧妙的设置,实现了左右列的固定宽度,中间列自适应的三列布局:

image.png

在这个布局中,通过设置左右列的float属性,使其脱离文档流,再通过给中间列设置相应的margin值,让其占据父容器的剩余空间,从而实现了简洁而灵活的三列布局。


🐖圣杯布局

圣杯布局是一种通过父节点声明padding为左右列留出空位,将左右列固定在空位中的布局方式:

image.png

这个布局利用了负margin的方式,将左右列固定在父容器的padding区域内,而中间列则自适应填充剩余空间,实现了一种具有挑战性而灵活的三列布局。


🐏双飞翼布局

使用双飞翼布局,通过在中列添加子节点并声明margin为左右列让出空位,将左右列固定在空位中,实现了一种简洁而灵活的三列布局:

image.png

在这个布局中,通过设置中列的margin值,使左右列脱离文档流,而中间列则自适应填充剩余空间,实现了简单而高效的三列布局。


🦒flex实现三列

通过使用flex: 1,让左右两列宽度固定,中列宽度自适应,实现了一种现代化的三列布局:

image.png

这个布局利用了flex布局的特性,使得左右两列的宽度固定,而中列则自适应填充剩余空间,是一种更加现代化的三列布局方式。


群贤毕至

访客