#html #css
Вопрос:
У меня есть следующий html/css код. Что я хотел бы сделать, так это сделать .inner
высоту элемента адаптируемой к содержимому только в том случае, если она превышает минимальную высоту по умолчанию, установленную мной в коде. Приведенный ниже код не позволяет .box
элементам растягиваться за пределы начальной высоты .inner
, чего я не хочу делать. Я подозреваю, что это как-то связано flex
. Если я удаляю display:flex;
из .inner
, коробки растягиваются за пределы начальной высоты .inner
, но .inner
не растягиваются для размещения содержимого. Я хочу .inner
растянуть в этом случае, используя display:flex;
или display:grid;
для .inner
того , чтобы в противном случае вести себя так, как я задал в своем коде. Как этого можно достичь?
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.header {
width: 100%;
height: 70px;
background-color: steelblue;
}
.container {
width: 100%;
height: calc(100vh - 70px);
padding: 10px;
display: flex;
justify-content: center;
align-items: center;
}
.inner {
width: 95%;
height: 100%;
background: steelblue;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.box {
width: 200px;
height: 400px;
background-color: burlywood;
margin: 10px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<link href="style.css" rel="stylesheet" />
<title>Static Template</title>
</head>
<body>
<div class="header"></div>
<div class="container">
<div class="inner">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
</div>
</body>
</html>
Это код и коробка
Комментарии:
1. Что вы хотите, чтобы произошло, если высота внутреннего (или сумма внутренних высот) больше высоты контейнера?
2. @AHaworth Есть только один внутренний. Я думаю, что контейнер тоже должен растягиваться до своего содержимого. Но высота внутренней части зависит от высоты контейнера. Итак, я не уверен, как с этим справиться. Может быть, есть лучший способ, чем использовать проценты?
3. Извините, моя ошибка, я имел в виду коробки, а не внутренние.
4. Пожалуйста, опубликуйте фотографию образа, которого вы хотите добиться. Я действительно не знаю, что вы подразумеваете под начальной высотой .inner, потому что она определена как 100%. Это означает, что высота зависит от родителя, которым является .container… тогда вам в первую очередь понадобился .внутренний… хммм
5. @KoutaNakano Это правда, внутренняя высота составляет 100% от установленной высоты контейнера
height: calc(100vh - 70px);
, поэтому внутренняя имеет начальную высоту. Мне нужно внутреннее, чтобы изменить цвет фона, отличный от цвета контейнера.
Ответ №1:
Если вы хотите установить минимальную высоту по умолчанию, измените высоту на минимальную высоту для .container.
В настоящее время определено свойство .высота контейнера. Поэтому высота не масштабируется.