【发布时间】:2015-09-30 22:13:39
【问题描述】:
我无法匹配父 div 中 2 个 div 的高度。我很难向我解释我是在 Jsfiddle 上做到的。
基本上,我想做的是匹配高度,无论哪个更长。我已经尝试将height:100%; 放在两个 em 上,但仍然不起作用。
谢谢!
【问题讨论】:
我无法匹配父 div 中 2 个 div 的高度。我很难向我解释我是在 Jsfiddle 上做到的。
基本上,我想做的是匹配高度,无论哪个更长。我已经尝试将height:100%; 放在两个 em 上,但仍然不起作用。
谢谢!
【问题讨论】:
【讨论】:
table-cell 可能会以其他方式影响 div 样式,因此该解决方案应与其他 CSS 规则隔离,以便在您以后遇到神秘问题时轻松禁用。
我知道这可能不是最优雅或最流行的答案,但一种非常简单的方法是使用<table> 方法,其中两个单元格位于一行中。易于维护,跨浏览器工作等。
【讨论】:
桌子很丑。我还会考虑为您的每个项目使用 flexbox 的魔力。唯一的问题是您是否使用 Bootstrap 或其他框架提取动态数据。然后在每个 x 元素中使用 'clearfix' 类会更有意义,否则您将为自己编写更多代码。然后再一次,你总是可以只使用 JavaScript 来确定最高元素并在你的 div 中复制它。
<div id="parent">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>
#parent { display: flex; align-items: stretch; }
#child { display: flex;}
【讨论】:
添加margin-bottom:-1000px和padding-bottom:1000px,容器div应该有overflow:hidden
.post {
width:685px;
margin:0 0 15px 0;
float:left;
background:#EEE;
overflow:hidden;
}
.tags {
width:250px;
height:100%;
padding:0 5px 0 5px;
float:left;
background:#273a47;
color:#FFF;
padding-bottom: 1000px;
margin-bottom:-1000px;
}
.content {
width:415px;
float:right;
padding:0 5px 0 5px;
background:#069;
color:#FFF;
padding-bottom: 1000px;
margin-bottom:-1000px;
}
【讨论】:
使用 CSS3 实现这一点的正确方法是使用 flexible boxes。对于您的示例,添加以下内容可达到预期结果:
.post {
display: flex;
}
这是您的fiddle,上面有更新。
【讨论】:
display:table-cell 是“hacky”或“神秘”。或者说 IE9 和 IE19 不是主流浏览器。弹性盒子将来会很有趣,但它们现在不可用。