Beispiel:CSS-grid-layout-4-benannte-Linien.html

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche
<!DOCTYPE html>
<html lang="de">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Holy Grid Layout</title>  
<style>
body {
    display: grid;
		gap: 0.5em;
}

@media (min-width: 45em) { 
	body{
	  display: grid;
	  grid-template-columns: 1fr [nav-start] fit-content(12em) [main-start] minmax(20em, 1fr)  [main-end] fit-content(15em)  [aside-end] 1fr;
	  grid-template-rows: [head-start] min-content 
	                      [main-start] 1fr 
	                      [main-end]   min-content 
	                      [foot-end];
	}
	header, footer {
	  grid-column: nav-start / aside-end;
	}
	nav {
	  grid-column: nav-start / main-start;
	}	
	main {
	  grid-column: main-start / main-end;
	  grid-row:    main-start / main-end;
	}
}

header, nav, main, article, section, aside, footer {
   border-radius: 0px 0.5em 0.5em;
   border: thin solid;
   padding: 10px;
}

header {
	background: #F1F3F4;
	border-color: #d5d5d5;
	display: grid;
	grid-template-columns: 4em 1fr;
	gap: .5em;
	grid-column: 1 / 6;
	grid-row: 1 / auto;	

	img {
		width: 2.25em;
		aspect-ratio: 1/1;
		padding-top: 1.5em;
	}
}

nav {
	background: #fffbf0;
	border-color: #e7c157;
}

main {
	background: #ffede0;
	border-color: #df6c20;
}

aside {
	background: #ebf5d7;
	border-color: #8db243;
}

footer {
	background: #e4ebf2;
	border-color: #8a9da8;
}

footer * {
  float: right;
	clear: right;
  margin: 0 0 1em;
}

body {
    font-family: sans-serif;
}

</style>
</head>

<body>
	<header>
		<img src="https://wiki.selfhtml.org/images/4/45/SELF-Logo.svg" alt="logo">
		<h1>Holy-Grail-Layout mit Grid</h1>
	</header>

	<nav>
    	<h2>Navigation</h2>
		<ul>
			<li><a href="#">Startseite</a></li>
			<li><a href="#">Unterseite 1</a></li>
			<li><a href="#">Unterseite 2</a></li>    
			<li><a href="#">Kontakt</a></li>
		</ul>
	</nav>

	<main>
		<h2>CSS-basierte Grid Layouts</h2>
		<p>Grid Layout ist wie Flexbox eine sehr moderne und einfache Möglichkeit, responsive und flexible Layouts zu erstellen. Dabei benötigt es <strong>keine feste Größenangaben</strong> oder weitere CSS-Einstellungen wie position, float oder clear.
		</p>
		<p>Elemente können beliebig innerhalb eines Rasters platziert werden, wenn gewünscht, auch übereinander.
		</p>
		<p>Grid Layout wird in allen modernen Browsern unterstützt.</p>
	</main>

	<aside id="news">
		<h2>Top-News</h2>
		<p>Gestern gab's Freibier!</p>
	</aside>

	<footer>
		<a href="#kontakt.html">Kontakt</a>
		<p>© 2021 SELFHTML</p>
	</footer>

</body>
</html>