Почему процентная ширина работает, даже если не указано явное значение ширины для содержащего блока?

Согласно спецификации дляheight ящик, содержащий элемент должен иметь явныйheight для того, чтобы высота в процентах работала над элементом (то есть числовое значение100% высота используется для всех родительских полей, содержащих поля).

Однако почему одни и те же правила не применяются к процентам?widths? Когда я устанавливаю процентwidth на элементе с содержащим ящиком, который не имеет явногоwidthкажется, что он все еще меняет ширину элемента. (см. пример)

.first {
    background-color: teal;
}
.second {
    background-color: gold;
    width: 30%;  /* the '.second' box becomes narrower! */
    height: 40%; /* <-- doesn't have any effect         */
}
<div class="first">
    ""
    <div class="second">
    ""
    </div>
</div>  

Ответы на вопрос(2)

Ваш ответ на вопрос