Div垂直对齐图像

时间:2013-03-17 19:03:06

标签: css html alignment center

我知道很久以前就已经问了很多次,但我仍然无法完成自己的想法。我查看了各种网站以寻求帮助,例如HereHere以及使用具有垂直对齐,行高等的显示表。

这是我想要完成的事情(我知道我可能需要添加更多div)。文本并不总是不变的,所以我不能只设置填充并用它完成,因为红色和蓝色的文本可能会改变长度。

Image of my divs

这是我目前拥有的简单jsFiddle:http://jsfiddle.net/gP2U8/9/

<div class="container">
    <div class="left">
        <img src="http://www.gadgets-for-men.co.uk/wp-content/themes/revolution_tech-20/images/rss-icon-50.gif" />
        <span>This is text below the image</span>
    </div>
    <div class="right">
        <span>This is text to the right of the image, will usualy contain a lot of text. This is text to the right of the image, will usualy contain a lot of text. This is text to the right of the image, will usualy contain a lot of text. This is text to the right of the image, will usualy contain a lot of text.</span>
    </div>
</div>


.container{
    border: 1px solid black;
    width: 400px;
    height: auto;
    position: relative;
    display: inline-block;
}

.left{
    float:left;
    width: 25%;
}

.right{
     float: right;
    width: 75%;
}

.left, .right{
     margin-top: 25px;
    margin-bottom: 25px;
}

3 个答案:

答案 0 :(得分:2)

你太近了!只需将图片设置为display: block

即可

http://jsfiddle.net/d4DaV/1/

答案 1 :(得分:2)

您可以使用display: tabledisplay: table-cell进行垂直对齐。

请参阅http://jsfiddle.net/d4DaV/3/

不适用于IE6和IE7,但是从IE8向上

答案 2 :(得分:0)

不要使用浮动元素。相反,使用内嵌元素(您可以使用vertical-align样式),与white-space: nowrapfont-size: 0粘合在一起,如 this demo fiddle 所示

标记(未更改):

<div class="container">
    <div class="left"></div>
    <div class="right"></div>
</div>

样式表:

.container{
    border: 1px solid black;
    width: 400px;
    padding: 25px 0;
    white-space: nowrap;
    font-size: 0;
}
.left, .right {
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    font-size: 12pt;
}
.left{
    width: 25%;
}
.right{
    width: 75%;
}
img {
    display: block;
}