右边插图都要在这个div中垂直居中。最开始插图作为img引入,外围div设置一个宽度(32%),里面img自适应的(img设置100%),然后打算尝试用过vertical-align: middle,table-cell,position,flex进行垂直居中,发现都不是理想的效果,最后尝试用background: url(../) no-repeat center;让他居中。发现这个达到自己想要的效果,在此记录一下,希望大家能提供更好的方法。
html代码:
<div class="ui-box">
<div class="box-left">
<p>在前端开发中,经常接触到一些文字图片环绕的布局,或者文字和插图左右布局的场景,
正好此前在移动端开发中,碰到有一个这样的需求,左边文字是不定字数的,右边是一个插图,不管左边文字是多少,
右边插图都要在这个div中垂直居中。最开始插图作为img引入,外围div设置一个宽度(32%),里面img自适应的(img设置100%),然后打算尝试用过vertical-align: middle,table-cell,position,flex进行垂直居中,发现都不是理想的效果,最后尝试用background: url(../) no-repeat center;让他居中
</p>
</div>
<div class="box-right"></div>
</div>
css代码:首先使用display: box弹性盒子来左右布局,左右两边我是使用百分比来设置适应宽度,然后右边盒子使用background: url(images/pic.png) no-repeat center; background-size: contain;来自适应设置背景。加min-height: 150px;是为了ui-box有一个高度保证,以免影响视觉美观。
body{
max-width:720px;
margin: 0 auto;
background:#f5f5f5;
font-family:"Microsoft Yahei";
font-size: 14px;
}
.ui-box{
height: auto;
overflow: hidden;
background: #27B7B8;
color: #fff;
padding: 15px;
display: -webkit-box;
display: box;
min-height: 150px;
}
.ui-box .box-left{
width: 65%;
-webkit-box-flex:1;
box-flex:1;
margin-right: 3%;
}
.ui-box .box-right{
width: 32%;
background: url(images/pic.png) no-repeat center;
background-size: contain;
}
效果图如下:
