#html #css
#HTML #css
Вопрос:
У меня есть гибкий div, который содержит 2 элемента. Я хочу, чтобы 2 элемента были родительской высотой, когда их содержимое должно иметь автоматическую высоту, но я всегда получаю внутреннюю высоту содержимого.
мой код:
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<style>
html, body {
height: 100%;
margin: 0px;
}
.parent {
background: gray;
display:flex;
align-items: center;
}
.child {
height: 100%;
background: blue;
border: 1px solid white;
}
</style>
</head>
<body>
<div class="parent">
<div class="child">
<div>
<div>abc</div>
<div>abc</div>
</div>
</div>
<div class="child">
<div>abc</div>
</div>
</div>
</body>
</html>
Второй «дочерний» div также должен иметь родительскую высоту, в то время как его внутренний div должен оставаться автоматической высотой. Как я могу это сделать?
Ответ №1:
Вместо height: 100%
этого попробуйте align-self: stretch
child
класс.
Ответ №2:
Вам необходимо сохранить выравнивание по умолчанию и удалить height: 100%
, чтобы дочерние элементы были растянуты по умолчанию.
Затем установите display: flex
также для детей с желаемым выравниванием
html, body {
height: 100%;
margin: 0px;
}
.parent {
background: gray;
display:flex;
}
.child {
background: blue;
border: 1px solid white;
display: flex;
align-items:center;
}
<div class="parent">
<div class="child">
<div>
<div>abc</div>
<div>abc</div>
</div>
</div>
<div class="child">
<div>abc</div>
</div>
</div>
Ответ №3:
Добавьте высоту в .parent
div, например: height: 300px;
или height: 100%;
html,
body {
height: 100%;
margin: 0px;
}
.parent {
background: gray;
display: flex;
align-items: center;
height: 200px;
}
.child {
height: 100%;
background: blue;
border: 1px solid white;
}
<body>
<div class="parent">
<div class="child">
<div>
<div>abc</div>
<div>abc</div>
</div>
</div>
<div class="child">
<div>abc</div>
</div>
</div>
</body>