大小不固定的图片、多行文字的水平垂直居中实现方法

2020-05-06 09:00:39易采站长站整理

这里附上效果截图(取自IE6浏览器):

table-cell和文字大小实现的图片垂直居中显示

table-cell和文字大小实现的图片垂直居中显示

图片和文字比不上直接的效果显示,所以建议您狠狠地点击这里。

③ display:inline-block和文字大小控制居中
此方法的灵感来自于Google picasa相册的图片显示,代码相当简洁,是个成本很低,效果惊人的方法。适用于多图显示的情况。基本上用裸标签就实现了想要达到的效果。一般而言,图片阵列排列显示的时候,外面都有一个a标签的,起到链接的作用。而本处的方法就只要这一个a标签就足以实现图片垂直且居中的显示效果。其关键是将a标签默认的inline属性设置为inline-block属性,这样a标签既支持宽度,又支持vertical-align:middle,配合img的vertical-align:middle就可以实现图片的水平垂直居中显示了。
css代码:
a标签:

复制代码a{display:inline-block; width:1.2em; font-size:128px; text-align:center; vertical-align:middle;}

img标签:

复制代码img{vertical-align:middle;}

就这么简单,就实现了图片的垂直居中效果。下截图为证:

最精简的实现图片水平垂直居中显示的方法

最精简的实现图片水平垂直居中显示的方法

另外补充说明的:img外的标签需是a标签或span这类inline属性的标签,div标签也可以,但是css代码多些: display:inline-block;*display:inline; zoom:1; IE下要先变成inline属性,再转变成类似于inline-block的属性,原因讲起来又是一篇长长的文章,放着。

建议您狠狠地点击这里直接查看源代码

④ 透明图片拉伸对齐实现垂直居中显示
这个方法是我自认为相当不错的一个方法,说实话,想到这个方法是自然而然的,经过试验发现真的很管用。对比淘宝团队的方法,发现优势很多,基本上淘宝的table-cell+font-size方法会带来的些问题都避免了。
非常简单,非常易懂,出错率低,上手方便,兼容性上佳!

原理简述:
一句话,将要显示的图片与一张透明的高度100%,宽度1像素的透明图片vertical-align:middle对齐。
其核心原理其实与利用font-size大小实现IE下图片垂直居中是一致的。将font-size设置得很大,目的是撑开IE下默认文字空间的高度,其性质类似于空格,然后通过vertical-align:middle属性让图片与这个高高的空白空格空间垂直居中对齐;而这里将这个看不见的文字空间实例成一张透明的gif图片,高度可以轻松设置为外部标签的高度,宽度压缩至最小,然后通过vertical-align:middle对齐,就实现效果了,由于影响布局的差不多就vertical-align:middle这一个属性,所以出现兼容性问题的可能性比table-cell的方法要低得多。