css水平垂直居中vertical-align
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
css⽔平垂直居中vertical-align 前⾔:这是笔者学习之后⾃⼰的理解与整理。
如果有错误或者疑问的地⽅,请⼤家指正,我会持续更新!
position定位 + margin负值
绝对定位 + 4个⽅向全部`0px` + `margin:auto` 可以做到基于⽗容器⽔平垂直居中。
绝对定位 + 左50% + margin-left:宽度⼀半的负值,可以做到⽔平居中,右也可以。
绝对定位 + 上50% + margin-top:⾼度⼀半的负值,可以做到垂直居中,底部也可以。
<style type="text/css">
* {
padding: 0;
margin: 0;
}
.wrapper {
width: 500px;
height: 500px;
background: #f90;
left: 0;
right: 0;
top: 0;
bottom: 0;
position: absolute;
margin: auto;
/*绝对定位 + 4个⽅向全部0px + margin:auto 可以做到基于⽗容器⽔平垂居中*/
/*如果只需要垂直居中,那可以把left和right删掉,并且⽔平居中的⽅法也很多*/
}
.content {
width: 100px;
height: 200px;
background: #0f8;
position: absolute;
/*position: absolute基于第⼀个不是position:static的⽗级元素定位*/
left: 50%;
top: 50%;
margin-left: -50px;
margin-top: -100px;
/*绝对定位 + 左50% + margin左:宽度⼀半的负值可以做到⽔平居中右也可以*/
/*绝对定位 + 上50% + margin上:⾼度⼀半的负值可以做到垂直居中底部也可以*/
}
</style>
<div class="wrapper">
<span class="content"></span>
</div>
position定位 + transform:translate(-50%,-50%)
<style type="text/css">
* {
}
.wrapper {
width: 500px;
height: 500px;
background: #f90;
left: 0;
right: 0;
top: 0;
bottom: 0;
position: absolute;
margin: auto;
/*绝对定位 + 4个⽅向全部0px + margin:auto 可以做到基于⽗容器⽔平垂居中*/
/*如果只需要垂直居中,那可以把left和right删掉,并且⽔平居中的⽅法也很多*/
}
.content {
width: 100px;
height: 200px;
background: #0f8;
position: absolute;
/*position: absolute基于第⼀个不是position:static的⽗级元素定位*/
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
/*transform变化、使...变形、转换;transform属性应⽤于元素的2D或3D转换。
这个属性允许你将元素移动,旋转,缩放,倾斜*/ /*translate平移,是transform的属性值的⼀部分*/
/*transition过渡、转变;可多个样式的变换效果*/
}
</style>
<div class="wrapper">
<span class="content"></span>
</div>
可以⽤`vertical-align:middle`,但是这个属性只有在`inline-block`类型(`inline`也有影响)的元素⾝上起作⽤。
⽅法⼀:图⽚`vertical-align:middle` + ⽗元素的`height`与`line-height`⼀致
<style type="text/css">
* {
padding: 0;
margin: 0;
}
.wrapper {
height: 300px;
line-height: 300px;
width: 300px;
margin: 100px auto;
background: #f90;
text-align: center;
}
.wrapper img {
width: 150px;
vertical-align: middle;
}
</style>
<div class="wrapper">
<img src="images/1.jpg" alt="美⼥" title="美⼥"/>
</div>
⽅法⼆:⽗元素设置`display:table-cell和vertical-align`
<style type="text/css">
* {
padding: 0;
margin: 0;
}
.wrapper {
background: #f90;
text-align: center;
vertical-align: middle;
display: table-cell;
}
.wrapper img {
width: 150px;
}
</style>
<div class="wrapper">
<img src="images/1.jpg" alt="美⼥" title="美⼥"/> </div>。