我似乎无法让图片和文字在主div内垂直对齐。
https://jsfiddle.net/jf2dgh0j/
.image {
width:50%;
height:auto;
float:right;
vertical-align:middle; }
答案 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
来对齐内容,请不要使用float
或position: 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
}
答案 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()相对固定它的位置。它的缺点是它并不总是与古老的浏览器兼容。