Ce este un Grid-View?
Un grid-view împarte o pagină în rânduri și coloane, iar multe pagini web sunt construite pe unul.
Grid-view-urile responsive folosesc adesea 6 sau 12 coloane și se micșorează și se extind odată cu fereastra browserului.
Construirea unui Grid View
Înainte de orice altceva, dă fiecărui element HTML valoarea border-box pentru box-sizing. Astfel, lățimea și înălțimea totală a unui element includ padding-ul și chenarul.
Pune această regulă în partea de sus a CSS-ului tău:
Resetare box-sizing
Datorită selectorului universal, fiecare element din pagină primește box-sizing: border-box.
* {
box-sizing: border-box;
}
HTML-ul
Containerul grid conține cinci elemente de grilă: un antet, un meniu, conținut principal, o secțiune de fapte și un subsol.
Structura HTML a grilei
Iată tot HTML-ul aspectului de grilă. Fiecare secțiune are propriul <div>, iar numele clasei este cel care îl leagă de o zonă a grilei.
<div class="grid-container">
<div class="header"><h1>Chania</h1></div>
<div class="menu">
<ul>
<li>The Flight</li>
<li>The City</li>
<li>The Island</li>
<li>The Food</li>
</ul>
</div>
<div class="content">
<h1>The City</h1>
<p>Chania is the capital of the Chania region on the island of Crete.</p>
<p>The city can be divided in two parts, the old town and the modern city. The old town is situated next to the old harbour and is the matrix around which the whole urban area was developed.</p>
<p>Chania lies along the north west coast of the island Crete.</p>
</div>
<div class="facts">
<h2>Facts:</h2>
<ul>
<li>Chania is a city on the island of Crete</li>
<li>Crete is a Greek island in the Mediterranean Sea</li>
</ul>
</div>
<div class="footer"><p>A footer.</p></div>
</div>
CSS-ul
Stilurile și culorile îmbunătățesc apoi aspectul de grilă.
Notă: Capitolul următor arată cum gestionează media queries și punctele de întrerupere dimensiunile diferite de ecran.
Exemplu
Iată tot CSS-ul aspectului de grilă. Zonele numite pentru fiecare secțiune vin din grid-template-areas, iar antetul, meniul, conținutul, faptele și subsolul primesc culorile și spațierea lor.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid Layout</title>
<style>
* {
box-sizing: border-box;
}
body {
font-family: "Lucida Sans", sans-serif;
font-size: 17px;
}
.grid-container {
display: grid;
grid-template-areas:
'header'
'menu'
'main'
'facts'
'footer';
background-color: white;
gap: 10px;
}
.header {
grid-area: header;
background-color: purple;
text-align: center;
color: #ffffff;
}
.header > h1 {
font-size: 40px;
}
.menu {
grid-area: menu;
}
.menu ul {
list-style-type: none;
margin: 0;
padding: 0;
}
.menu li {
padding: 8px;
margin-bottom: 7px;
background-color: #33b5e5;
color: #ffffff;
}
.menu li:hover {
background-color: #0099cc;
}
.content {
grid-area: main;
}
.content > h1 {
font-size: 30px;
margin-bottom: 7px;
}
.content > p {
margin-bottom: 7px;
}
.facts {
grid-area: facts;
border: 1px solid #0099cc;
background-color: beige;
padding: 10px;
}
.facts > h2 {
font-size: 20px;
}
.facts li {
margin-bottom: 5px;
}
.footer {
grid-area: footer;
background-color: #0099cc;
color: #ffffff;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="header"><h1>Chania</h1></div>
<div class="menu">
<ul>
<li>The Flight</li>
<li>The City</li>
<li>The Island</li>
<li>The Food</li>
</ul>
</div>
<div class="content">
<h1>The City</h1>
<p>Chania is the capital of the Chania region on the island of Crete.</p>
<p>The city can be divided in two parts, the old town and the modern city. The old town is situated next to the old harbour and is the matrix around which the whole urban area was developed.</p>
<p>Chania lies along the north west coast of the island Crete.</p>
</div>
<div class="facts">
<h2>Facts:</h2>
<ul>
<li>Chania is a city on the island of Crete</li>
<li>Crete is a Greek island in the Mediterranean Sea</li>
</ul>
</div>
<div class="footer"><p>A footer.</p></div>
</div>
</body>
</html>