垂直对齐div

时间:2015-07-19 21:08:53

标签: css alignment

我似乎无法让图片和文字在主div内垂直对齐。

https://jsfiddle.net/jf2dgh0j/

.image {
width:50%;
height:auto;
float:right;
vertical-align:middle; }

4 个答案:

答案 0 :(得分:1)

我不确定为什么你在父div的顶部有200px填充,但以下可能是你想要实现的。

display: table-cell应用于.description-wrap.image子元素。

.work-subwrap {
    width:70%;
    background-color:#C87778;
    margin:0 auto;
    margin-top:30px;
    display:table;
}
.description-wrap, .image {
    display: table-cell;
    width: 50%;
    vertical-align: middle;
    text-align: center;
}
.description-wrap a {
    display: inline-block;
    padding: 10px;
    background-color: white;
}
.image img {
    width:100%;
    vertical-align: top;
}
<div class="work-subwrap">
    <div class="description-wrap">	<a class="project-link" href="#modal1">Maru</a></div>
    <div class="image">
        <img alt="" id="first" src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQdiIK0bVvSbRnegxQPMS6V0nBHFT40j6P6OH-C11pmooy6Duad">
    </div>
</div>

答案 1 :(得分:0)

有些人反对,但说实话,这完全是表格所针对的。您的td只需转到{{1}}即可。修改小提琴使用表而不是下面的div:

https://jsfiddle.net/jjsx2t6e/

我找到了垂直对齐大多数东西,桌子确实是你的朋友,让生活变得更加轻松。

答案 2 :(得分:0)

你有一些不同的造型方法。如果您想使用display: table来对齐内容,请不要使用floatposition: absolute

我不是100%清楚你想要实现的目标,但下面的CSS垂直居中于文本和图像div。如果你希望它们在父div中居中,你也需要调整填充。

.image {
    width: 50%;
    display: table-cell;
    vertical-align: middle;
}
.description-wrap {
    background-color: #fff;
    display: table-cell;
    vertical-align: middle
}

更新了小提琴https://jsfiddle.net/jf2dgh0j/1/

答案 3 :(得分:0)

我不完全确定你的意思&#34;让图像和文字在主div内垂直对齐&#34;。我知道您希望文本和图像都垂直居中。

首先出现在桌子上。 然后在桌子里面有桌子。这应该具有父元素的100%宽度和100%高度。在那里你设置vertical-align:center;属性。带有display:inline-block的table-cell内的每个元素都将对齐。

.work-subwrap {
    width:70%;
    height:500px;
    background-color:#C87778;
    margin:0 auto;
    margin-top:30px;
    position:relative;
    display:table;
}
.image {
    display:table-cell;
    width:100%;
    height:auto;
    vertical-align:middle;
    text-align:center;
}
.description-wrap {
    display:inline-block;
    background-color:#fff;
    position:absolute;
    top:50%;
    left:50%;
    -webkit-transform: translate(-50%,-50%);
    -ms-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
}

.image img {width:50%;}

只要文字/链接没有固定的宽度/高度,我建议使用translate()相对固定它的位置。它的缺点是它并不总是与古老的浏览器兼容。