原文地址: https://www.xksblog.top/CSS-mainstream-centering-techniques.html
幾個月也零零散散學了很多CSS居中技術,每到用的時候,發現老是稀裏糊塗的,有時不知道該選用哪一種技術,有時候又經常把方法搞混,索性好好整理一下,之後查閱回顧也更方便。這裏只簡單總結了大部分主流的居中方法,若是有發現更加牛皮好用的,會不斷的更新進來。css
text-align:center
(在父元素中設置)margin: 0 auto;
margin:auto
能夠實現絕對定位元素的水平垂直居中,見下文。line-height: 父元素的高度;
(在父元素中設置)vertical-align: middle;
(用於垂直對齊inline元素)例如將一個icon與文字對齊。html
vertical-align
須要瞭解文字的baseline和line-box等知識,可參考:[[翻譯]關於Vertical-Align你須要知道的事情](https://segmentfault.com/a/11...、我對CSS vertical-align的一些理解與認識(一) position:relative;
具體方法與絕對定位的第1個和第2個方法相似,只不過把absolute改成relative,並根據原float的方向稍做修改便可。segmentfault
使用50%
推動法則瀏覽器
position: absolute; left: 50%; top: 50%; margin-left: -該元素自身寬度的一半px; /*水平居中*/ margin-top: -該元素自身高度的一半px; /*垂直居中*/
第一種方法的改進版,使用transform
代替margin
wordpress
position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); /*水平垂直居中*/
使用margin:auto;
flex
position: absolute; left: 0; right: 0; /*水平居中*/ top: 0; bottom: 0; /*垂直居中*/ margin: auto;
display: flex; justify-content: center; /*水平居中*/ align-items: center; /*垂直居中*/
display: flex;
,內聯元素設置display: inline-flex;
。margin: 0 auto;
或者text-align: center;
讓圖片居中margin: 0 -100%;
(注意: 父元素必須設置text-align: center;
)翻譯