当前位置: 首页 > Web前端 > CSS

css实现水平和垂直居中

时间:2023-03-31 01:48:15 CSS

.warp{position:relative;}.box{宽度:200px;高度:100px;位置:绝对;顶部:50%;左:50%;填充:0;左边距:-100px;/*(width+padding)/2*/margin-top:-50px;/*(height+padding)/2*/}纯CSS实现水平和垂直居中最近面试问了这个问题,我只回答了2种。感觉面试官不满意。特意总结了几种开发中的实用方法。方法分享给大家。一、需要知道宽高方案1、绝对定位+负边距.warp{position:relative;}.box{宽度:200px;高度:100px;位置:绝对;顶部:50%;左:50%;填充:0;左边距:-100px;/*(width+padding)/2*/margin-top:-50px;/*(height+padding)/2*/}

因为margin/padding的百分比值是指父元素的宽度,不能使用百分比。2.无需知道宽高方案1.绝对定位+margin:auto.warp{position:relative;}.box{宽度:200px;高度:100px;位置:绝对;填充:0;保证金:自动;左:0;右:0;顶部:0;底部:0;}
使用margin:auto自动计算实现2.绝对定位+transform.warp{位置:相对;}.box{宽度:200px;高度:100px;位置:绝对;顶部:50%;左:50%;-webkit-transform:翻译(-50%,-50%);-ms-transform:翻译(-50%,-50%);转换:翻译(-50%,-50%);}使用translate的百分比相对于该元素的width/height来实现3.flex.warp{显示:-webkit-flex;显示:-moz-box;显示:-ms-flexbox;显示:-webkit-box;显示:弹性;-webkit-box-align:居中;-moz-box-align:居中;项目:中心;对齐项目:居中;-webkit-box-pack:中心;-moz-box-pack:中心;-ms-flex-pack:中心;-webkit-justify-content:居中;中心;}.box{宽度:200px;高度:100px;}OthersTable-celllayout,inline-blocklayout等在项目中很少用到,我感觉表格布局坑太多,就不描述了。有兴趣的可以自行搜索这篇文章。如有错误,请在评论区提出。终于求4月份的offer啦~~谢谢