经典布局---两边固定中间自适应
2018-11-04 本文已影响0人
苏晓枫
方法一:左右使用浮动,中间设置margin-left和margin-right
这种方式很简单,就是让左边的左浮动,右边的右浮动,然后通过设置中间的margin将内容从两边拉回来。
代码如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
#wrapper{
min-width: 700px;
}
#left {
width: 150px;
height: 400px;
background: green;
float: left;
}
#right {
width: 200px;
height: 400px;
background: red;
float: right;
}
#center {
background: pink;
margin-left: 150px;
height: 400px;
margin-right: 200px;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="left">我是左边</div>
<div id="right">我是右边</div>
<div id="center">我是中间</div>
</div>
</body>
</html>
方法二
-
在container中,我们将middle放在left和right的前面。
-
将三个都加上float: left, 再相对定位,因为在后面需要为左右两块区域重新定位。
-
middle部分 width:100%占满
-
此时middle占满了,所以要把left拉到最左边,使用margin-left:-100%
-
这时left拉回来了,但会覆盖middle内容的左端,要把middle内容拉出来,所以在外围container加上 padding:0 220px 0 200px
-
middle内容拉回来了,但left也跟着过来了,所以要还原,就对left使用相对定位 left:-200px 同理,right也要相对定位还原 right:-220px
-
到这里大概就自适应好了。如果想container高度保持一致可以给left middle right都加上min-height:130px
贴出代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
body {
min-width: 700px;
}
#container {
background: red;
padding: 0 220px 0 200px;
height:400px;
}
#middle,
#left,
#right {
float: left;
position: relative;
min-height: 400px;
}
#middle {
width: 100%;
background: yellow;
}
#left {
width: 200px;
background: green;
margin-left: -100%;
left: -200px;
}
#right {
width: 220px;
background: blue;
margin-left: -220px;
right: -220px;
}
</style>
</head>
<body>
<div id="container">
<div id="middle">我是middle</div>
<div id="left">我是left</div>
<div id="right">我是right</div>
</div>
</body>
</html>