Вот объяснение от W3C ( ссылка ):
Следующий алгоритм описывает, как два свойства [min-height и max-height] влияют на используемое значение свойства 'height':
Предполагаемая используемая высота рассчитывается (без учета min-height и max-height) в соответствии с правилами, приведенными выше в разделе «Расчет высоты и полей».
Если эта предварительная высота больше, чем 'max-height', приведенные выше правила применяются снова, но на этот раз с использованием значения 'max-height' в качестве вычисленного значения для 'height'.
Если результирующая высота меньше, чем 'min-height', приведенные выше правила применяются снова, но на этот раз с использованием значения 'min-height' в качестве вычисленного значения для 'height'.
Подводя итог: Обычно, если минимальная высота больше, чем высота, в противном случае (независимо от того, указана явная высота или нет), то минимальная высота используется в качестве высоты. Если минимальная высота меньше, чем высота, в противном случае минимальная высота не действует.
Для заданного вами конкретного случая, , указав height:100%
, делает высоту элемента равной высоте содержащего блока. (Однако это может быть потенциально отменено, например, если вы также указали max-height:50%
.) Указание min-height:100%
означает, что если вычисленная высота меньше 100%, фактически, даже если вы явно указали высоту меньше 100%, она рассматривается как если бы вы сказали height:100%
. Обратите внимание, что одно ключевое отличие состоит в том, что максимальная высота может отменять высоту, но не может отменять минимальную высоту (поскольку максимальная высота учитывается после высоты, но до минимальной высоты в соответствии с рекомендацией W3C, как указано выше).