ดังที่เห็นได้ในซอต่อไปนี้ฉันมีสองตัวdiv
ที่มีอยู่ในพ่อแม่div
ที่มี div ขนาดใหญ่เป้าหมายของฉันคือทำให้เด็กเหล่านั้นdiv
มีความสูงเท่ากัน
http://fiddle.jshell.net/y9bM4/
ดังที่เห็นได้ในซอต่อไปนี้ฉันมีสองตัวdiv
ที่มีอยู่ในพ่อแม่div
ที่มี div ขนาดใหญ่เป้าหมายของฉันคือทำให้เด็กเหล่านั้นdiv
มีความสูงเท่ากัน
http://fiddle.jshell.net/y9bM4/
คำตอบ:
การแก้ปัญหาคือการใช้งานdisplay: table-cell
ที่จะนำองค์ประกอบเหล่านั้นแบบอินไลน์แทนการใช้หรือdisplay: inline-block
float: left
div#container {
padding: 20px;
background: #F1F1F1
}
.content {
width: 150px;
background: #ddd;
padding: 10px;
display: table-cell;
vertical-align: top;
}
.text {
font-family: 12px Tahoma, Geneva, sans-serif;
color: #555;
}
<div id="container">
<div class="content">
<h1>Title 1</h1>
<div class="text">Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
<br>Sample Text. Sample Text. Sample Text.
<br>Sample Text.
<br>
</div>
</div>
<div class="content">
<h1>Title 2</h1>
<div class="text">Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.</div>
</div>
</div>
ใช้display: flex
ยืดdiv
s ของคุณ:
div#container {
padding:20px;
background:#F1F1F1;
display: flex;
}
.content {
width:150px;
background:#ddd;
padding:10px;
margin-left: 10px;
}
เพิ่ม CSS ต่อไปนี้:
สำหรับ Div หลัก:
style="display: flex;"
สำหรับ div เด็ก:
style="align-items: stretch;"
stretch
เด็ก ๆ เพื่อให้ดิ้นทำงานให้ฉัน
https://www.youtube.com/watch?v=jV8B24rSN5o
ฉันคิดว่าคุณสามารถใช้การแสดงผลเป็นตารางได้:
.parent { display: grid };
auto
แถวและเซลล์ตามค่าเริ่มต้น มันใช้งานได้ดีกับ IE หากคุณใช้display: -ms-grid
เพื่อหลีกเลี่ยง flexbugs บางตัวตราบใดที่คุณมีลูกเพียงคนเดียว
คุณสามารถทำได้อย่างง่ายดายด้วย jQuery เล็กน้อย
$(document).ready(function(){
var parentHeight = $("#parentDiv").parent().height();
$("#childDiv").height(parentHeight);
});