2015-04-06 34 views
33

Tôi có một flexbox trái-phải:Hàng Flexbox: Làm cách nào để kéo dài trẻ em để lấp đầy trục chéo?

.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>

Vấn đề là con phải là không hành xử một cách đáp ứng. Để cụ thể, tôi muốn nó lấp đầy chiều cao của trình bao bọc. Làm thế nào để thực hiện điều này?

Cảm ơn, Debbie

+0

_Tôi muốn nó lấp đầy chiều cao của wrapper_ - ý của bạn là chiều rộng *** của trình bao bọc? –

+0

yea, chiều cao của wrapper không được điền vào safari vì một số lý do ... chrome và firefox làm điều này độc đáo bằng cách thiết lập chiều cao: '100%' ở trẻ em – Pencilcheck

Trả lời

51
  • Những đứa trẻ của một container hàng-flexbox tự động lấp đầy không gian dọc của container.

  • Chỉ định flex: 1; cho một đứa trẻ nếu bạn muốn nó để lấp đầy khoảng trống ngang còn lại:

.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>

  • Chỉ định flex: 1; cho cả trẻ em nếu bạn muốn họ để lấp đầy số lượng bằng nhau của không gian ngang:

.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>

+4

['flex'] (https: //developer.mozilla .org/en-US/docs/Web/CSS/flex) là tài sản viết tắt của ['flex-grow'] (https://developer.mozilla.org/en-US/docs/Web/CSS/flex- phát triển), ['flex-shrink'] (https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink) và [' flex-base'] (https: // nhà phát triển .mozilla.org/en-US/docs/Web/CSS/flex-base). 'flex: 1;' tương đương với 'flex-grow: 1;'. –

0

nó điền vào chiều cao của wrapper! tôi đã thử nghiệm nó trong Chrome và Firefox và không có vấn đề gì. có thể bạn đã đơn giản hóa mã của mình quá nhiều. bạn có thể kiểm tra điều này bằng cách đặt background-color cho trẻ em hoặc đặt align-items: center trong trình bao bọc.

Các vấn đề liên quan