css中圣杯布局
2016-08-31 22:25
162 查看
圣杯布局就是左右两边的图片保持不变,中间的搜索框因浏览器的大小改变而改变,典型案例的如天猫页面搜索框,如图
首先我们设置一个父盒子包含三个小盒子
并给父盒子设置样式,高度为100px,上下padding为0,左右padding为200px
.box {
padding: 0 200px;
height: 100px;
}
然后分别给三个小盒子设置样式
.left {
width: 200px;
height: 100px;
background: red;
float: left;
}
.right {
width: 200px;
height: 100px;
background: blue;
float: right;
}
.center {
/*让中间的盒子宽度为剩余的宽度,所以设置100%*/
width: 100%;
height: 100px;
background: yellow;
float: left;
}
但是运行后我们会发现一个问题,三个盒子并没有显示在一行,而是显示在了三行
因此我们就需要给margin设置负值了,给left类设置
margin-left: -200px;
给right类设置
margin-right: -200px;
运行后会发现三个div在一行显示了,这样会有一个问题,当我们不停的减小浏览器的时候会发现最终中间的盒子的宽度为0
因此需要给中间的盒子设置最小宽度,如给个200px
min-width: 200px;
运行后又会出现一个问题,那就是当中间的盒子宽度为200的时候,再继续减小浏览器窗口,右边的盒子又会到第二行,
解决这个问题我们就需要在父元素里面也添加一个最小宽度,比如也是200px。这样就解决了所有问题。
min-width: 200px;
完整代码如下
首先我们设置一个父盒子包含三个小盒子
<div class="box"> <div class="left"></div> <div class="center"></div> <div class="right"></div> </div>
并给父盒子设置样式,高度为100px,上下padding为0,左右padding为200px
.box {
padding: 0 200px;
height: 100px;
}
然后分别给三个小盒子设置样式
.left {
width: 200px;
height: 100px;
background: red;
float: left;
}
.right {
width: 200px;
height: 100px;
background: blue;
float: right;
}
.center {
/*让中间的盒子宽度为剩余的宽度,所以设置100%*/
width: 100%;
height: 100px;
background: yellow;
float: left;
}
但是运行后我们会发现一个问题,三个盒子并没有显示在一行,而是显示在了三行
因此我们就需要给margin设置负值了,给left类设置
margin-left: -200px;
给right类设置
margin-right: -200px;
运行后会发现三个div在一行显示了,这样会有一个问题,当我们不停的减小浏览器的时候会发现最终中间的盒子的宽度为0
因此需要给中间的盒子设置最小宽度,如给个200px
min-width: 200px;
运行后又会出现一个问题,那就是当中间的盒子宽度为200的时候,再继续减小浏览器窗口,右边的盒子又会到第二行,
解决这个问题我们就需要在父元素里面也添加一个最小宽度,比如也是200px。这样就解决了所有问题。
min-width: 200px;
完整代码如下
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.box {
padding: 0 200px;
height: 100px;
min-width: 200px;
}
.left {
width: 200px;
height: 100px;
background: red;
float: left;
margin-left: -200px;
}
.right {
width: 200px;
height: 100px;
background: blue;
float: right;
margin-right: -200px;
}
.center {
width: 100%;
height: 100px;
background: yellow;
float: left;
min-width: 200px;
}
</style>
</head>
<body>
<div class="box"> <div class="left"></div> <div class="center"></div> <div class="right"></div> </div></body>
</html>
相关文章推荐
- css圣杯布局
- CSS --- 圣杯布局
- css圣杯布局、等高布局
- CSS经典布局之圣杯布局、双飞翼布局
- CSS布局 — 圣杯布局与双飞翼布局
- css 常见页面布局之圣杯布局(margin负值法)
- CSS经典布局-圣杯布局和双飞翼布局对比
- CSS圣杯布局与双飞翼布局
- CSS布局方案之圣杯布局
- CSS布局之圣杯布局与双飞翼布局
- CSS布局经典—圣杯布局与双飞翼布局
- css布局:圣杯布局
- CSS中的圣杯布局,以及圣杯布局与双飞翼布局的区别
- CSS 圣杯布局升级版---多个固定宽度一个自适应宽度
- 【CSS】 布局之圣杯布局
- css布局:双飞翼布局与圣杯布局
- CSS圣杯布局实例
- css中圣杯布局&双飞翼布局(以及css2零碎知识点)
- CSS布局 -- 圣杯布局 & 双飞翼布局
- css 圣杯布局