Chapitre 6
JAVASCRIPT ET LES STYLES (CSS)
 
 
Précédent Suivant
 

JavaScript et les styles (CSS)
Styles en HTML
* Tendance actuelle: séparer le fond de la forme
* Fond = information proprement dite
* Forme = manière de présenter l'information
* Combinaison des langages HTML et CSS
* HTML = Fond
* CSS = Forme
* CSS = Cascading Style Sheet
* Style = apparence
* Permet de décrire l'apparence
* D'une balise
* D'un type de balise
CSS et HTML
* En HTML, utilisation de l'attribut "style"
* Cet attribut contient du code CSS
* <p style="color: blue">c'est en bleu</p>
* Code CSS peut être placé dans l'entête
<head>
<style type="text/css">
...
</style>
</head>
* Peut être placé dans un fichier ".css"
* Inclusion: <link rel="stylesheet" href="nom_fichier"/>
Définir un style (1/3)
* Style par défaut pour un type d'éléments
type {
propriété1: valeur1;
propriété2: valeur2;
...
}
* Exemple
<html>
<head>
<style type="text/css">
p {
color: blue;
}
</style>
</head>
<body>
<p>c'est en bleu</p>
<p>là aussi</p>
</body>
</html>
Définir un style (2/3)
* Style pour une famille (classe) d'éléments
* Dans CSS: .classe { ... }
* Dans HTML: <balise class="classe" ...>...</balise>
* Exemple
<html>
<head>
<style type="text/css">
.en-bleu {
color: blue;
}
</style>
</head>
<body>
<p class="en-bleu">c'est en bleu</p>
<p>pas là, c'est la couleur par défaut</p>
</body>
</html>
Définir un style (3/3)
* Style pour un objet précis
* Dans CSS: #identifiant { ... }
* Dans HTML: <balise id="identifiant" ...>...</balise>
* Exemple
<html>
<head>
<style type="text/css">
#paragraf {
color: blue;
}
</style>
</head>
<body>
<p id='paragraf'>c'est en bleu</p>
</body>
</html>
Propriétés modifiables par le style
* Apparence d'un élément
* Texte
* Fonte, taille, famille, alignement...
* Cadre
* Bordure, espacement (interne et externe)...
* Fond
* Couleur, image...
* Positionnement
* Disposition, dimension...
* ...
* Liste des propriétés
* http://www.w3schools.com/css/
Avec JavaScript, l'attribut "style" (1/2)
* Représente l'attribut "style" des éléments HTML
* Tous les éléments visibles ont cet attribut
* <p id="pg" style="color: green">
* document.getElementById("pg").style.color = "green";
* Convention de nommage des propriétés
* En CSS
* En minuscules
* Mot composé: mots séparés par un "-"
* Exemple: background-color
* Avec JavaScript
* En minuscules (à l'exception des mots composés)
* Mot composé: mots collés avec première lettre en majuscule
* Exemple: backgroundColor
Avec JavaScript, l'attribut "style" (2/2)
* Déplacer un élément
* document.getElementById("element").style.left = 500;
* document.getElementById("element").style.top = 10;
* Modifier la taille d'un élément
* document.getElementById("element").style.width = 200;
* document.getElementById("element").style.height = 300;
* Modifier les couleurs d'un élément
* document.getElementById("element").style.backgroundColor
= "blue";
* document.getElementById("element").style.color = "white";
Placement des éléments HTML (1/2)
* Eléments de type bloc
* <h1> ... <h6>
* <p>
* <ul>, <ol>, <li>
* <blockquote>
* <pre>
* <table>
* ...
* Elément bloc générique: <div>
* Elément vierge
* Sans propriétés au départ
* Placement par défaut
* Succession verticale de haut en bas
* Jamais deux blocs sur une même ligne
Placement des éléments HTML (2/2)
* Eléments de type en-ligne
* <a>
* <img>
* <em>, <strong> (remplaçants de <i> et <b>)
* <cite>
* <code>
* ...
* Elément en-ligne générique: <span>
* Elément vierge
* Sans propriété au départ
* Placement par défaut
* Succession horizontale de gauche à droite
* Plusieurs éléments sur la même ligne
* Alignement
* Horizontal: conditionné par "text-align" de son conteneur
* Vertical: conditionné par son propre "vertical-align"
Contrôler la position des éléments
* Plusieurs méthodes de positionnement
* Toutes utiles en fonction des besoins
* Positionnement statique
* Comportement par défaut
* Positionnement relatif
* Translation par rapport à la position par défaut
* Positionnement flottant
* Placement le plus à gauche ou droite possible
* Positionnement absolu
* Placement par rapport à la position de son conteneur
Positionnement relatif
* Exemple: 3 éléments en-ligne
* Sortie du flux normal de placement
* style="position: relative;"
* La zone du placement par défaut est conservée
* Translation par rapport à la position initiale
* Propriétés: left, right, bottom ou top
* Ici: style="position: relative; left: npx; top: mpx;"
Positionnement flottant (1/3)
* Sortie du flux normal de placement
* style="float: left;"
Placement le plus à gauche possible
* style="float: right;"
Placement le plus à droite possible
* Exemple: 4 éléments blocs normaux
Positionnement flottant (2/3)
* Exemple: un élément flottant
* Exemple: deux éléments flottants
Positionnement flottant (3/3)
* Exemple: trois éléments flottants
* Exemple: propriété "clear"
* style="clear: left/right/both;"
* Signifie pas de flottant à gauche et/ou à droite de l'élément
Positionnement absolu
* Exemple: élément contenu dans un autre
* Sortie du flux normal de placement
* style="position: absolute;"
* Translation par rapport au niveau supérieur
* Propriétés: left, right, bottom ou top
* Au conteneur si il est positionné
* "position: absolute" ou "position: relative"
* A la page si le conteneur n'est pas positionné
* "position: static" ou "float: left/right"
Chevauchement: profondeur des éléments
* Des éléments peuvent se chevaucher
* Comment contrôler qui est devant l'autre ?
* Notion de profondeur
* Attribut "z-index"
* Plus la valeur est grande, plus l'élément est en avant
* Ordre de superposition par défaut
* Non positionné (position: static)
* Flottant
* Position relative
* Position absolue
* Modifiable uniquement pour les éléments positionnés
(position relative ou absolue)
Cacher un élément HTML
* Attribut "visibility"
* Cache l'élément mais son espace reste visible
* Masquer l'élément
* document.getElementById("element").style.visibility = "hidden";
* Démasquer l'élément
* document.getElementById("element").style.visibility = "visible";
* Attribut "display"
* Cache l'élément ainsi que son espace
* Masquer l'élément
* document.getElementById("element").style.display = "none";
* Démasquer l'élément
* document.getElementById("element").style.display = "";