parent 是父元素的類名哼转,child是子元素的類名磷蛹。
1疚脐、絕對(duì)定位
絕對(duì)定位的百分比是相對(duì)于父元素的寬高,通過(guò)這個(gè)特性可以讓子元素的居中顯示县昂,但絕對(duì)定位是基于子元素的左上角肮柜,期望的效果是子元素的中心居中顯示。我們需要對(duì)于子元素進(jìn)行偏移倒彰,所以有定寬和不定寬的區(qū)別审洞。
1)absolute + 負(fù)margin(定寬)
可以借助外邊距的負(fù)值,負(fù)的外邊距可以讓元素向相反方向定位待讳,通過(guò)指定子元素的外邊距為子元素寬度一半的負(fù)值芒澜,就可以讓子元素居中了。
2)absolute + margin auto(定寬)
這種方式也要求居中元素的寬高必須固定耙箍。設(shè)置各個(gè)方向的距離都是0撰糠,此時(shí)再將margin設(shè)為auto,就可以在各個(gè)方向上居中了辩昆。
3)absolute + calc函數(shù)(定寬)
使用 calc() 函數(shù)計(jì)算 <div> 元素的寬度阅酪。
calc() 函數(shù)用于動(dòng)態(tài)計(jì)算長(zhǎng)度值。
a汁针、需要注意的是术辐,運(yùn)算符前后都需要保留一個(gè)空格,例如:width: calc(100% - 10px)施无;
b辉词、任何長(zhǎng)度值都可以使用calc()函數(shù)進(jìn)行計(jì)算;
c猾骡、calc()函數(shù)支持 "+", "-", "*", "/" 運(yùn)算瑞躺;
d、calc()函數(shù)使用標(biāo)準(zhǔn)的數(shù)學(xué)運(yùn)算優(yōu)先級(jí)規(guī)則兴想;
以上的方式都需要知道不需要子元素固定寬高幢哨。
4)absolute + transform(不定寬高)
使用css3新增的transform,transform的translate屬性也可以設(shè)置百分比嫂便,其是相對(duì)于自身的寬和高捞镰,所以可以將translate設(shè)置為-50%,就可以做到居中了。
2岸售、flex布局
通過(guò)flex布局践樱,將里面的內(nèi)容和項(xiàng)居中即可。