本文共 3117 字,大约阅读时间需要 10 分钟。
方法① :行内元素 (父元素)text-align,(子元素)inline-block
.parent{ text-align: center;} .child{ display: inline-block;}
优点:兼容性好,支持低版本浏览器
缺点:需要同时在父元素和子元素上设置
.child{ width:200px;margin:0 auto;}
优点:兼容性好
缺点:需要指定宽度
前提:用于子元素上,不受float影响
方法③:(子元素)display:table;margin:0 auto;
.child{ display:table;margin:0 auto;}
优点:只需要对自身进行设置
缺点:不兼容IE6和IE7
适用场景:子元素数量多,不方便修改父元素的属性,对浏览器版本要求相对较低时使用
方法④:绝对定位实现 (父元素)position:relative,(子元素)absolute+left+transform(translateX(-50%))
.parent{ position:relative;}/*或者实用margin-left的负值为盒子宽度的一半也可以实现,不过这样就必须知道盒子的宽度,但兼容性好*/.child{ position:absolute;left:50%;transform:translate(-50%);}
方法⑤:flex+justify-content/margin
/*第一种方法*/.parent{ display:flex;justify-content:center;}/*第二种方法*/.parent{ display:flex;}.child{ margin:0 auto;}
第一种方法:
第二种方法:
方法① :单行文本 设置line-height等于父元素高度
.child{ height:20px; line-height:20px}
.child{ display:inline-block; vertical-align:middle}.parent:after{ display:inline-block; vertical-align:middle}
方法③ :块级元素 使用vertical-align的时候,由于对齐的基线是用行高的基线作为标记,故需要设置line-height或设置display:table-cell;
/*第一种方法*/.parent{ display:table-cell;vertical-align:middle;height:20px;}/*第二种方法*/.parent{ display:inline-block;vertical-align:middle;line-height:20px;}
/*第一种方法*/.parent{ display:table}.child{ display:table-cell;vertical-align:middle;}
.parent{ position:relative;}.child{ positon:absolute;top:50%;transform:translate(0,-50%);}
.parent{ display:flex;align-items:center;}
.parent{ position:relative;}.child{ position:absolute;top:50%;left:50%;width:固定;height:固定;margin-top:-0.5*高度;margin-left:-0.5*宽度;}
.parent{ position:relative;}.child{ position:absolute;width:固定;height:固定;top:0;left:0;right:0;bottom:0;margin:auto}
.parent{ display:table-cell;vertical-align:middle;text-align:center;}.child{ display:inline-block;}
方法④:使用绝对定位
.parent{ position:relative;}.child{ position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}
.parent{ display:flex;justify-content:center;align-items:center;}
转载地址:http://tpxlx.baihongyu.com/