问题 根据具有更多内容的div动态更改多个div的高度[重复]


这个问题在这里已有答案:


10137
2018-02-05 13:54


起源

两个upvotes帖子没有任何问题....奇怪。 - Jai
这是一个糟糕的问题。但是,如果我理解得很好,那么你的问题就是浮动: .code { float: right; } 它崩溃你的布局,蓝色边框不适合 - Marcos Pérez Gude
请详细说明这里有什么问题? - divy3993
也许这就是你需要的: codepen.io/anon/pen/zrmqGw 。请避免浮动到布局。我们在2016年,布局技术需要消失。浮动是浮动元素,而不是布局 - Marcos Pérez Gude
@Jai我知道你想说的是什么,但很明显,OP已经把时间放在问题本身上,值得投票。小提琴也显示问题,图片是OP想要的:) - A1rPun


答案:


使用flexbox。

如果你改为 display: flex; 在 .group-section 他们会填补他们的空间。 由于默认值,项目将作为默认值拉伸,然后伸展。 您还需要删除代码和文档的100%高度,因为这是必要的,并强制小项目保持小。

你可能应该重写css以适应更多的灵活 - “一种方式”。正确使用flexbox后,您无需了解到达的部分数量。

如果您不熟悉flexbox,可以阅读 这个


12
2018-02-05 14:03



这怎么不是有效的解决方案? Flexbox就是为此目的而创建的。 - magnudae
问downvoter。通常,这里的downvoters不会露出他的面孔。这令人沮丧,但这是真的。但是,它不需要flexbox,它与inline-block的行为相同。唯一的问题是混合浮子,OP有它 - Marcos Pérez Gude
谢谢马科斯的回应。我知道,你不需要这里的flexbox,但它可以在类似的情况下提供帮助。 - magnudae
我最初投票,因为问题不清楚,我误解了被问到的问题。由于它是有效的解决方案,因此现在提升它。 - GMchris
我认为正确答案来自@BrianRay。我也误解了这个问题,因为OP没有很好地解释问题和需要什么 - Marcos Pérez Gude


我加了一个 auto-height 对所有需要高度相等的元素进行分类。然后我写了一个小jQuery函数来计算哪个元素是最大的并将它们全部设置为该高度。

function thisHeight(){
    return $(this).height();
}
$('.group-section').each(function(){
    var height = Math.max.apply(Math, $(this).find('.auto-height').map(thisHeight));
    $(this).find('.auto-height').height(height);
});

这是一个 钢笔


4
2018-02-05 14:06



Foundation API只有一个类名: foundation.zurb.com/sites/docs/v/5.5.3/components/... - Marcos Pérez Gude


尝试像flexbox这样简单的东西: -

<div class="flex">
<article>
<p>blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb
</p>
</article>
<article class="third">
<p>blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb blurb
</p>
</article>
</div>

CSS

    .flex {
    display: flex;
    flex-flow: row nowrap;
    width: 400px;
}
article{
  border:1px solid black;
  flex: 2 2 60%;
  width: 60%;
  box-sizing: border-box;
  display: flex;
  flex-flow: row nowrap;
}
article.third{
    flex: 1 1 30%;
    width: 32%;
}

0
2018-02-05 14:20





所以,这里的问题似乎是内部元素或至少其中一些元素 float 左还是右。这很好,但需要清除浮动元素,否则它们将无法与其他元素正确交互。要解决您的问题,我建议将此公共类添加到您的css,并将其应用于容器:

.clearfix:after {
     visibility: hidden;
     display: block;
     font-size: 0;
     content: " ";
     clear: both;
     height: 0;
}

-1
2018-02-05 14:00



你的意思是两个内容容器或外面的容器都涉及他们两个?我试过他们两个 - 不是在同一时间,而且两次都没有用。 - liloka