Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Englisch ist mir leider zu kompliziert
Indem man ein grid- oder flex-Layout verwendet:wie erreiche ich eine Aufteilung einer Seite in drei Spalten, und zwar so dass die Aufteilung auch bleibt, wenn man nach unten scrollt?
Weniger was die Technik betrifft, aber die Doku: SelfHTML ist für Anfänger weniger geeignet, da umständlich und weitschweifig erklärt und das Wesentliche, bzw. der Kern der Sache, geht darin unter.Welches der beiden ist für einen Anfänger besser geeignet, da leichter verständlich?
Der Kern des Unterschiedes: Flex ist eindimensional, d. h. die Elemente werden in einer Richtung, x oder y angeordnet. Wie in deinem Fall mit den drei Spalten. Grid ist dagegen zweidimensional, die Elemente werden in Form eines Gitters in x- und y-Richtung angeordnet.Sind grid- und flex-Layout gleich modern und gleich effektiv?
Welches der beiden ist für einen Anfänger besser geeignet, da leichter verständlich?
Das Flexbox-Layoutmodell erfreut sich großer Beliebtheit, weshalb häufig gefragt wird, worin der Vorteil von CSS Grids besteht. Flexbox bietet sich besser für lineare Strukturen an, CSS Grids für komplexe verschachtelte Konstruktionen. Die Kombination beider Techniken ist sinnvoll und gewünscht. Es kommt auf den Anwendungsfall an, welches Layoutmodell sich besser eignet.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Spaltenlayout</title>
<meta name="description" content="Platzhalter - Ein kurze Beschreibung des Inhalts in Satzform">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
padding: 0.5rem;
margin: 0rem auto 0rem auto;
display: grid;
grid-template-columns: 1fr 3fr;
gap: 0.5rem;
}
aside {
border: 1px solid grey;
padding: 0.5rem;
border-radius: 0.5rem;
}
main {
border: 1px solid grey;
padding: 0.5rem;
border-radius: 0.5rem;
display: grid;
grid-template-columns: auto 1fr auto;
}
main h1 {
text-align: center;
}
figure {
margin: 1rem 0;
}
img {
max-width: 50px;
}
</style>
</head>
<body>
<aside>
<h1>NASA</h1>
</aside>
<main>
<figure>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/255px-NASA_logo.svg.png" alt="Logo NASA">
</figure>
<h1>Text zwischen Bildern</h1>
<figure>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/255px-NASA_logo.svg.png" alt="Logo NASA">
</figure>
</main>
</body>
</html>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Spaltenlayout</title>
<meta name="description" content="Platzhalter - Ein kurze Beschreibung des Inhalts in Satzform">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
padding: 0.5rem;
margin: 0rem auto 0rem auto;
display: grid;
grid-template-columns: 1fr 3fr;
gap: 0.5rem;
}
aside {
border: 1px solid grey;
padding: 0.5rem;
border-radius: 0.5rem;
}
main {
border: 1px solid grey;
padding: 0.5rem;
border-radius: 0.5rem;
display: grid;
grid-template-columns: auto min-content auto;
}
main h1 {
text-align: center;
}
figure:first-child{
text-align: right;
margin-right: 1em;
}
figure:last-child{
margin-left: 1em;
}
img {
max-width: 50px;
}
</style>
</head>
<body>
<aside>
<h1>NASA</h1>
</aside>
<main>
<figure>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/255px-NASA_logo.svg.png" alt="Logo NASA">
</figure>
<h1>Text zwischen Bildern</h1>
<figure>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/255px-NASA_logo.svg.png" alt="Logo NASA">
</figure>
</main>
</body>
</html>
grid-template-columns: auto min-content auto;
grid-template-columns: 1fr auto 1fr;
figure:nth-child(1) {
text-align: right;
}
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Spaltenlayout</title>
<meta name="description" content="Platzhalter - Ein kurze Beschreibung des Inhalts in Satzform">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
padding: 0.5rem;
margin: 0rem auto 0rem auto;
display: grid;
grid-template-columns: 1fr 3fr;
gap: 0.5rem;
}
aside {
border: 1px solid grey;
padding: 0.5rem;
border-radius: 0.5rem;
}
main {
border: 1px solid grey;
padding: 0.5rem;
border-radius: 0.5rem;
display: grid;
grid-template-columns: 1fr auto 1fr;
}
main h1 {
text-align: center;
}
figure {
margin: 1rem 0;
}
figure:nth-child(1) {
text-align: right;
}
img {
max-width: 50px;
}
</style>
</head>
<body>
<aside>
<h1>NASA</h1>
</aside>
<main>
<figure>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/255px-NASA_logo.svg.png" alt="Logo NASA">
</figure>
<h1>Text zwischen Bildern</h1>
<figure>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/255px-NASA_logo.svg.png" alt="Logo NASA">
</figure>
</main>
</body>
</html>
Danke, genau so passt es!Mit
Code:grid-template-columns: auto min-content auto;
wird die mittlere Spalte grade so breit wie das "längste" Wort, also "zwischen". Die mittlere Spalte soll aber so breit sein wie der Text, aber ohne Zeilenumbruch. Dafür ist "auto" gedacht.
Bei drei Spalten müssen die Bilder den restlichen Platz ausnutzen. Also jeweils "1fr".
Code:grid-template-columns: 1fr auto 1fr;
Nun muss nur noch das linke Bild im figure-Element rechtsbündig ausgerichtet werden. Ganz klassisch mittels
Code:figure:nth-child(1) { text-align: right; }
Insgesamt also:
Code:<!DOCTYPE html> <html lang="de"> <head> <meta charset="utf-8"> <title>Spaltenlayout</title> <meta name="description" content="Platzhalter - Ein kurze Beschreibung des Inhalts in Satzform"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> body { padding: 0.5rem; margin: 0rem auto 0rem auto; display: grid; grid-template-columns: 1fr 3fr; gap: 0.5rem; } aside { border: 1px solid grey; padding: 0.5rem; border-radius: 0.5rem; } main { border: 1px solid grey; padding: 0.5rem; border-radius: 0.5rem; display: grid; grid-template-columns: 1fr auto 1fr; } main h1 { text-align: center; } figure { margin: 1rem 0; } figure:nth-child(1) { text-align: right; } img { max-width: 50px; } </style> </head> <body> <aside> <h1>NASA</h1> </aside> <main> <figure> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/255px-NASA_logo.svg.png" alt="Logo NASA"> </figure> <h1>Text zwischen Bildern</h1> <figure> <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/255px-NASA_logo.svg.png" alt="Logo NASA"> </figure> </main> </body> </html>
Das ist aber nur eine von mehreren Möglichkeiten. Wenn andere Inhalte hinzukommen können die besser geeignet sein.