JSFiddle - React, Tailwind, and code Playground
by Alex Liu
HTML
<div class="v-tc">
<div class="vertical">1:table-cell居中</div>
</div>
<div class="v-ib">
<div class="vertical">2:inline-block和vertical-align居中</div>
</div>
<div class="v-rm">
<div class="vertical">3:relative和absolute居中</div>
</div>
<div class="v-ra">
<span>4:固定高度居中(图片相当于指定了高度)</span>
<img class="vertical" src="http://img.bizhi.sogou.com/images/2013/01/31/330620.jpg" width="100" height="67" />
<!-- <div class="vertical">
</div> -->
</div>
<div class="v-tr">
<div class="vertical">5:translateY居中</div>
</div>
<!-- <div class="v-tr2">
<div class="vertical">
10: translateY居中2
</div>
</div> -->
<div class="v-f">
<div class="vertical">6:flex居中</div>
</div>
<div class="v-f2">
<div class="vertical">7:flex居中2</div>
</div>
<div class="v-ib2">
<div class="vertical">8:inline-block居中</div>
</div>
<div class="v-p">
<a class="vertical">9:单行padding居中</a>
</div>
<div class="v-bg">
10:背景居中
</div>
SCSS
[class^=v-]{
height: 200px;
border: 1px solid blueviolet;
margin-bottom: 50px;
}
.v-tc{
display: table;
}
.v-tc .vertical{
display: table-cell;
vertical-align: middle;
}
.v-ib:before{
content: '';
font-size: 0;
display: inline-block;
height: 100%;
vertical-align: middle;
}
.v-ib .vertical{
display: inline-block;
}
.v-rm{
position: relative;
}
.v-rm .vertical{
position: absolute;
top: 50%;
height: 50px;
margin-top: -25px;
}
.v-ra{
position: relative;
}
.v-ra .vertical{
position: absolute;
left:0;
top:0;
right:0;
bottom:0;
margin: auto;
}
.v-tr{
}
.v-tr .vertical{
position: relative;
top: 50%;
transform:translateY(-50%);
}
.v-f{
display: flex;
align-items: center;
}
.v-ib2{
line-height: 200px;
}
.v-ib2 .vertical{
line-height: normal;
display: inline-block;
vertical-align: middle;
}
.v-p{
height: auto;
padding: 50px;
}
.v-f2{
display: flex;
flex-direction:column;
justify-content:center;
}
/* .v-tr2 .vertical{
margin-top: 50%;
transform: translateY(-50%)
} */
.v-bg{
background: url("http://img.bizhi.sogou.com/images/2013/01/31/330620.jpg") no-repeat center/100px;
}