日期:2014-05-16  浏览次数:20585 次

为什么这样就能使图片在div里垂直居中
为什么这样就能使图片在div里垂直居中

<html>
    <style>
    #image{ 
        width:500px;
        height:500px;
        background:#fff000;
        text-align: center;
        overflow: hidden;
    }
    #image img {
    vertical-align: middle;
   }
    #block {
        width: 0px;
        height: 100%;
    }    
    </style>
    <body>
        <div id="image">
            <img src="http://www.mm21.cn/dimg6/qqtu/201105/20110507234620615.jpg"/>
             <img src="" id="block"/>
        </div>
    </body>
</html>

------解决方案--------------------
以上方式是无法让图片居中的,基于表格布局的垂直居中方式,可以设置css display:table-cell
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<style>
    #image{ 
        width:500px;
        height:500px;
        background:#fff000;
        text-align: center;
vertical-align: middle;
display:table-cell;
    }
    #image img {
    vertical-align: middle;
   }
    #block {
        width: 0px;
        height: 100%;
background:red;
    }    
    </style>
    <body>
        <div id="image">
            <img src="1.jpg"/>
            <span id="block"></span>
        </div>
    </body>
</html>

------解决方案--------------------
vertical-align: middle;使容器内的元素尽可能的排列成一行显示,如下

   x 
xx x xxx
   x


但容器给了个高度,所以全部的子元素会在排成一行的同时,整体呈现一个align="top"的状态。

这个时候,给定一个元素,让它的高度与容器高度一致,so...


你可以试试,把 #block 样式内的 height 改成 auto, 50%, 200%, 看看会是什么样子