常见的单列布局有两种:
header,content 和 footer 等宽的单列布局
header 与 footer 等宽,content 略窄的单列布局
实现第一种方式很简单,可以将 header , content, footer 统一设置相等宽度,然后设置 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代码:
左
中
绝对定位布局