Zitat
Im zweiten Block habe ich bei displaygar nichts gemacht und a innerhalb von p platziert. margin-top greift hier allerdings nicht und ich weiß nicht warum.
Die Erklärung findest Du z. B. bei Selfhtml:
Zitat von Selfhtml
- Bei Inline-Elementen sind
margin-top und margin-bottom wirkungslos.
https://wiki.selfhtml.org/wiki/CSS/Tutorials/Abstand/margin
Wenn Du das display auf inline-block oder block änderst, funktioniert es mit dem Margin.
Bei dem ersten Block funktioniert es ja einwandfrei, ich nehme an, so soll es aussehen?
Dieses Layout kannst Du auch sehr einfach mit Flex erzielen:
Die Elemente untereinander anordnen mit display: flex; und flex-direction: column; . Dann werden sie untereinander dargestellt und füllen die Breite aus. Den Link kannst Du dann gezielt mit align-self; rechts anordnen.
Und das Layout mit den drei Boxen, wo automatisch ein Umbruch erzeugt wird, kannst Du auch sehr einfach mit Gridlayout erzeugen, sieh dir diese Demo an:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Image Stack</title>
<style>
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.cell {
border: 2px solid lightblue;
height: 100px;
}
</style>
</head>
<body>
<div class="container">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
</body>
</html>
Alles anzeigen