如何设置一个 div 与另一个 div 具有相同的高度? [复制]

Posted

技术标签:

【中文标题】如何设置一个 div 与另一个 div 具有相同的高度? [复制]【英文标题】:How to set that one div has got the same height that another one? [duplicate] 【发布时间】:2013-04-04 03:11:07 【问题描述】:

有如下简单结构:

<div id="container">
   <div id="header">...</div>
   <div id="menu">...</div>
   <div id="content">...</div>
   <div id="footer">...</div>
</div>

我需要菜单和内容具有相同的高度,但我不能设置为常量。我将这两个项目的“最小高度”设置为“600px”,但现在“内容”超过 600 像素,但“菜单”有 600 像素。我该如何解决?

【问题讨论】:

这是本书中最古老的问题之一。发帖前请先搜索。例如How to Force Child Div to 100% of Parent's Div Without Specifying Parent's Height? 我搜索但我什么都没有 恐怕没有 javascript/jQuery 就无法做到这一点(如果你想让 menucontent 垂直堆叠)。 @MiljanPuzović 当然可以:codepen.io/cimmanon/pen/JrGLm @cimmanon 我的意思是如果他想设置在布局中垂直堆叠的元素的相等高度(一个在另一个之上),而不是并排。 【参考方案1】:

如果你对IE6和IE7不太关心,最简单的答案就是设置

display: table-cell;

在您的每一列。 只需检查 http://ie7nomore.com/css2only/table-layout/ 即可了解此纯 CSS2.1 解决方案(两列都是 contenteditable,因此您可以轻松地在一个和/或另一列中添加行和文本行) 不,它不是“使用表格”,有些人可能会说:CSS 属性 displaytable 值与 html 元素 table 的呈现方式相同,但它仍然是 div 的语义(即没有)或它应用于的任何元素;)

然后对于 IE6 和 IE7,您可以使用条件 cmets 进行简单的回退(例如将背景应用到其中一列,如果另一列在某些页面中较长...没关系,忘记它,它是旧的 IE 和您的文本仍然可读)

另一种方法(视觉技巧)是faux-columns

的技术

【讨论】:

演示和一些代码怎么样?比试图描述该技术效果更好。【参考方案2】:

我使用了 display: inline-block,这是你要找的吗?

http://jsfiddle.net/SMxRs/1/

#header, #menu, #content, #footer 
 width: 600px;
 height: 500px;
 background: #ccc;
 padding-left: 10px;
 display: inline-block;

#container 
width: 2500px;
 

【讨论】:

以上是关于如何设置一个 div 与另一个 div 具有相同的高度? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使容器DIV内的所有兄弟DIV具有相同的高度?

拖动和调整 div 与另一个 div 重叠

如何将多个 div 设置为特定目标位置的动画?

影响 div:hover 与另一个 div [重复]

如何定位具有相同边距的 div 左、右和上

如何使用jQuery在某些特定div中选择具有相同名称的所有元素[重复]