Я пришел сегодня в дискуссию, где мне интересно, какой самый эффективный способ иметь двух div друг на друга.дисплей: flex; vs calc(); производительность
С одной стороны, я обожаю использовать display:flex;
, с другой стороны есть возможность использовать calc()
, причина в том, что у нашего div есть отступы, и нам нужно уменьшить ширину прописью. Корпус:
<div class='container'>
<div class='inner'></div>
<div class='inner'></div>
</div>
Оба должны быть на 50% ширины. По умолчанию CSS является:
* {
-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;
}
display:flex;
способ будет дополнительно:
.container {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
flex-wrap: nowrap;
align-items: stretch;
align-content: stretch;
}
calc()
путь будет:
.inner {
width: calc(100% - 40px);
display: inline-block;
}
или:
.inner {
width: calc(100% - 40px);
float: left;
}
я не нужна таблица l ayout в моем css. Кроме того, нам не нужно заботиться о версиях браузера, это должно быть функционально только в самых последних версиях.
Что было бы рекомендовано использовать? Чем больше производительность?
Я уже нашел статью о том, что производительность была увеличена уже много. Link
Это тоже мой usecase, коллеге не понравился этот тип отображения, поэтому мы обсуждали. Также я никогда не замечал никаких проблем с производительностью, поэтому им интересно, что же сейчас происходит быстрее. –
Я не знаю никаких прямых результатов теста, но 'display: flex' лучше работает в моем опыте –