如下主要討論三欄佈局,兩欄和多欄同理,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;