Hallo
Ich habe trotzdem mal ein Beispiel erstellt, zumal auch andere User deinen Beitrag lesen werden.
Flexbox hilft zudem bei vielen Problemen, für die es bisher keine sinnvolle Lösungen gab. Zum Beispiel dass die Container einer Zeile immer gleich hoch sind, egal wieviel Text sie enthalten. Oder dass in diesem Beispiel die Links "Weiterlesen" sich immer am unteren Rand des Containers befinden, egal wieviel Leerraum darüber ist.
Zunächst einmal der HTML-Quelltext mit deutlich weniger Containern, passenden HTML5-Elementen und damit einer viel größeren Übersicht und Wartbarkeit::
<header class="hauptheader">
<h2>header</h2>
</header>
<nav class="hauptnav">
<h2>Navigation</h2>
</nav>
<main class="main">
<aside class="mainaside">
<h2>aside</h2>
</aside>
<article class="mainarticle">
<h2>Ali Sprüche</h2>
<section class="card">
<p>Ich bin der König der Welt! Ich habe die Welt erschüttert.</p>
<a href="#">Weiterlesen</a>
</section>
<section class="card">
<p>Die Menschen begreifen nicht, was sie hatten, bis es weg ist. Wie Präsident Kennedy, es gab niemanden wie ihn. Wie die Beatles, es wird nie wieder etwas wie sie geben. Wie mein Elvis Presley. Ich war der Elvis des Boxens.</p>
<a href="#">Weiterlesen</a>
</section>
<section class="card">
<p>Schwebe wie ein Schmetterling, steche wie eine Biene.</p>
<a href="#">Weiterlesen</a>
</section>
<section class="card">
<p>Boxen ist nur ein Job. Gras wächst, Vögel fliegen, Wellen schlagen an den Strand - ich verhaue Leute.</p>
<a href="#">Weiterlesen</a>
</section>
</article>
</main>
<footer class="hauptfooter">
<p>Originaldiskussion: <a href="http://www.forum-hilfe.de/threads/57995-Darstellungsprobleme-mit-Div">http://www.forum-hilfe.de/</a></p>
</footer>
Alles anzeigen
Jetzt die entscheidenden CSS-Angaben für die Seite, wobei die Flexbox-Angaben nur einen geringen Teil einnehmen und der Rest auch bei anderen Lösungen erforderlich ist:
/*Grundlayout*/
@media all {
body {
}
body>* {
max-width: 1000px;
margin: 0 auto;
}
}
/*.hauptheader*/
@media all {
.hauptheader {
/*background-color: gold;*/
padding: 0 0.25rem 0.5rem 0.25rem;
border: 1px solid transparent;
}
.hauptheader {
}
}
/*.hauptnav*/
@media all {
.hauptnav {
background-color: #FC3;
padding: 0 0.25rem 0.5rem 0.25rem;
border: 1px solid #EBB81F;
}
.hauptnav {
}
}
/*.main*/
@media all {
.main {
/*background-color: gold;*/
max-width: calc(1000px + 0.5rem);
border: 1px solid #EBEBEB;
border-radius: 0.4rem;
margin: 0.5rem auto 0 auto;
}
.main {
}
}
/*.mainaside*/
@media all {
.mainaside {
padding: 0 0 0 0;
padding: 0 0.25rem 0.5rem 0.25rem;
border-bottom: 2px solid gray;
margin: 0;
}
.mainaside {
}
}
/*.mainarticle*/
@media all {
.mainarticle {
padding: 0 0 0 0;
padding: 0 0.25rem 0.5rem 0.25rem;
margin: 0;
display: flex;
flex-wrap: wrap;
}
.mainarticle h2 {
flex-grow: 0;
flex-shrink: 0;
flex-basis: calc(100% - 0.5rem - 2px - 0.5rem);
}
.mainarticle .card {
flex-grow: 0;
flex-shrink: 0;
flex-basis: calc(100% - 0.5rem - 2px - 0.5rem);
}
.mainarticle {
}
}
@media only screen and (min-width: 600px) {
.mainarticle .card {
flex-basis: calc(50% - 0.5rem - 2px - 0.5rem);
}
}
@media only screen and (min-width: 1000px) {
.mainarticle .card {
flex-basis: calc(25% - 0.5rem - 2px - 0.5rem);
}
}
/*.card*/
@media all {
.card {
background-color: #F4F4F4;
box-shadow: 0 0 2px #000;
padding: 0 0 0 0;
padding: 0 0.25rem 0.5rem 0.25rem;
border: 1px solid gray;
border-radius: 0.4rem;
margin: 0.5rem 0.25rem 0 0.25rem;
display: flex;
flex-direction: column;
}
.card p {
margin: 0.5rem 0.25rem auto 0.25rem;
}
.card a {
text-align: center;
margin: 0.5rem 0.25rem 0 0.25rem;
}
.card {
}
}
/*.hauptfooter*/
@media all {
.hauptfooter {
background-color: #3F6;
padding: 0 0.25rem 0.5rem 0.25rem;
border: 1px solid #1FEB52;
margin: 0.5rem auto 0 auto;
}
}
Alles anzeigen
Und der komplette Quelltext zum direkten Erstellen einer Datei:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Layoutproblem 01</title>
<meta name="description" content="HTML5, CSS3">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--[if lt IE 9]>
<script src="http://html5shiv-printshiv.googlecode.com/svn/trunk/html5shiv-printshiv.js"></script>
<![endif]-->
<style>
/*Icon-Font - font-family: 'FontAwesome';*/
@import url(http://fontawesome.io/assets/font-awesome/css/font-awesome.css);
/*Überschriften - font-family: 'Roboto Slab', Serif;*/
@import 'https://fonts.googleapis.com/css?family=Roboto+Slab';
/*Fließtext - font-family: 'Roboto', Sans-Serif";*/
@import 'https://fonts.googleapis.com/css?family=Roboto';
/*Zahlen* - font-family: 'Merriweather';*/
@import url(https://fonts.googleapis.com/css?family=Merriweather);
@media all {
header, nav, main, aside, footer, section, article, figure, figcaption, audio, video {
display: block;
}
* {
/*box-sizing: border-box;*/
min-width: 0;
}
html {
font-family: sans-serif;
font-size: 120%;
line-height: 1.3;
}
body {
padding: 0 0.25rem 0.5rem 0.25rem;
border-top: 0.01px solid transparent;
margin: 0;
}
}
/*Schriften 01*/
@media all {
html {
font-family: sans-serif;
font-size: 120%;
line-height: 1.3;
}
h1 {
font-family: 'Roboto Slab', serif;
font-size: 1.2rem;
letter-spacing: 0.1rem;
margin: 0.5rem 0.25rem 0 0.25rem;
}
h2, h3, h4, h5, h6 {
font-family: 'Roboto Slab', serif;
font-size: 1rem;
margin: 0.5rem 0.25rem 0 0.25rem;
}
p, li, dl, dt, address {
font-family: 'Roboto', 'Sans-Serif';
font-size: 1rem;
font-style: normal;
margin: 0.5rem 0.25rem 0 0.25rem;
}
a {
color: blue;
text-decoration: none;
outline: none;
margin: 0;
}
figcaption {
font-family: 'Roboto', 'Sans-Serif';
font-size: 0.9rem;
margin: 0;
}
}
/*Grafiken*/
@media all {
figure {
min-width: 0;
max-width: 100%;
margin: 0;
}
img {
/*text-align: bottom;*/
min-width: 0;
display: block;
max-width: 100%;
/*max-height: 100vh;*/
border: 0;
}
}
/*Grundlayout*/
@media all {
body {
}
body>* {
max-width: 1000px;
margin: 0 auto;
}
}
/*.hauptheader*/
@media all {
.hauptheader {
/*background-color: gold;*/
padding: 0 0.25rem 0.5rem 0.25rem;
border: 1px solid transparent;
}
.hauptheader {
}
}
/*.hauptnav*/
@media all {
.hauptnav {
background-color: #FC3;
padding: 0 0.25rem 0.5rem 0.25rem;
border: 1px solid #EBB81F;
}
.hauptnav {
}
}
/*.main*/
@media all {
.main {
/*background-color: gold;*/
max-width: calc(1000px + 0.5rem);
border: 1px solid #EBEBEB;
border-radius: 0.4rem;
margin: 0.5rem auto 0 auto;
}
.main {
}
}
/*.mainaside*/
@media all {
.mainaside {
padding: 0 0 0 0;
padding: 0 0.25rem 0.5rem 0.25rem;
border-bottom: 2px solid gray;
margin: 0;
}
.mainaside {
}
}
/*.mainarticle*/
@media all {
.mainarticle {
padding: 0 0 0 0;
padding: 0 0.25rem 0.5rem 0.25rem;
margin: 0;
display: flex;
flex-wrap: wrap;
}
.mainarticle h2 {
flex-grow: 0;
flex-shrink: 0;
flex-basis: calc(100% - 0.5rem - 2px - 0.5rem);
}
.mainarticle .card {
flex-grow: 0;
flex-shrink: 0;
flex-basis: calc(100% - 0.5rem - 2px - 0.5rem);
}
.mainarticle {
}
}
@media only screen and (min-width: 600px) {
.mainarticle .card {
flex-basis: calc(50% - 0.5rem - 2px - 0.5rem);
}
}
@media only screen and (min-width: 1000px) {
.mainarticle .card {
flex-basis: calc(25% - 0.5rem - 2px - 0.5rem);
}
}
/*.card*/
@media all {
.card {
background-color: #F4F4F4;
box-shadow: 0 0 2px #000;
padding: 0 0 0 0;
padding: 0 0.25rem 0.5rem 0.25rem;
border: 1px solid gray;
border-radius: 0.4rem;
margin: 0.5rem 0.25rem 0 0.25rem;
display: flex;
flex-direction: column;
}
.card p {
margin: 0.5rem 0.25rem auto 0.25rem;
}
.card a {
text-align: center;
margin: 0.5rem 0.25rem 0 0.25rem;
}
.card {
}
}
/*.hauptfooter*/
@media all {
.hauptfooter {
background-color: #3F6;
padding: 0 0.25rem 0.5rem 0.25rem;
border: 1px solid #1FEB52;
margin: 0.5rem auto 0 auto;
}
.hauptfooter {
}
}
/*Spezielle Einstellungen*/
@media all {
}
/*Flexbox für IE*/
/*-ms-flex-preferred-size: calc(50% - 1rem);*/
/*Vorlage für das gesamte CSS*/
@media all {
}
/*Vorlage zum Kopieren für Media Queries - Mobile first*/
@media only screen and (min-width: 0px) {
}
/*Vorlage zum Kopieren für Media Queries - Desktop first*/
@media only screen and (max-width: 0px) {
}
</style>
</head>
<body>
<header class="hauptheader">
<h2>header</h2>
</header>
<nav class="hauptnav">
<h2>Navigation</h2>
</nav>
<main class="main">
<aside class="mainaside">
<h2>aside</h2>
</aside>
<article class="mainarticle">
<h2>Ali Sprüche</h2>
<section class="card">
<p>Ich bin der König der Welt! Ich habe die Welt erschüttert.</p>
<a href="#">Weiterlesen</a>
</section>
<section class="card">
<p>Die Menschen begreifen nicht, was sie hatten, bis es weg ist. Wie Präsident Kennedy, es gab niemanden wie ihn. Wie die Beatles, es wird nie wieder etwas wie sie geben. Wie mein Elvis Presley. Ich war der Elvis des Boxens.</p>
<a href="#">Weiterlesen</a>
</section>
<section class="card">
<p>Schwebe wie ein Schmetterling, steche wie eine Biene.</p>
<a href="#">Weiterlesen</a>
</section>
<section class="card">
<p>Boxen ist nur ein Job. Gras wächst, Vögel fliegen, Wellen schlagen an den Strand - ich verhaue Leute.</p>
<a href="#">Weiterlesen</a>
</section>
</article>
</main>
<footer class="hauptfooter">
<p>Originaldiskussion: <a href="http://www.forum-hilfe.de/threads/57995-Darstellungsprobleme-mit-Div">http://www.forum-hilfe.de/</a></p>
</footer>
</body>
</html>
Alles anzeigen
Gruss
MrMurphy