学习CSS 双飞翼布局*
这两天学习了双飞翼布局。 双飞翼布局主要是为了解决左右两栏固定,中间部分自适应的问题。 其中主要使用了float技术。
新建一个3列的项目 分别设置宽度为
left:190,
middle:100%,
right: 190,
位置设置为relative, float; left.
代码如下
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>双飞翼布局</title>
<link rel="stylesheet" href="css/layout .css" />
</head>
<body>
<div class="header">
<p>head</p>
</div>
<div class="container">
<div class="middle">
<p>middle</p>
</div>
<div class="left">
<p>left</p>
</div>
<div class="right">
<p>right</p>
</div>
</div>
<div class="footer">
<p>foot</p>
</div>
</body>
</html>
CSS
p{
margin: 0px;
padding: 0px;
color: black;
}
.header,
.footer{
border:1px solid black;
background-color: gray;
text-align: center;
}
.container{
width: 100%;
}
.middle{
float:left;
width: 100%;
min-height: 130px;
background: red;
}
.left{
position:relative;
float:left;
width: 190px;
min-height: 130px;
background: blue;
margin-left: -100%;
}
.right{
position:relative;
float:left;
width: 190px;
min-height: 130px;
background: yellow;
margin-left: -190px;
}
.footer{
clear:both;
}
注意到,middle div的text元素被left div所遮挡,这里的解决方法是,在middle中添加一个wrap,将内容写进wrap里面,然后使用css去调整wrap的位置。
代码修改为
<div class="middle">
<div class="wrap">
<p>middle</p>
</div>
</div>
CSS
.wrap{
margin-left:200px;
margin-right:200px;
background:red;
min-height: 130px;
}
结果如下
可以看到文本 middle 出现了。
这个布局的关键在于将left和right向左浮动,当浮动值为负值时,便自动 挤到了上一行。 这里要主要,浮动值要大于宽度,否则就会出现div部分被挤出页面的情况。
这种布局的好处是 可以先加载主列,兼容性较,便于后期修改。
REF