Un site web responsive : wikipedia
Évolution des dispositifs
RWD : ensemble de techniques pour adapter les pages web à toutes les tailles d'écran en gardant un bon rendu et ergonomie.
En français, responsive = réactif, adaptatif.
À éviter
Quelles techniques peut-on utiliser pour adapter une mise en page à plusieurs largeurs d'écran différentes ?
Plusieurs solutions techniques :
@media (min-width: 576px) {
body {
background-color: red;
}
}
div.boite {
margin: 3%;
width: 15%;
}
}
.img-fluid {
max-width: 100%;
height: auto;
}
Deux catégories dans le développement web
Front-end | Back-end |
---|---|
coté client (utilisateur) | coté serveur (hébergeur) |
Présenter le contenu | Générer le contenu |
HTML, CSS et JavaScript | PHP, Java, Python, Ruby, C#… |
HTML est un langage de balisage qui s'occupe du contenu (texte, images, vidéos), de sa sémantique (fonction, importance) et de sa structure
CSS est un langage qui décrit la présentation du document HTML (mise en page, couleurs, polices, animations)
JavaScript (JS) est un langage de programmation pour rendre les pages web interactives
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Mon site web</title>
</head>
<body>
<h1>Bienvenue</h1>
<p>Vous êtes sur ma page web.</p>
</body>
</html>
body {
background-color: red;
}
p {
margin: 10px 0;
padding: 5px;
border: 1px solid #999;
}
h1 {
margin-top: 0;
margin-bottom: 0.5rem;
font-weight: 500;
}
Un document HTML (avec extension .html
) contient des éléments, délimités par une balise ouvrante et une balise fermante.
Il existe plus de 100 éléments différents en HTML5.
Ce qui se trouve entre les deux balises est le contenu.
Un élément peut avoir des attributs, comme class
, id
, style
ou href
.
Structure basique d'un document HTML :
<!DOCTYPE html> <!-- parce que c'est un fichier HTML-->
<html lang="fr">
<head>
<!-- informations pour le navigateur -->
</head>
<body>
<!-- partie visible -->
</body>
</html>
Dans l'entête (<head>
)
<head>
<!-- Titre de la page web, *obligatoire* -->
<title>Mon titre</title>
<!-- Encodage, nécessaire en français -->
<meta charset="utf-8">
<!-- Autres métadonnées -->
<meta name="description" content="Description de cette page web">
<meta name="author" content="Le nom de l'auteur">
<!-- Lien vers une feuille de style -->
<link rel="stylesheet" href="css/style.css">
</head>
Dans le corps (<body>
), il y a deux types d'éléments : les blocks (comme <div>
) et les inlines (<span>
).
Les éléments <div>
et <span>
n'ont pas de sémantique
<header>
, <nav>
, <main>
, <article>
, <section>
, <aside>
, <footer>
<h1>
, …, <h6>
, <p>
, <em>
, <strong>
, <a>
<ul>
, <ol>
, <dl>
, <table>
, <form>
Bonne structure et sémantique correcte :
Validez toujours votre code HTML avec W3C Markup Validation Service
Un document CSS (avec extension .css
) contient des règles, avec un sélecteur suivi de ses déclarations (entre accolades).
Le sélecteur permet d'identifier un type d'élément HTML, et les déclarations définissent comment il est affiché.
Chaque déclaration est formée par une propriété suivie d'une valeur.
Il existe beaucoup de sélecteurs, propriétés et valeurs.
Trois façons d'écrire du code CSS :
style
<h1 style="color: blue; background-color: pink">
Un titre en bleu sur fond rose
</h1>
<style>
<style>
h1 {
color: blue;
background-color: pink;
}
</style>
<link rel="stylesheet" href="feuille-de-style.css">
Permet d’identifier les éléments sur lesquels la règle est appliquée
h1
, .une-classe
, #un-identifiant
p.important
header h1
De plus : pseudo-classes (:hover
) et pseudo-éléments (:first-child
)
Entraînez-vous avec CSS Diner
Propriétés : width
, height
, padding
, border
, margin
…
Bootstrap est un framework, un ensemble de règles CSS et de scripts JS pour créer des sites web beaux, responsives, et avec des animations.
Bootstrap a été conçu par Mark Otto et Jacob Thornton. Bien que Bootstrap ait été créé chez Twitter, c'est libre (licence MIT) et open source.
Nous utiliserons Bootstrap pour :
Il existe d'autres frameworks front-end : Materialize, Foundation, Tailwind …
version | date |
---|---|
5.2.1 | septembre 2022 |
5.0 | mai 2021 |
4.0 | janvier 2018 |
3.0 | août 2013 |
Pour utiliser Bootstrap, il suffit de :
class
dans les éléments HTML avec des noms définis dans Bootstrap
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
<title>Exemple minimal</title>
</head>
<body>
<h1>Bonjour le monde</h1>
<!-- Optional JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
<title>Exemple plus complet</title>
</head>
<body>
<blockquote class="blockquote">
<p>
Nullam quis risus eget urna mollis ornare vel eu leo.
Aenean eu leo quam.
Pellentesque ornare sem lacinia quam venenatis vestibulum.
</p>
<footer class="blockquote-footer">
Cursus Ridiculus
Nullam : <cite title="Titre de la source">Fusce Quam</cite>.
</footer>
</blockquote>
<div class="alert alert-primary" role="alert">
Vestibulum Tortor Euismod Porta Egestas
</div>
<p>Un hippopotame :</p>
<img src="https://media.istockphoto.com/photos/hippo-with-clipping-path-on-white-background-picture-id520386707" class="img-thumbnail" alt="Un hippopotame">
<!-- Optional JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
</body>
</body>
</html>
Regardez le résultat
Il y a 4 sections principales :