parent 是父元素的類名,child是子元素的類名。
1、絕對定位
絕對定位的百分比是相對于父元素的寬高,通過這個特性可以讓子元素的居中顯示,但絕對定位是基于子元素的左上角,期望的效果是子元素的中心居中顯示。我們需要對于子元素進行偏移,所以有定寬和不定寬的區別。
1)absolute + 負margin(定寬)
可以借助外邊距的負值,負的外邊距可以讓元素向相反方向定位,通過指定子元素的外邊距為子元素寬度一半的負值,就可以讓子元素居中了。
2)absolute + margin auto(定寬)
這種方式也要求居中元素的寬高必須固定。設置各個方向的距離都是0,此時再將margin設為auto,就可以在各個方向上居中了。
3)absolute + calc函數(定寬)
使用 calc() 函數計算 <div> 元素的寬度。
calc() 函數用于動態計算長度值。
a、需要注意的是,運算符前后都需要保留一個空格,例如:width: calc(100% - 10px);
b、任何長度值都可以使用calc()函數進行計算;
c、calc()函數支持 "+", "-", "*", "/" 運算;
d、calc()函數使用標準的數學運算優先級規則;
以上的方式都需要知道不需要子元素固定寬高。
4)absolute + transform(不定寬高)
使用css3新增的transform,transform的translate屬性也可以設置百分比,其是相對于自身的寬和高,所以可以將translate設置為-50%,就可以做到居中了。
2、flex布局
通過flex布局,將里面的內容和項居中即可。