Recentemente ho riscontrato un comportamento imprevisto durante la progettazione di un layout del sito. Sono stato sorpreso di scoprire che il comportamento di calc()
sembra cambiare totalmente a seconda che ci sia un'unità basata sulla percentuale ovunque all'interno del suo argomento.Come calc() funziona quando contiene percentuali?
Ecco una riproduzione minima.
.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%); }
<div class="container">
<div class="inner em">abc</div>
</div>
<hr>
<div class="container">
<div class="inner calc">abc</div>
</div>
La seconda è sorprendente per me, perché mi aspetterei che calc(3em + 0%)
sarebbe identico a 3em
. Tuttavia, ogni browser che ho testato mostra questo comportamento. Questo comportamento si verifica con qualsiasi percentuale. 0%
non è speciale. Questa parte della spec css?
Vorrei utilizzare lo 0% per illustrare il mio punto con il codice meno possibile, anche se accade con qualsiasi valore percentuale. – recursive
Sì, ho aggiornato la mia domanda per chiarire. – recursive
Cool man ... controllo MDN ma niente finora. –