水平居中方案
- 行内元素 设置 text-align:center
- 定宽块状元素 设置 左右 margin 值为 auto
- 不定宽块状元素
a:在元素外加入 table 标签(完整的,包括 table、tbody、tr、td),该元素写在 td 内,然后设置 margin 的值为 auto
b:给该元素设置 displa:inine 方法
c:父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:50%
垂直居中设置
- 父元素高度确定的单行文本
设置 height = line-height - 父元素高度确定的多行文本
a:插入 table (插入方法和水平居中一样),然后设置 vertical-align:middle
b:先设置 display:table-cell 再设置 vertical-align:middle
#几种居中方案
1,使用position:absolute
设置left、top、margin-left、margin-top的属性
.one {
position: absolute;
width: 200px;
height: 200px;
top: 50%;
left: 50%;
margin-top: -100px;
margin-left: -100px;
background: red;
}
基本浏览器都能够兼容,不足之处:需要固定宽高。
##2,使用position:fixed
.two {
position: fixed;
width: 180px;
height: 180px;
top: 50%;
left: 50%;
margin-top: -90px;
margin-left: -90px;
background: orange;
}
position:fixed,IE是不支持这个属性的
3,利用position:fixed属性,margin:auto。
.three {
position: fixed;
width: 160px;
height: 160px;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
background: pink;
}
4,利用position:absolute属性,设置top/bottom/right/left
.four {
position: absolute;
width: 140px;
height: 140px;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
background: black;
}
5,利用display:table-cell属性使内容垂直居中
.five {
display: table-cell;
vertical-align: middle;
text-align: center;
width: 120px;
height: 120px;
background: purple;
}
6,最简单的一种使行内元素居中的方法,使用line-height属性
.six {
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
background: gray;
}
这种方法也很实用,比如使文字垂直居中对齐.
7,使用css3的display:-webkit-box属性,再设置-webkit-box-pack:center/-webkit-box-align:center
.seven {
width: 90px;
height: 90px;
display: -webkit-box;
-webkit-box-pack: center;
-webkit-box-align: center;
background: yellow;
color: black;
}
8,使用css3的新属性transform:translate(x,y)属性
.eight {
position: absolute;
width: 80px;
height: 80px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
background: green;
}
这个方法可以不需要设定固定的宽高,在移动端用的会比较多,在移动端css3兼容的比较好
9、最高大上的一种,使用:before元素
.nine {
position: fixed;
display: block;
top: 0;
right: 0;
bottom: 0;
left: 0;
text-align: center;
background: rgba(0, 0, 0, .5);
}
.nine:before {
content: '';
display: inline-block;
vertical-align: middle;
height: 100%;
}
.nine .content {
display: inline-block;
vertical-align: middle;
width: 60px;
height: 60px;
line-height: 60px;
color: red;
background: yellow;
}