【发布时间】:2018-06-20 23:35:59
【问题描述】:
背景
我有一个包含两列的 div。在 A 列中,将有一个带有“关于我”部分的 div。这是高度 X。在 B 列中将是地图的另一个图像。这是高度 Y。X 不等于 Y。
我正在制作两列(合并)=100vw。每列定义为50%。
(我可以使用以下数学计算 B 列中地图的高度(在链接的 Jfiddle 中可以更清楚地看到):图像是 350x600px。如果 350px = 50%,则 @987654328 @ = ~171%.171 / 2 = 85.5% 所以下面的代码 sn -p 应该给出正确的变换值:
margin-top: 85.5%;
transform: translateY(-50%);)
目标
我希望将列高调整为最高元素的高度。最高的元素很可能总是在 B 列中。我希望 A 列中的 div 位于页面的中间位置。但是,如果我应该更改顺序并希望在 A 列中放置比在 B 列中更高的东西,那么有一个后备方法会非常好,以便 B 列中的元素重新定位以使其垂直居中。 (但我可以不用它,如果需要,我可以手动完成。)
问题
- 列高不正常。 A 列的高度(以深绿色显示)高于 B 列的高度,尽管 A 中的元素较短。
Jfiddle
http://jsfiddle.net/ubjo1s3y/28/
(带有漂亮明亮的 div 颜色)
代码
css:
.column {
margin: -5px 0px 30px 0px;
float: left;
width: 50%;
height: auto;
background-color: green;
}
.row:after {
background-color: pink;
content: "";
display: table;
clear: both;
height: 0;
}
#aboutmecontainer {
background-color: aqua;
width: 90%;
float: left;
padding: 0px 5% 0px 5%;
margin-top: 85.5%;
transform: translateY(-50%);
}
#facephoto {
background-color: red;
float: left;
width: 130px;
margin: 0px 0px 10px 50%;
transform: translateX(-50%);
}
#aboutmetext {
background-color: yellow;
float: left;
width: 100%;
height: auto;
}
#map {
background-color: yellowgreen;
float: left;
width: 90%;
padding: 0px 5% 0px 5%;
}
html:
<div class="row">
<div class="column">
<!-- container for round face photo -->
<div id="aboutmecontainer">
<div id="facephoto">
<!-- photo -->
<img src="http://via.placeholder.com/200x200" alt="Face" style="height: 100%; width: 100%; object-fit: contain;" />
</div>
<!-- container for text underneath face photo -->
<div id="aboutmetext"><h3 style="color: #000000;">About Me</h3><p></p><h5 style="color: #000000;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</h5>
</div>
</div>
</div>
<div class="column">
<!-- div for map to right of "about me" section -->
<div id="map">
<!-- map picture can be edited in photoshop to add new countries -->
<img src="http://via.placeholder.com/350x600" alt="Map" style="width: 100%; height: 100%; object-fit: contain;">
</div>
</div>
</div>
【问题讨论】:
-
添加此 JFiddle 以显示 @jmulder5 给出的正确解决方案 - div 内元素的垂直平移扭曲了列容器的高度。 jsfiddle.net/ubjo1s3y/32
标签: html css multiple-columns