Я хотел бы создать адаптивную страницу с фиксированной HTML-структурой, чтобы я мог просто настроить CSS. Я хотел бы создать строки с вертикально и горизонтально центрированными текстами. Div должен полностью растягиваться на родительский div.
Мой HTML ...
<body>
<div class="parent">
<div class="d1">
one
</div>
<div class="d2">
two
</div>
<div class="d3">
three
</div>
</div>
</body>
Мой CSS ...
body {
background-color: lightyellow;
height: 100%;
width: 100%;
margin: 0px;
}
.parent {
background-color: lightblue;
height: 100%;
}
.d1, .d2, .d3 {
display: flex;
align-items: center;
justify-content: center;
text-align: center;
height: 100px;
}
.d2 {
background-color: lightgreen;
}
Однако здесь я устанавливаю d1, d2 и d3 на высоту 100px, а не на 100% родительского div. Пример здесь: https://jsfiddle.net/bLf2sxq0/
Моя вторая идея состояла в том, чтобы использовать display: table для родителя, что приводит к строкам таблицы для дочерних элементов, но затем я сталкиваюсь с той же проблемой растяжения, плюс тексты не центрированы вертикально. Здесь бы css был бы таким ...
body {
background-color: lightyellow;
height: 100%;
width: 100%;
margin: 0px;
}
.parent {
width: 100%;
height: 100%;
display: table;
background-color: lightblue;
}
.d1, .d2, .d3 {
text-align: center;
height: 100px;
}
.d2 {
background-color: lightgreen;
}
Пример здесь: https://jsfiddle.net/qmbzkwr2/
Есть ли способ растягивать div по вертикали вдоль родителя и держать тексты по центру вертикально и горизонтально внутри div? Таким образом, у меня не было бы ширины 100px, но что-то вроде calc (100% / 3) или какого-либо другого решения для этого? Или, может быть, с помощью опции flex растут? Проще всего это сделать:)
Спасибо за любую помощь!