水平居中
1.行内元素水平居中
使用text-align
<div><span>居中</span></div>
div{text-align:center;}
2.已知宽度块级元素水平居中
使用margin:0 auto;
<div></div>
div{width:200px;height:25px;background-color:red;margin:0 auto;}
3.未知宽度块级元素水平居中
a.table方式
<table>
<tbody>
<tr>
<td><div>居中</div></td>
</tr>
</tbody>
</table>
table{margin:0 auto;}
b.块级元素转为行内元素
<div><p>居中</p></div>
p{display:inline-block;}
div{text-align:center;}
c.使用相对定位
<div><p>居中</p><p>居中</p><p>居中</p></div>
div{float:left;position:relative;left:50%;}
p{float:left;position:relative;left:-50%;}
d.flex布局
<div><p>居中</p></div>
div{display:flex;justify-content:center;}
垂直居中
1.父元素高度不确定的文本、图片、块级元素的竖直居中
父元素高度不确定,高度由内容撑开,高度等于行高。
可设置padding-top和padding-bottom的值相等来撑开内容与父元素的边距。对每一个子元素同时设置vertical-align:middle;
2.父元素高度确定的单行文本竖直居中
设置父元素line-height等于height即可。对每一个子元素同时设置vertical-align:middle;3.父元素高度确定的多行文本竖直居中
a.使用table布局,display:table-cell;vertical-align:middle; 存在浏览器兼容问题。