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结构1.position
这样就可以看到子元素在父元素居中啦!
2. flex
小结:
第一种方法 适用于有固定宽高的子元素 但是不会受制于浏览器的兼容性
第二种方法 在子元素不固定宽高也适用 但是受制于浏览器的兼容性 不过现在主流的浏览器都支持flex了
ps:浏览器兼容性查验推荐 https://caniuse.com/
盒子居中是相对于父元素来说的,因此我们让盒子居中时,往往采用嵌套的方式,让父盒子套着子盒子 。在父子盒子嵌套下,让子盒子居中的方式:
第一种方法:position, 使用定位,子绝父相,再left:50%,margin-left:负的盒子宽度的一半,这是最常用的方法
第二种方法:flex,弹性布局,让子盒子居中,但是样式要写在父盒子中,display:flex,just-content:center
第三种方法:在position基础上,把margin-left换成CSS3中的transform:translate(-50px)
第四种方法:在position的基础上,只保留子绝父相,然后在子盒子中加上margin:auto、left:0、right:0;