《图片在DIV中居中显示的方法》正文开始,本次阅读大概5分钟。
问:如何让图片在DIV中水平和垂直两个方向都居中?(注意这里的图片非用作背景)
关于该问题的解决方法如下:
方法一:
思路:利用text-align属性将图片水平居中,然后设置padding-top的值使其垂直居中。
结构如下:
div
img src=images/tt.gif width=150 height=100 /
/div
CSS样式如下:
div {width:300px; height:150px; background-color:#CCC; border:#000 1px solid; text-align:center; padding-top:50px;}
运行结果如下:
释义:
图片的尺寸为150x100px,DIV的大小为300x200px;
background-color:#CCC; border:#000 1px solid;为DIV加个边框和背景色,便于观察效果。
text-align:center,实现图片的水平居中;padding-top:50px,50px这个数值是经过计算得到的,padding-top的值具体算法如下:(DIV的高度 – 图片的高度)/2,但这里要注意,根据盒模型原理,我们还要将DIV原来的高度200减去padding-top的值,这样显示的才是正确的,否则DIV会变高。
方法二:
思路:只用padding属性,通过计算求得居中
结构代码同上;
CSS样式如下:
div {width:225px; height:150px; background-color:#eee; border:#000 1px solid; padding-top:50px; padding-left:75px;}
备注:这里DIV的宽高计算都遵循盒模型原理,计算方法同上。
方法三:
思路:
利用图片的margin属性将图片水平居中,利用DIV的padding属性将图片垂直居中。
结构代码同上;
CSS代码如下:
div {width:300px; height:150px; background-color:#eee; padding-top:50px; border:#000 1px solid;}
img {display:block; margin:0 auto;}
备注:
Img是内联元素,要设置其margin属性使其居中,就要将其转换为块元素display:block;然后利用margin:0 auto;实现图片的水平居中;(有的设计师为图片再加个div标签,然后通过div标签的margin实现居中,也可以,不过,在结构中就又多了对div,相对麻烦点)至于垂直居中的方法和前面的都一样,就不再重述。
以上方法都是有前提的,就是必须知道DIV与图片的尺寸,否则无法完成垂直居中的效果;如我们不知道图片的尺寸又该如何?其实在CSS样式没有支持垂直居中属性之前,最好的解决办法就是用表格去做。
当然,实现一个效果有多种途径,可谓条条大路通罗马,还有很多方法和途径能实现该效果,只要你肯于钻研。