布局
一 、两栏布局
1、左右固定两栏布局(双飞翼布局)
图如下:
第一种方案:利用浮动+overflow
代码如下:
<!-- css样式 -->
*{
padding: 0px;
margin: 0px;
}
html,body{
width: 100%;
height: 100%;
}
.box1{
width: 300px;
height: 100%;
background: gray;
float: left;
}
.box2{
height: 100%;
background: pink;
overflow: hidden;
}
.box3{
width: 200px;
height: 100%;
background: orange;
float: right;
}
<!-- html结构 -->
<div class="box1"></div>
<div class="box3"></div>
<div class="box2"></div>
这种方案注意容器的书写顺序
第二种方案:利用浮动+padding
代码如下:
<!-- css样式 -->
*{
padding: 0px;
margin: 0px;
}
html,body{
width: 100%;
height: 100%;
}
.box1{
width: 300px;
height: 100%;
background: pink;
float: left;
}
.box{
height: 100%;
padding:0 200px 0 300px;
}
.box2{
height: 100%;
background: gray;
}
.box3{
width: 200px;
height: 100%;
background: greenyellow;
float: right;
}
<!-- html结构 -->
<div class="box1"></div>
<div class="box3"></div>
<div class="box">
<div class="box2"></div>
</div>
这种方案注意容器的书写顺序
第三种方案:利用弹性盒
代码如下:
<!-- css样式 -->
*{
padding: 0;
margin: 0;
}
html,body{
height: 100%;
}
body{
display: flex;
}
nav{
width: 200px;
height: 100%;
background: pink;
}
aside{
width: 200px;
height: 100%;
background: #ccc;
}
article{
flex: 1;
text-align: center;
font-size: 50px;
}
<!-- html结构 -->
<nav></nav>
<article>左右固定两栏布局</article>
<aside></aside>
第四种方案:利用怪异盒+padding+定位
代码如下:
<!-- css样式 -->
*{
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,body{
height: 100%;
}
nav{
width: 200px;
height: 100%;
background: pink;
position: absolute;
left: 0px;top: 0px;
}
article{
width: 100%;
height: 100%;
padding: 0 200px;
background: orange;
}
div{
width: 100%;
height: 100%;
background: #fff;
}
aside{
width: 200px;
height: 100%;
background: #ccc;
position: absolute;
right: 0px;top: 0px;
}
<!-- html结构 -->
<nav></nav>
<article>
<div>左右固定两栏布局</div>
</article>
<aside></aside>
2、上下固定两栏布局
图如下:
第一种方案:利用弹性盒
代码如下:
<!-- css样式 -->
*{
padding: 0px;
margin: 0px;
}
html,body{
height: 100%;
}
body{
display: flex;
flex-direction: column;
}
header{
width: 100%;
height: 100px;
background: pink;
}
main{
width: 100%;
background: #fff;
flex: 1;
font-size: 50px;
text-align: center;
}
footer{
width: 100%;
height: 100px;
background: #ccc;
}
<!-- html结构 -->
<header></header>
<main>上下固定两栏布局</main>
<footer></footer>
第二种方案:利用怪异盒+padding+定位
代码如下:
<!-- css样式 -->
*{
padding: 0px;
margin: 0px;
box-sizing: border-box;
}
html,body{
height: 100%;
}
header{
width: 100%;
height: 100px;
background: pink;
position: absolute;
top: 0px;
}
main{
width: 100%;
height: 100%;
background: purple;
padding: 100px 0;
}
div{
width: 100%;
height: 100%;
background: #fff;
text-align: center;
font-size: 50px;
}
footer{
width: 100%;
height: 100px;
background: #ccc;
position: absolute;
bottom: 0px;
}
<!-- html结构 -->
<header></header>
<main><div>上下固定两栏布局</div></main>
<footer></footer>
二、圣杯布局
结合以上两种布局就可实现圣杯布局。
效果图如下:
代码如下:
<!-- css样式 -->
*{
padding: 0px;
margin: 0px;
}
html,body{
height: 100%;
}
body{
display: flex;
flex-direction: column;
}
header{
width: 100%;
height: 100px;
background: pink;
}
main{
width: 100%;
background: #fff;
flex: 1;
font-size: 50px;
text-align: center;
display: flex;
}
.box-l{
width: 200px;
height: 100%;
background: red;
}
.box-c{
flex: 1;
}
.box-r{
width: 200px;
height: 100%;
background: blue;
}
footer{
width: 100%;
height: 100px;
background: #ccc;
}
<!-- html结构 -->
<header></header>
<main>
<div class="box-l"></div>
<div class="box-c"></div>
<div class="box-r"></div>
</main>
<footer></footer>
上述圣杯布局的布局方案主要用的就是弹性盒,当然诸位也可结合上述两栏固定的布局方案进行组合实现需求。
三、悬挂式布局
效果图如下:
代码如下:
<!-- css样式 -->
*{
padding: 0;
margin: 0;
}
section{
width: 600px;
height: 300px;
background: #ccc;
display: flex;
margin: 100px auto;
}
img{
display: block;
align-self: flex-start;
margin-right: 10px;
}
<!-- html结构 -->
<section>
<img src="./images/mao.png" alt="">
<p>文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容文本内容
</p>
</section>
好的,布局简集就到这里了,如有不足之处,望诸位大神们不吝赐教。谢谢 !