CM | TD | TP |
---|---|---|
0 | 4 | 8 |
Évolutions des dispositifs
RWD : ensemble de techniques pour adapter les pages web à toutes les tailles d'écran en gardant un bon rendu et ergonomie.
Plusieurs solutions :
@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) |
HTML, CSS et JavaScript | PHP, Java, Python, Ruby, C#, etc. |
Afficher le contenu | Générer le contenu |
Un développeur est dit full stack s'il fait les deux.
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>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
body {
background-color: red;
}
p {
margin: 10px 0;
padding: 5px;
border: 1px solid #999;
}
h {
margin-top: 0;
margin-bottom: 0.5rem;
font-weight: 500;
}
Un document HTML (avec extension .html
) contient des éléments (elements), délimités par une balise (tag) 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 contenir des attributs, comme class
, id
, style
ou href
.
Structure basique d'un document HTML :
<!DOCTYPE html> <!-- parce que c'est un fichier HTML-->
<html>
<head>
<!-- informations pour le navigateur -->
</head>
<body>
<!-- partie visible -->
</body>
</html>
Dans l'entête (<head>
)
<head>
<!-- Titre de la page web, *obligatoire* -->
Mon titre
<!-- Encodage, nécessaire en français -->
<!-- Autres métadonnées -->
<!-- Lien vers une feuille de style -->
</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 (rules), avec un sélecteur (selector) suivi de ses déclarations (entre accolades).
Le sélecteur permet d'identifier un type d'élément HTML, et les règles définissent comment il est affiché.
Chaque déclaration est formé 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
, ...
HTML et CSS sont les bases du développement web front-end.
Faire des feuilles de style CSS pour avoir une belle page web peut être pénible, donc il faut mieux utiliser un framework.
Dans ce module, on va utiliser Bootstrap.
Bootstrap est un framework, une plateforme, 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.
version | date |
---|---|
4.3.1 | 13 février 2019 |
4.2.1 | 21 décembre 2018 |
4.1.3 | 24 juillet 2018 |
4.1 | 9 avril 2018 |
4.0 | 18 janvier 2018 |
3.0 | 19 août 2013 |
Donc ça ne devrait pas trop changer d'ici à 2023 (?)
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, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" 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 rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>Hello, world!</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="hippopotame.jpg" class="img-thumbnail" alt="Un hippopotame">
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
Et encore plus.
Il y a 4 sections principales :