Niedawno pojawiły się nieoczekiwane zachowania podczas projektowania układu strony. Zaskoczyło mnie, że zachowanie calc()
wydaje się całkowicie zmieniać w zależności od tego, czy w jego argumentach istnieje jednostka oparta na procentach.Jak działa funkcja calc(), jeśli zawiera wartości procentowe?
Oto minimalna reprodukcja.
.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>
Drugi dziwi mnie, bo bym się spodziewał, że calc(3em + 0%)
byłby identyczny 3em
. Jednak każda przeglądarka, którą przetestowałem, wykazuje takie zachowanie. To zachowanie występuje z dowolnym procentem. 0%
nie jest wyjątkowy. Czy to część specyfikacji css?
Używałbym 0% do zilustrowania mojego punktu przy pomocy najmniejszego możliwego kodu, chociaż dzieje się to z jakąkolwiek wartością procentową. – recursive
Tak, zaktualizowałem moje pytanie, aby wyjaśnić. – recursive
Fajny człowiek ... sprawdzanie MDN, ale nic tak daleko. –