這是面試常問的題目。今天就來徹底搞明白水準垂直居中的方法
一共七種方法,前兩種是定寬高才能用的,後面五種不管需要垂直居中的元素有沒有寬高都可以垂直居中。flex和table-cell和grid都需要有父元素的寬高,也就是說不能直接在body中水準垂直居中。
1.定寬高 絕對定位 + left/right/bottom/top + margin
2.定寬高 絕對定位和負magin值
3.有寬高和無寬高是一樣的 絕對定位 + transform
4.有寬高和無寬高是一樣的 flex 父元素必須要有寬高
5.有寬高和無寬高是一樣的 grid 父元素必須要有寬高
6.有寬高和無寬高差不多 父元素必須要有寬高 table-cell + vertical-align + 直接設定成這個inline-block有寬高無寬高一樣。設定margin: auto則時有寬高
7.定寬高不定寬高可以 flex變異