我真的可以不使用 table 标记来让两个元素具有相同的高度吗?
Can I really not use table markup to get two elements to have equal height?
好的,所以我知道使用 table
进行布局非常不合时宜。但是我需要做一个有两个并排元素的布局,一个具有通常的高度,如果它有更高的内容可以增加,另一个包含一个图像。如果第一个长高,我希望有图像的那个长得与它的高度相匹配。
这是我可以用旧 table
轻松实现的东西。我怎样才能用 div 做到这一点?
这是我正在尝试做的事情:
.body {
width: 748px;
margin: 20px auto;
}
.breaker {
margin: 20px 0;
outline: 1px solid purple;
}
.poll {
background: pink;
width: 248px;
height: 250px;
}
div.poll {
float: left;
}
.story {
float: right;
width: 500px;
background-size: cover;
}
<div class="body">
<table class="breaker">
<tr>
<!-- This will have a variable height depending on content -->
<td class="poll"></td>
<!-- The height of this should match the height of .poll -->
<td style="width:500px;background-image:url(http://lorempixel.com/output/animals-q-c-600-200-1.jpg);background-size:cover;">
</td>
</tr>
</table>
<div class="breaker">
<!-- This will have a variable height depending on content -->
<div class="poll"></div>
<!-- The height of this should match the height of .poll -->
<div class="story" style="background-image:url(http://lorempixel.com/output/animals-q-c-600-200-1.jpg)">
</div>
</div>
</div>
对两者应用 display: table-cell
并删除 float
。
div.poll {
display: table-cell;
/* other styles */
}
.story {
display:table-cell;
/* other styles */
}
这是一个 jQuery 的回答,但我实际上是昨天写的,所以我知道它有效:
function setToTargetHeight(obj1, obj2){
var targetHeight = $(obj1).innerHeight();
$(obj2).css('height', targetHeight);
}
所以在使用中是这样的:
setToTargetHeight('#theTextDiv','#theImageDiv');
这个函数的命名很尴尬,所以如果有人对如何命名这个函数有任何建议,我们将不胜感激。
好的,所以我知道使用 table
进行布局非常不合时宜。但是我需要做一个有两个并排元素的布局,一个具有通常的高度,如果它有更高的内容可以增加,另一个包含一个图像。如果第一个长高,我希望有图像的那个长得与它的高度相匹配。
这是我可以用旧 table
轻松实现的东西。我怎样才能用 div 做到这一点?
这是我正在尝试做的事情:
.body {
width: 748px;
margin: 20px auto;
}
.breaker {
margin: 20px 0;
outline: 1px solid purple;
}
.poll {
background: pink;
width: 248px;
height: 250px;
}
div.poll {
float: left;
}
.story {
float: right;
width: 500px;
background-size: cover;
}
<div class="body">
<table class="breaker">
<tr>
<!-- This will have a variable height depending on content -->
<td class="poll"></td>
<!-- The height of this should match the height of .poll -->
<td style="width:500px;background-image:url(http://lorempixel.com/output/animals-q-c-600-200-1.jpg);background-size:cover;">
</td>
</tr>
</table>
<div class="breaker">
<!-- This will have a variable height depending on content -->
<div class="poll"></div>
<!-- The height of this should match the height of .poll -->
<div class="story" style="background-image:url(http://lorempixel.com/output/animals-q-c-600-200-1.jpg)">
</div>
</div>
</div>
对两者应用 display: table-cell
并删除 float
。
div.poll {
display: table-cell;
/* other styles */
}
.story {
display:table-cell;
/* other styles */
}
这是一个 jQuery 的回答,但我实际上是昨天写的,所以我知道它有效:
function setToTargetHeight(obj1, obj2){
var targetHeight = $(obj1).innerHeight();
$(obj2).css('height', targetHeight);
}
所以在使用中是这样的:
setToTargetHeight('#theTextDiv','#theImageDiv');
这个函数的命名很尴尬,所以如果有人对如何命名这个函数有任何建议,我们将不胜感激。