CSS常见的布局方式

本文介绍了CSS布局中常见的几种方式,包括单列布局(等宽与非等宽)、两列自适应布局(float、Flex、Grid实现)以及三栏布局(浮动和绝对定位方法)。详细讲解了每种布局的实现原理和代码示例,适合前端开发者学习参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

======

常见的单列布局有两种:

  • header,content 和 footer 等宽的单列布局

  • header 与 footer 等宽,content 略窄的单列布局

![](https://img-blog.csdnimg.cn/dbb55f3d98db47fb8ac999a7398e4f23.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmF 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 sbGJhY2s,shadow_50,text_Q1NETiBA5YmN56uv56CB5YacLi4=,size_20,color_FFFFFF,t_70,g_se,x_16)

实现第一种方式很简单,可以将 header , contentfooter 统一设置相等宽度,然后设置 margin:auto 即可实现居中:

.header{

margin:0 auto;

max-width: 960px;

height:100px;

}

.content{

margin: 0 auto;

max-width: 960px;

height: 400px;

}

.footer{

margin: 0 auto;

max-width: 960px;

height: 100px;

}

对于第二种,header 和  footer 可以不用设置宽度,让其充满整个屏幕(默认100%),只需将三者的内容设置同一个 width ,然后在通过 margin:auto 让其内容居中

二、两列自适应布局

=========

两列自适应布局是指一列由内容撑开,另一列撑满剩余宽度的布局方式

实现方式:

  • float+overflow:hidden

  • Flex 布局

  • Grid 布局

1. float+overflow:hidden


实现原理:通过设置 overflow 触发 BFC ,而 BFC 不会重叠浮动元素

left
right

注意:上述代码是左侧栏固定,右侧自适应。

2. Flex 布局


Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局

Flex 布局是2009年W3C提出了一种新布局方案,在现在也得以广泛使用,特别是移动端最优!

Flex 可以简便、完整、响应式地实现各种页面布局

详细了解 Flex 布局请点击:[Flex布局](()

/* html同上 */

.container{

display: flex;

}

.right{

flex: 1;

}

只需两行代码即可完成两列自适应布局,是不是很香~

3.Grid 布局


Grid布局,是一个基于网格的二维布局系统,目的是用来优化用户界面设计。

详细了解Grid布局请点击:[Grid布局](()

/* html同上 */

.container{

display: grid;

grid-template-columns: auto 1fr;

grid-gap: 20px;

}

三、三栏布局

======

特征:中间列自适应宽度,旁边两侧固定宽度,实现三栏布局有多种方式:

1.浮动布局


这种布局方式,dom 结构必须是先写浮动部分,然后再中间块,否则右浮动块会掉到下一行。

浮动布局的优点就是比较简单,兼容性也比较好。但浮动布局是有局限性的,浮动元素脱离文档流,要做清除浮动,这个处理不好的话,会带来很多问题,比如父容器高度塌陷等。

HTML代码:

浮动布局

CSS代码:

/* 清除所有标签默认样式 */

*{

margin: 0;

padding: 0;

}

.left{

float: left;

width: 300px;

height: 100px;

background: pink;

}

.right{

float: right;

width: 300px;

height: 100px;

background: red;

}

.center{

margin-left: 300px;

margin-right: 300px;

background-color: lightblue;

}

效果图:

在这里给 .center 类设置左右外边距是因为两侧的浮动元素占300像素,不设置外边距中间内容多就会出现如下情况:

在前面也说了,浮动实现的三栏布局会使元素脱离文档流,所以为了不影响其他元素的显示需要清除浮动:

.main::after{

content:‘’;

display: block;

clear: both;

}

2.绝对定位布局


HTML代码:

绝对定位布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值