วิธีการยืดเด็กเพื่อเติมเต็มข้ามแกน?


148

ฉันมี flexbox ซ้าย - ขวา:

.wrapper {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  height: 70vh;
  min-height: 325px; 
  max-height:570px; 
}
<div class="wrapper">
  <div class="left">Left</div>
  <div class="right">Right</div>
</div>

ปัญหาคือเด็กที่ถูกต้องไม่แสดงพฤติกรรมตอบสนอง เพื่อให้เจาะจงฉันต้องการให้มันเต็มความสูงของกระดาษห่อหุ้ม

จะทำอย่างไรให้สำเร็จ?


มันเติมเต็มความสูงของกระดาษห่อ! ฉันทดสอบใน Chrome และ Firefox แล้วและไม่มีปัญหา บางทีคุณอาจทำให้โค้ดของคุณง่ายขึ้นมากเกินไป คุณสามารถทดสอบได้โดยการตั้งค่าbackground-colorสำหรับเด็กหรือตั้งค่าalign-items: centerในกระดาษห่อหุ้ม
samad montazeri

ใช่แล้วความสูงของกระดาษห่อหุ้มไม่ได้เต็มไปด้วยซาฟารีด้วยเหตุผลบางประการ ... chrome และ firefox ทำสิ่งนี้ได้ดีโดยการตั้งค่าความสูง: '100%' ในเด็ก
Pencilcheck

คำตอบ:


186
  • ลูกของคอนเทนเนอร์ row-flexbox เติมพื้นที่แนวตั้งของคอนเทนเนอร์โดยอัตโนมัติ

  • ระบุflex: 1;สำหรับเด็กถ้าคุณต้องการให้เต็มพื้นที่แนวนอนที่เหลือ:

.wrapper {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  height: 5em;
  background: #ccc;
}
.wrapper > .left
{
  background: #fcc;
}
.wrapper > .right
{
  background: #ccf;
  flex: 1; 
}
<div class="wrapper">
  <div class="left">Left</div>
  <div class="right">Right</div>
</div>

  • ระบุflex: 1;สำหรับเด็กทั้งสองหากคุณต้องการให้พวกเขาเติมพื้นที่แนวนอนในจำนวนเท่ากัน:

.wrapper {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  height: 5em;
  background: #ccc;
}
.wrapper > div 
{
  flex: 1; 
}
.wrapper > .left
{
  background: #fcc;
}
.wrapper > .right
{
  background: #ccf;
}
<div class="wrapper">
  <div class="left">Left</div>
  <div class="right">Right</div>
</div>


40
flexเป็นสถานที่ให้บริการจดชวเลขสำหรับflex-grow, และflex-shrink เทียบเท่ากับ. flex-basisflex: 1;flex-grow: 1;
Rory O'Kane

3
ดูเหมือนว่าalign-items: stretch;ไม่จำเป็นต้อง
แมตต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.