【发布时间】:2015-01-11 22:48:16
【问题描述】:
我今天在一次讨论中出现,我想知道将两个 div 并排放置的最高效的方式是什么。
一方面,我喜欢使用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;
}
我不想在我的 CSS 中使用任何表格布局。 此外,我们不需要处理浏览器版本,这应该始终只在最新版本中起作用。
推荐使用什么?什么性能更好?
我已经找到一篇文章,性能已经提高了很多。 Link
【问题讨论】:
-
这也是我的用例,同事不喜欢这种显示类型,所以我们讨论了。另外我从未注意到任何性能问题,这就是为什么我想知道现在通常更快的原因。
-
我不知道任何直接的测试结果,但在我的经验中
display: flex表现更好
标签: html css performance flexbox calc