居中佈局 <div class=”parent”> <div class=”child”>demo</div> </div> 1.水平居中 1> 方案一 inlink-block+text-align .child {display:inlink-block;} .parent {text-alig ...
居中佈局
<div class=”parent”>
<div class=”child”>demo</div>
</div>
1.水平居中
1> 方案一 inlink-block+text-align
.child {display:inlink-block;}
.parent {text-align:center;}
優點:相容性好
缺點:子元素寬高不可設置
2> 方案二 table+margin
.child {display:table; margin:0 auto;}
優點:只需要設置child(自己)
3> 方案三 absolute+transform
.parent {position:relative;}
.child {position:absolute;left:50%;transform:translateX(-50%);}
優點:子元素不會對其他元素產生影響
缺點:相容性問題
4> 方案四 flex+justify-content
.parent {display:flex;justify-content:center;}
優點:只需設置parent節點
或者設置為
.parent {display:flex;}
.child {margin:0 auto;}
缺點:flex低版本ie不支持
2.垂直居中
1> 方案一 table-cell+vertical-align
.parent {display:table-cell;vertical-align:middle;}
優點:只需設置父節點,相容性好
2> 方案二 absolute+transform
.parent {position:relative;}
.child {position:absolute;top:50%;transform:translateY(-50%);}
優點:子元素不會對其他元素產生影響
缺點:相容性問題
3> 方案三 flex+align-items
.parent {display:flex;align-items:center;}
優點:只需設置父節點
缺點:相容性問題
3.水平和垂直均居中
1> 方案一 inline-block+text-align+table-cell+vertical-align
.parent {text-align:center;display:table-cell;vertical-align:middle;}
.child {display:inline-block;}
2> 方案二 absolute+transform
.parent {position:relative;}
.child { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}
3> 方案三 flex+justify-content+align-items
.parent {display:flex;justify-content:center;align-items:center;}
思路:瞭解屬性值特性,分解問題。