如下主要讨论三栏布局,两栏和多栏同理,css
子元素浮动,父元素添加清除浮动,html以下:html
<div class="wrapper clearfix">
<div class="left">左边栏</div>
<div class="middle">中间栏中间栏中间栏中间栏中间栏</div>
<div class="right">右边栏</div>
</div>
复制代码
CSS以下:web
.clearfix::after {
content: '';
display: block;
clear: both;
}
.wrapper{
max-width: 360px;
margin: 0 auto;
border: 1px solid;
}
.left{
width: 20%;
float: left;
background: #1aa;
}
.middle{
width: 60%;
float: left;
background: #77a;
}
.right{
width: 20%;
float: left;
background: #a7a;
}
复制代码
显示效果: 浏览器
利用CSS3单元格实现,把left,middle,right类改成以下形式便可。app
.left{
display: table-cell;
width: 20%;
background: #1aa;
}
.middle{
display: table-cell;
background: #77a;
}
.right{
display: table-cell;
width: 20%;
background: #a77;
}
复制代码
显示效果与上相同,而且中栏可自适应窗口。不过table-cell只适用于较新的浏览器,为了适应老浏览器还能够用负边距法。布局
适用于文字,连接,及其inline或者inline-block、inline-table和inline-flex。给要居中元素父元素添加:flex
.container{
text-align:center;
}
复制代码
给父元素设置width,给居中元素设置以下规则:ui
.block{
margin:0 auto;
}
复制代码
若父元素宽度未知,则可先设为display: inline-block
,再按行内元素方法(tac
)居中。spa
把line-height
设置成和height
同样高便可。若是有n行文字,那么将行高设为容器高度的n分之一便可。或者设置上下pandding
相等code
先下移50%,再上移自身高度一半。 结构以下:
<div id="big">
<div id="small"></div>
</div>
复制代码
样式以下:
#big {
position:relative;
height:480px;
}
#small {
position: absolute;
top: 50%;
height: 240px;
margin-top: -120px;
}
复制代码
max-width
自适应,而非width
(会有滚动条)。<span>
不接受设置宽高。改inline-block
,计算padding
,从里面作出去。p:abs
,父元素写p:rel
。<a>
而非<button>
。padding
、margin
不改宽度:box-sizing: border-box;