Tôi đã đến hôm nay trong một cuộc thảo luận, nơi tôi đang tự hỏi cách nào có hiệu quả nhất để có hai div bên cạnh nhau.hiển thị: flex; vs calc(); hiệu suất
Một mặt, tôi thích sử dụng display:flex;
, ở phía bên kia có những lựa chọn để sử dụng calc()
, lý do là div chúng tôi có đệm và chúng tôi cần phải giảm chiều rộng của đệm. Trường hợp:
<div class='container'>
<div class='inner'></div>
<div class='inner'></div>
</div>
Cả hai đều phải rộng 50%. Các css mặc định là:
* {
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box; /* Opera/IE 8+ */
}
.container {
height: 100%;
width: 100%;
}
.inner {
width: 50%;
padding: 20px;
}
Cách display:flex;
sẽ thêm:
.container {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
flex-wrap: nowrap;
align-items: stretch;
align-content: stretch;
}
Cách calc()
sẽ là:
.inner {
width: calc(100% - 40px);
display: inline-block;
}
hay:
.inner {
width: calc(100% - 40px);
float: left;
}
tôi làm không muốn bất kỳ bảng l ayout trong css của tôi. Ngoài ra, chúng tôi không cần phải chăm sóc các phiên bản trình duyệt, điều này sẽ chỉ hoạt động trong các phiên bản mới nhất, luôn luôn.
Điều gì sẽ được khuyến nghị sử dụng? Điều gì có hiệu suất hơn?
Tôi đã tìm thấy một bài viết rằng hiệu suất đã được tăng lên rất nhiều. Link
Đây cũng là ứng dụng của tôi, đồng nghiệp không thích loại hiển thị này, vì vậy chúng tôi đã thảo luận. Ngoài ra tôi chưa bao giờ nhận thấy bất kỳ vấn đề hiệu suất, đây là lý do tại sao im tự hỏi những gì nói chung là nhanh hơn bây giờ. –
Tôi không biết bất kỳ kết quả thử nghiệm trực tiếp nào, nhưng 'display: flex' hoạt động tốt hơn trong kinh nghiệm của tôi –