Высота процента CSS, когда родитель имеет минимальную/максимальную высоту
Я знаю, что, когда вы используете процентную высоту для элемента, процентная доля - это процент от его родительского. Скажем, что вы хотите, чтобы ребенок составлял 40% от этого родителя. У родителя назначена максимальная и минимальная высота, но у нее нет назначенной высоты. Например:
<div id="container">
<div id="one">
<div id="two"></div>
</div>
</div>
CSS
#container{
height: 500px;
background: yellow;
}
#one{
background: red;
min-height:100px;
max-height: 50%;
padding: 10px;
}
#two{
background: blue;
height: 40%;
}
Div two не появится. Когда вы измените css своего родителя (div one) из этого max-height:50%
на это: height:50%
появится div two, потому что он знает, какова высота его родителя, потому что он явно определен. Мой вопрос заключается в том, как заставить div two появляться при использовании (min/max)-height
, а не height
Вот fiddle
Ответы
Ответ 1
Проверьте это, вам не хватает одной крошечной части. Предположим, вы хотите установить высоту #one по сравнению С#container и #two по сравнению С#one (это то, что я думаю, что вы собираетесь). Нам нужна инструкция высоты #one, чтобы получить высоту от #two. Трюк здесь заключается в том, чтобы установить максимальную высоту, минимальную высоту и высоту элемента, тем самым давая ему высоту, которая ограничена минимальным и максимальным.
Попробуйте этот css:
<style>
#container{
height: 74vh;
background: yellow;
}
#one{
background: red;
min-height:100px;
max-height: 50%;
height: 100%;
padding: 10px;
}
#two{
background: blue;
height: 40%;
}
</style>
Высота никогда не достигается, поскольку она ограничена максимальной высотой, но без объявления высоты - высота: auto, которая не объявлена. Я установил высоту #container как 74vh, чтобы сделать все это отзывчивым в соответствии с размером области просмотра.
Ответ 2
Если вы не указали высоту или указали высоту по персету, но не указали ее паренет, укажите высоту, элемент блока изменит размер до высоты содержимого (0px для #two в этом случае).
Более подробное объяснение
Так просто установите высоту в min-height, потому что высота DOM начнется с минимальной высоты без указания высоты.
jsFiddle
#one{
background: red;
min-height: 100px;
height: 100px;
max-height: 50%;
padding: 10px;
}