Beispiel:CSS-grid-ausrichtung-1.html
Aus SELFHTML-Wiki
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" items="width=device-width, initial-scale=1.0">
<style>
.grid-container {
width: 30em;
aspect-ratio: 3/2;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1em;
}
.test {
align-items: var(--align-items);
justify-items: var(--justify-items);
border: medium dotted darkred;
}
.grid-item {
background: #fffbf0;
}
.grid-items {
color: #c82f04;
background-color: #ffebe6;
border: thin solid;
padding: .2em;
}
.item1 {
grid-area: 1 / 1 / 2 / 2;
}
.item2 {
grid-area: 1 / 2;
}
.item3 {
grid-area: 1 / 3 / span 2;
}
.item4 {
grid-area: 2 / 1 / 3 / 3;
}
label {
display:inline-block;
margin: 1em;
}
#stage {
position: relative;
height: 22em;
}
.eins, .test {
position: absolute;
top: 0;
left: 0;
}
.eins {
}
.grid-item {
border-radius: 0 0.5em 0.5em;
border: thin solid;
border-color: #e7c157;
padding: 1em;
}
:root {
--align-items: start;
--justify-items: center;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function () {
const menu = document.querySelector('#grid-control');
const grid = document.querySelector('.test');
menu.addEventListener('change', updateGrid);
function updateGrid () {
let align = document.querySelector('#align-items').value;
grid.style.setProperty('--align-items', align);
let justify = document.querySelector('#justify-items').value;
grid.style.setProperty('--justify-items', justify);
}
});
</script>
<title>Ausrichtung von Grid-Items</title>
</head>
<body>
<h1>Ausrichtung von Grid-Items</h1>
<nav id="grid-control">
<label for="align-items">align-items ( 🡙):</label>
<select id="align-items">
<option value="start">start</option>
<option value="center" checked>center</option>
<option value="end">end</option>
<option value="stretch">stretch</option>
</select>
<label for="justify-items">justify-items (🡘):</label>
<select id="justify-items">
<option value="start">start</option>
<option value="center" checked>center</option>
<option value="end">end</option>
<option value="stretch">stretch</option>
</select>
</nav>
<div id="stage">
<div class="grid-container background">
<div class="grid-item a1">A1</div>
<div class="grid-item b1">B1</div>
<div class="grid-item c1">C1</div>
<div class="grid-item a2">A2</div>
<div class="grid-item b2">B2</div>
<div class="grid-item c2">C2</div>
</div>
<div class="grid-container test">
<div class="grid-items item1">Item 1</div>
<div class="grid-items item2">Item 2<br>mit 2 Zeilen Text</div>
<div class="grid-items item3">Item 3<br>(über 2 Reihen)</div>
<div class="grid-items item4">Item 4<br>(über 2 Spalten)</div>
</div>
</div>
<p>Ohne weitere CSS-Festlegungen erstrecken sich Grid-Items auf den gesamten verfügbaren Platz.<br>
Ändere die Werte für <code>align-items</code> ( 🡙) und <code>justify-items</code> (🡘) und beobachte, was passiert.
</p>
</body>
</html>