我最近在设计网站布局时遇到了一些意想不到的行为.我惊讶地发现,calc()根据其参数中的任何位置是否存在基于百分比的单位,行为似乎完全改变.
这是一个最小的复制品.
.container {
font-size: 30px;
display: inline-block;
border: solid purple .1em;
}
.inner {
border: solid orange .1em;
}
.inner.em { width: 3em; }
.inner.calc { width: calc(3em + 0%); }Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="inner em">abc</div>
</div>
<hr>
<div class="container">
<div class="inner calc">abc</div>
</div>Run Code Online (Sandbox Code Playgroud)
第二个对我来说很惊讶,因为我希望它calc(3em + 0%)会与之相同3em.但是,我测试的每个浏览器都表现出这种行为.任何百分比都会出现此问题. 0%并不特别.这是css规范的一部分吗?