left:0top:0right:0bottom:0margin: auto
2、定位+margin-left+margin-top 父元素 position: relative 子元素 position:absolute
left:50%top:50%margin-left: -当前盒子宽度的一半margin-top: -当前盒子高度的一
半
3、定位+transfrom(子元素未知宽高)父元素 position: relative 子元素 position:
absolute left:50%top:50%transform: translate(-50%,-50%)• 弹性盒子父元素 display:
flexjustify-content: centeralign-items: center
4、flex+margin: auto 父元素 display: flex子元素 margin:auto
当然可以。子元素是绝对定位,父元素为相对定位、绝对定位或固定定位,则子元素均以父元素作为坐标参照系。顺便说说:可以隔代,比如子元素是绝对定位,父元素非定位元素,但祖父元素是相对定位,则子元素以祖父元素作为坐标参照系。HTML:
CSS:
重点:父容器高度和子元素line-height一样的数值,内容中的行内元素就会垂直居中。
HTML:
CSS:
重点:给父元素添加一个伪元素::before,让这个伪元素的div高度为100%,这样其他div就可垂直居中了,但div 本身就是块级元素,而vertical-align是行内元素属性,则需要修改为inline-block。
HTML:
CSS:
重点:在父元素中设置相对定位position: relative,子元素设置绝对定位 position: absolute;top和left相对父元素的50%,与其搭配的 transformse: translate(-50% , -50%)表示X轴和Y轴方向水平居中。
HTML:
CSS:
重点:子元素绝对定位position:absolute,父元素相对定位position: relative,将上下左右的数值都设置为0,同时margin:auto。绝对定位是会脱离文档流的,这点要注意一下。
HTML:
CSS:
重点:给父元素设置display: flex布局,水平居中 justify-content: center,垂直居中align-items: center。
HTML:
CSS:
重点:父元素position定位为relative,子元素position定位为absolute。水平居中同理。calc居中要减多少要结合到自己的宽高设置多少再进行计算。
HTML:
CSS:
重点:将父元素设置display:table,子元素table-cell会自动撑满父元素。组合 display: table-cell、vertical-align: middle、text-align: center完成水平垂直居中。