左右佈局
方法一:flex
簡單來說:Flex 包括外容器及內元件。
.container{
display:flex; /*一開始需要在父層宣告為 flex 才有效*/
}
.item-right{
flex:1; /*對應子層加上;1數值是內元件之間佔的比例*/
}
.item-left{
flex:1; /*對應子層加上*/
}<div class="container">
<div class="item-right"></div>
<div class="item-left"></div>
</div>
額外知識點:flex 外內還包含其他屬性實現不同效果
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
方法二:float
設定兩個需要佈局的元素寬度為父容器的總和,再使用float脫離文檔流。
.clearfix{
content:'';
display:block;
clear:both;
}
.item-left{
float:left; /*使用float脫離文檔流*/
}
.item-right{
float:left; /*或視乎父元素width使用float:right; 或margin-left:.left的闊度*/
}<div class="clearfix">
<div class="left"></div>
<div class="right"></div>
</div>
方法三:position:absolute
.container{
position:relative; /*父元素加上relative*/
}
.right{
position:absolute; /*使用absolute脫離文檔流*/
}
.left{
position:absolute; /*使用absolute脫離文檔流*/
left:200px; /*定位.right闊度*/
}<div class="container">
<div class="left"></div>
<div class="right"></div>
</div>
左中右布局
方法一:flex
.container{
display:flex;
}
.item-right, .item-center, .item-left{
flex:1;
}<div class="container">
<div class="item-right"></div>
<div class="item-center"></div>
<div class="item-left"></div>
</div>
方法二:float
設定三個需要佈局的元素寬度為父容器的總和,再使用float脫離文檔流。
.container{
content:'';
display:block;
clear:both;
}.right, .center, .left{
float:left;
}<div class="clearfix">
<div class="right"></div>
<div class="center"></div>
<div class="left"></div>
</div>
方法三:position:absolute:
.container{
position:relative; /*父元素加上relative*/
}.right{
position:absolute; /*使用absolute脫離文檔流*/
}.center{
position:absolute; /*使用absolute脫離文檔流*/
left:200px; /*定位.right闊度*/.left{
position:absolute; /*使用absolute脫離文檔流*/
left:400px; /*定位.right及.center闊度*/
}<div class="container">
<div class="right"></div>
<div class="center"></div>
<div class="left"></div>
</div>
水平居中
margin: 0 auto;
多用於block
元素,設定block
元素的 width
屬性,可以避免該元素從左到右撐滿容器,然後你可以設定左右外邊距(margin-left 與 margin-right)為 auto
來使其水平居中。元素在顯示的時候,只會顯示到你所指定的寬度,然後剩餘的寬度平均的散落在左右兩邊的邊距上。
額外知識點:16种方法实现水平居中垂直居中
http://louiszhai.github.io/2016/03/12/css-center/
垂直居中
line-height
.container{
width:200px;
height:150px;
border:1px solid #000000;
line-height:150px;
text-align:center;
}
.content{
display:inline-block;
width:10px;
height:10px;
background:#0536ff;
}<div class="container">
<div class="content"></div>
</div>