图片在DIV中居中显示的方法

老白 3周前 50浏览 0评论

问:如何让图片在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;}

运行结果如下:

 图片在DIV中居中显示的方法 CSS学习

 

 


释义:

图片的尺寸为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样式没有支持垂直居中属性之前,最好的解决办法就是用表格去做。

 

当然,实现一个效果有多种途径,可谓条条大路通罗马,还有很多方法和途径能实现该效果,只要你肯于钻研。


发表评论