标签:
原文链接 : http://blog.lmlphp.com/archives/86/The_front-end_technology_pure_CSS_to_achieve_image_vertically 来自 : LMLPHP后院
让 图片实现水平居中比较简单,只需要在父级容器中添加属性 text-align 为 center 即可。使用纯 CSS 实现图片的垂直居中,可以将图片包裹容器的 display 属性设置为 table-cell,然后加上 vertical-align: middle 就好了 。table-cell 的显示效果同 table 是一样的,兼容性还不错,所以直接使用 table 来包裹图片也是同样的效果,个人认为使用 table 会更好一些,如果 DIV 显示成 table-cell 是很难控制边距的。
除了完成了上面的事情外,图片本身也是需要做一些处理的,一般要居中显示的图片的大小和比例都是不一致的。这样的情况下,我们需要去除图片标签本身自带的 width 和 height 属性,然后设置 max-width 和 max-height 属性即可。
除了使用 CSS 实现图片的居中显示,也可以根据图片的高度和宽度属性以及显示区域的大小,然后计算出图片的 margin-top 属性的值得到正常的偏移位置。这样的方法比较麻烦,毕竟要对每个图片进行计算,并且很难保证图片宽高属性的正确性,可能会导致图片变形。
当一个网站的价值越高时,需求也就越多,仅仅通过居中图片不一定给人好的视觉体验。比如 QQ 空间就专门对图片进行了显示优化处理,如果图片中有人脸的话,在缩略图中会突出人脸部分,这种图像识别技术需要服务端的支持。
下面附上实现图片居中的部分代码:
<style> .imgTab{ border-collapse: collapse; border-spacing: 0; text-align: center; } .imgTab td{ padding: 5px; } .imgWrap { width: 200px; } .imgWrap img{ max-height: 200px; max-width: 200px; } </style> <table class="imgTab"> <tr> <td> <div class="imgWrap"> <img src="" /> </div> </td> </tr> </table>
标签:
原文地址:http://my.oschina.net/hosser/blog/415480