效果预览
页面要求:
- 上下固定高度
- 左右固定宽度
- 中间区域自适应宽高
- 整个页面内容撑满全屏,没有滚动条
技术要点
使用 html5 语义化标签
- header 网页内的标题区域
- nav 导航区域
- aside 侧边栏
- footer 页脚区域
- section 内容分区
- article 文章区域
清除浏览器默认的内外边距
html,
body {padding: 0px;margin: 0px;
}
否则会出现滚动条
设置内容高度为 100 vh 撑满屏幕
body {height: 100vh;
}
另一种方案是设置 html 和 body 高度为 100%
html,body {height:100%
}
flex实现自适应布局
垂直方向
body {display: flex;flex-direction: column;
}
#mainBox {flex-grow: 1;
}
水平方向
#mainBox {display: flex;
}
#centerBox {flex-grow: 1;
}
演示代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>CSS “四合院”布局</title><style>html,body {padding: 0px;margin: 0px;}body {display: flex;flex-direction: column;height: 100vh;}header {height: 100px;background-color: blue;}footer {height: 60px;background-color: black;}#mainBox {flex-grow: 1;background-color: gray;display: flex;}#leftBox {width: 300px;background-color: red;}#centerBox {flex-grow: 1;}#rightBox {width: 200px;background-color: yellow;}</style></head><body><header></header><section id="mainBox"><aside id="leftBox"></aside><article id="centerBox"></article><aside id="rightBox"></aside></section><footer></footer></body>
</html>