Reputation: 938
I would like to accomplish this layout in HTML/CSS:
and it should work for longer texts as well:
(long text)
So the orange element as well as the white element should be vertically centered and the background color of both should fill the full height of the parent. This should be the case for long and for short texts.
Here's my code so far – but as you can see, using margin:auto doesn't work well because the background color doesn't reach to top and bottom of the parent:
.exercise {
border: 1px solid black;
border-radius: 0.5em;
display: flex;
background: orange;
border-radius: 0.5em 0 0 0.5em;
position: relative;
}
.number {
font-family: Arial, Helvetica, sans-serif;
padding: 1em;
text-align: center;
margin: auto;
}
.number span:nth-of-type(1) {}
.number span:nth-of-type(2) {
font-size: 5em;
font-weight: bold;
}
.text {
margin: auto;
padding: 1em;
background: yellow;
}
<div class="exercise">
<div class="number">
<span>Aufgabe</span>
<span>5</span>
</div>
<div class="text">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</div>
</div>
<div class="exercise" style="margin-top: 1em">
<div class="number">
<span>Aufgabe</span>
<span>5</span>
</div>
<div class="text">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
</div>
</div>
Upvotes: 0
Views: 23
Reputation: 146
Use height: auto
and display: flex
.
.exercise {
border: 1px solid black;
border-radius: 0.5em;
display: flex;
background: orange;
border-radius: 0.5em 0 0 0.5em;
position: relative;
}
.number {
font-family: Arial, Helvetica, sans-serif;
padding: 1em;
text-align: center;
margin: auto;
}
.number span:nth-of-type(1) {}
.number span:nth-of-type(2) {
font-size: 5em;
font-weight: bold;
}
.text {
height: auto;
display: flex;
align-items: center;
padding: 1em;
background: yellow;
}
<div class="exercise">
<div class="number">
<span>Aufgabe</span>
<span>5</span>
</div>
<div class="text">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</div>
</div>
<div class="exercise" style="margin-top: 1em">
<div class="number">
<span>Aufgabe</span>
<span>5</span>
</div>
<div class="text">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
</div>
</div>
Upvotes: 1