css中已知寬高的子元素水平垂直居中的三種方法
阿新 • • 發佈:2019-02-08
元素水平垂直居中三種的方法
設定兩個盒子,關係是父與子:
<body> <div id="wrap"> <div id="inner"> inner </div> </div> </body>
方法一:
- 將父元素的width和height設定的和子元素的大小一樣,然後設定父元素wrap的padding。此時padding會將子元素擠進父元素的中間位置;
- 此時父、子元素的定位是否開啟都可以;
*{ margin: 0; padding: 0
方法二:
- 父元素相對定位,子元素絕對定位;
- 絕對定位盒子模型有個特點:left+right+width+padding+margin=包含塊的寬度;所以此時可以將left、right(預設值為auto,所以需要重設定)設定為0,而padding已經確定(未設定時預設值為0px),所以剩下的都是margin,但是margin的預設值是0px。所以就將magin設為auto,使得元素自動居中了;
- 即:left、right、top、bottom為0;margin為auto;
*{margin: 0;padding: 0;} #wrap{ position: relative; width: 200px
方法三:
- 父元素相對定位,子元素絕對定位;
- 將子元素left和right直接設為50%,相對的是父元素;
- 然後在使用margin-left和margin-top設為子元素的一半的負數。就是將偏離父元素中心的那段拽回來;
#inner{ position: absolute; left: 50%; top: 50%; margin-left: -50px; margin-top: -50px; width: 100px; height: 100px; background: pink; line-height: 100px; text-align: center; }
(待擴充)