Có thể lồng các hộp flexbox không? Tôi đã lồng một flexbox ngang trong một flexbox ngang, và một flexbox dọc trong một flexbox dọc. Chỉ ngang trong các công trình ngang trong chrome và không làm việc trong firefox!flexbox CSS3 lồng nhau không hoạt động
tôi đã tạo ra một jsfiddle đây: http://jsfiddle.net/NpkTL/1/
Nhưng đây là html:
<div id="A">
<div id="A1">A1</div>
<div id="A2">
<div id="A2-container">
<div id="A2a">A2a</div>
<div id="A2b">A2b</div>
</div>
</div>
</div>
<div id="B">
<div id="B1">B1</div>
<div id="B2">
<div id="B2-container">
<div id="B2a">B2a</div>
<div id="B2b">B2b</div>
</div>
</div>
</div>
và CSS:
* {
margin: 0;
padding: 0;
font-family: Arial;
}
#A {
position: absolute;
top: 0px;
left: 0px;
background: black;
width: 50%;
height: 100%;
display: -moz-box;
display: -webkit-box;
display: box;
-moz-box-orient: horizontal;
-webkit-box-orient: horizontal;
box-orient: horizontal;
}
#A1 {
background: brown;
width: 100px;
height: 80%;
}
#A2 {
background: orange;
height: 80%;
-moz-box-flex: 1;
-webkit-box-flex: 1;
box-flex: 1;
}
#A2-container {
display: -moz-box;
display: -webkit-box;
display: box;
-moz-box-orient: horizontal;
-webkit-box-orient: horizontal;
box-orient: horizontal;
width: 100%;
height: 100%;
}
#A2a {
background: red;
height: 80%;
-moz-box-flex: 1;
-webkit-box-flex: 1;
box-flex: 1;
}
#A2b {
background: blue;
width: 100px;
height: 80%;
}
#B {
position: absolute;
top: 0px;
right: 0px;
background: gray;
width: 50%;
height: 100%;
display: -moz-box;
display: -webkit-box;
display: box;
-moz-box-orient: vertical;
-webkit-box-orient: vertical;
box-orient: vertical;
}
#B1 {
background: brown;
width: 80%;
height: 100px;
}
#B2 {
background: orange;
width: 80%;
-moz-box-flex: 1;
-webkit-box-flex: 1;
box-flex: 1;
}
#B2-container {
display: -moz-box;
display: -webkit-box;
display: box;
-moz-box-orient: vertical;
-webkit-box-orient: vertical;
box-orient: vertical;
width: 100%;
height: 100%;
}
#B2a {
background: red;
width: 80%;
-moz-box-flex: 1;
-webkit-box-flex: 1;
box-flex: 1;
}
#B2b {
background: blue;
width: 80%;
height: 100px;
}
#A nằm bên tay trái, #B ở bên phải. #A và # A2-container là các hộp flex dọc và #B và # B2-container là các hộp xếp nằm ngang. Tôi thiết lập màu sắc cho các div khác nhau và thu nhỏ chúng ở mỗi cấp độ (chiều rộng cho chiều dọc và chiều cao cho chiều dọc) để làm cho nó dễ dàng hơn để xem những gì đang xảy ra. Có vẻ tốt bên trái (trong chrome!), Nhưng bên phải, # B2a nên điền theo chiều dọC# B2 (màu cam).
Tôi nhận thấy trong ví dụ này sẽ dễ sử dụng một flexbox với flex ở hàng giữa/cột 3, nhưng tôi tự động tải nội dung vào tương đương với # A2, điều này cũng xảy ra flexbox.
Bạn sử dụng [cú pháp Flexbox lỗi thời] (http://css-tricks.com/old-flexbox-and-new-flexbox/) (từ năm 2009). 'display: box' sẽ không bao giờ được hỗ trợ. Với cú pháp mới (từ năm 2012) và không có vùng chứa trung gian, nó hoạt động trong Firefox 22+ và sẽ hoạt động trong Chrome hiện tại: http://jsfiddle.net/NpkTL/4/ –