vue en grille


Conception Web réactive - Vue en grille


Qu'est-ce que la vue en grille ?

De nombreuses pages Web sont conçues sur la base d'une grille, ce qui signifie que la page Web est organisée en colonnes.

1.jpg

L'utilisation de la vue grille nous aide à concevoir des pages Web. Cela facilite l'ajout d'éléments aux pages Web.

2.jpg

Les vues de grille réactives comportent généralement 12 colonnes, 100 % de largeur et sont automatiquement mises à l'échelle lorsque la fenêtre du navigateur est redimensionnée.


Créer une vue grille réactive

Ensuite, nous créons une vue grille réactive.

Assurez-vous d'abord que tous les éléments HTML ont l'attribut box-sizing défini sur border-box.

Assurez-vous que les marges et les bordures sont contenues dans la largeur et la hauteur de l'élément.

Ajoutez le code suivant :

* {
    box-sizing: border-box;
}

Pour afficher plus de contenu de dimensionnement de boîte, veuillez cliquer sur : Propriété de dimensionnement de boîte CSS3.

L'exemple suivant montre une page Web réactive simple, contenant deux colonnes :

Exemple

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8"> 
<title>php中文网</title> 
<style>
* {
    box-sizing: border-box;
}
.header {
    border: 1px solid red;
    padding: 15px;
}
.menu {
    width: 25%;
    float: left;
    padding: 15px;
    border: 1px solid red;
}
.main {
    width: 75%;
    float: left;
    padding: 15px;
    border: 1px solid red;
}
</style>
</head>
<body>

<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="main">
<h1>The City</h1>
<p>Chania is the capital of the Chania region on the island of Crete. The city can be divided in two parts, the old town and the modern city.</p>
<p>Resize the browser window to see how the content respond to the resizing.</p>
</div>

</body>
</html>

Exécuter l'exemple »

Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne

L'exemple ci-dessus contient deux colonnes.

Le système de grille à 12 colonnes permet un meilleur contrôle des pages Web réactives.

On peut d'abord calculer le pourcentage de chaque colonne : 100% / 12 colonnes = 8,33%.

Spécifiez la classe dans chaque colonne, class="col-" est utilisé pour définir le nombre d'étendues de chaque colonne :

Instance

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8"> 
<title>php 中文网</title> 
<style>
* {
    box-sizing: border-box;
}
.header {
    border: 1px solid red;
    padding: 15px;
}
.row:after {
    content: "";
    clear: both;
    display: block;
}
[class*="col-"] {
    float: left;
    padding: 15px;
    border: 1px solid red;
}
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}
</style>
</head>
<body>

<div class="header">
<h1>Chania</h1>
</div>

<div class="row">

<div class="col-3">
<ul>
<li>The Flight</li>
<li>The City</li>
<li>The Island</li>
<li>The Food</li>
</ul>
</div>

<div class="col-9">
<h1>The City</h1>
<p>Chania is the capital of the Chania region on the island of Crete. The city can be divided in two parts, the old town and the modern city.</p>
<p>Resize the browser window to see how the content respond to the resizing.</p>
</div>

</div>
</body>
</html>

Exécuter l'instance»

Cliquez sur le bouton "Exécuter l'instance" pour afficher l'instance en ligne

Toutes les colonnes flottent vers la gauche, avec un remplissage de 15px :

CSS :

[class*="col-"] {
 float : gauche ;
rembourrage : 15px;
bordure : 1px rouge uni;
}

Enroulez chaque ligne avec <div>. Le nombre total de colonnes doit totaliser 12 :

<div class="row" >
<div class="col-3"> ...</div>
<div class= "col-9">...</div>
</div>

La ligne de la colonne flotte vers la gauche et ajoute un flottant clair :

CSS :

.row:après {
contenu : "";
clear: les deux;
 display: block;
}

On peut en ajouter styles et couleurs, améliorez-le :

Instance

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8"> 
<title>php 中文网</title> 
<style>
* {
    box-sizing: border-box;
}
.row:after {
    content: "";
    clear: both;
    display: block;
}
[class*="col-"] {
    float: left;
    padding: 15px;
}
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}
html {
    font-family: "Lucida Sans", sans-serif;
}
.header {
    background-color: #9933cc;
    color: #ffffff;
    padding: 15px;
}
.menu ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.menu li {
    padding: 8px;
    margin-bottom: 7px;
    background-color :#33b5e5;
    color: #ffffff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
}
.menu li:hover {
    background-color: #0099cc;
}
</style>
</head>
<body>

<div class="header">
<h1>Chania</h1>
</div>

<div class="row">

<div class="col-3 menu">
<ul>
<li>The Flight</li>
<li>The City</li>
<li>The Island</li>
<li>The Food</li>
</ul>
</div>

<div class="col-9">
<h1>The City</h1>
<p>Chania is the capital of the Chania region on the island of Crete. The city can be divided in two parts, the old town and the modern city.</p>
<p>Resize the browser window to see how the content respond to the resizing.</p>
</div>

</div>
</body>
</html>

Exécuter l'instance»

Cliquez sur "Exécuter l'instance" bouton pour afficher l'instance en ligne