在前端开发制作中,图片垂直居中对齐是很常见的,有些是固定高度,有些没有固定高度,本文分享我用的四种方法,希望对你有所启发。
<div>
<img src="http://dummyimage.com/200x200/f66/"/>
</div>
.img {
width:300px;
height:300px;
margin:20px auto;
background:#00f;
}
利用图片相对于外层浮动,加上margin:auto.
<div>
<img src="http://dummyimage.com/200x200/f66/"/>
</div>
.img1 {
position:relative;
}
.img1 img {
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
}
利用flexbox里面的垂直居中属性:align-items:center(垂直居中)和justify-content:center(水平居中);
<div>
<img src="http://dummyimage.com/200x200/f66/"/>
</div>
.img2 {
display:-webkit-box;
display:-ms-flexbox;
display:flex-box;
display:flex;
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
-webkit-box-pack:center;
-ms-flex-pack:center;
justify-content:center;
text-align:center;
}
利用display:table-cell+图片vertical-align:middle
<div>
<span><img src="http://dummyimage.com/200x200/f66/"/></span>
</div>
.img3 .icenter {
display:table-cell;
vertical-align:middle;
text-align:center;
height:300px;
width:300px
}
.img3 img {
vertical-align:middle;
display:inline-block
}
兼容性较好,支持IE浏览器
<div>
<img src="http://dummyimage.com/200x200/f66/"/>
<i></i>
</div>
.img4 {
text-align:center
}
.img4 img {
vertical-align:middle
}
.img4 .iblock {
display:inline-block;
height:100%;
width:0;
vertical-align:middle
}
使用flex布局是目前最好的解决办法,子元素布局还是按照1、2、3、4、5这样的顺序进行布局,浏览器器在渲染时会自动反转过来,并且滚动条也会反转过来,即自动定位到最底部。但是IE10目前为止还不支持~,所以在我做的这个项目中是用不了了
从效果图可以看到,除了要在块级元素加text-align:justify样式外,还需要在里面加一个空的span元素,并应用样式。另外,对于中文还必须用空格隔开汉字,否则也没有两端对齐的效果。英文每个单词都有空格隔开,所以没问题。
baseline:字符x的底部,x-height: 字母x的高度,vertical-aling设置为middle的时候,对齐的是baseline往上1/2的x-height,所以vertical-aling设置为middle不是整正的居中对齐
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!