2014-09-14 23 views
21

Với chỉ phụ huynh div và đứa trẻ img yếu tố như chứng minh dưới đây làm cách nào để theo chiều dọc ngang tập trung các yếu tố img khi rõ ràng không định height của phụ huynh div?CSS flexbox theo chiều dọc/hình ảnh theo chiều ngang trung tâm KHÔNG explicitely xác định chiều cao mẹ

<div class="do_not_define_height"> 
<img alt="No, he'll be an engineer." src="theknack.png" /> 
</div> 

Tôi không quá quen thuộc với flexbox vì vậy tôi không sao nếu flexbox tự lấp đầy chiều cao đầy đủ, nhưng không phải bất kỳ thuộc tính không liên quan nào khác.

Trả lời

14

Nếu không có quy định rõ ràng height tôi xác định tôi cần phải áp dụng giá trị flex cho phụ huynh grandparent div các yếu tố ...

<div style="display: flex;"> 
<div style="display: flex;"> 
<img alt="No, he'll be an engineer." src="theknack.png" style="margin: auto;" /> 
</div> 
</div> 
+0

Quan tâm đến việc căn giữa hình ảnh theo cả chiều dọc và ngang theo chiều ngang một cách rõ ràng đặt chiều cao trên bố mẹ.Tôi có một loạt hình ảnh và muốn chiều cao của hình ảnh cao nhất là chiều cao của hình ảnh gốc và chính giữa tất cả các hình ảnh anh chị em khác. Dường như bạn có thể có gì đó ở đây, bạn có bản giới thiệu không? – Steve

+0

Xin chào Steve, tôi sẽ đăng nội dung nào đó trên trang web của tôi (xem tiểu sử) tối nay cho bạn, chỉ cần nhớ rằng tôi sẽ về nhà muộn. – John

+0

Hey John, đừng lo lắng, bất cứ khi nào bạn có thể đăng nó, tôi đánh giá cao nó bạn thân! Cảm ơn trước! – Steve

49

Chỉ cần thêm các quy tắc sau đây để các yếu tố phụ huynh:

display: flex; 
justify-content: center; /* align horizontal */ 
align-items: center; /* align vertical */ 

Dưới đây là một sample demo (Thay đổi kích thước cửa sổ để xem align image)

Browser support cho Flexbox hiện nay là khá tốt.

Đối với khả năng tương thích qua trình duyệt cho display: flexalign-items, bạn có thể thêm cú pháp flexbox cũ cũng như:

display: -webkit-box; 
display: -webkit-flex; 
display: -moz-box; 
display: -ms-flexbox; 
display: flex; 
-webkit-flex-align: center; 
-ms-flex-align: center; 
-webkit-align-items: center; 
align-items: center; 
+0

@John - hãy xem bản trình diễn fiddle - điều đó có hiệu quả cho bạn – Danield

+0

Điều đó định nghĩa 'chiều cao', tôi đã tuyên bố rõ ràng rằng tôi có thể * không * xác định' chiều cao' ngoại trừ flexbox. – John

+0

@ John - không có nó không xác định chiều cao - chiều cao trong fiddle chỉ ở đó để kiểm tra .... khi bạn thay đổi kích thước cửa sổ, bạn có thể thấy chiều cao của vùng chứa ** thay đổi ** và img vẫn là tập trung. Bạn có thể loại bỏ các quy tắc chiều cao và nó sẽ làm việc cho bất cứ điều gì chiều cao của container là. – Danield

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