CSS2 - Synthese Formation
CSS2 - Synthese Formation
CSS2 - Synthese Formation
Pour un designer, se conformer aux normes du W3C présente des avantages, parmi eux :
- Assurer la perrénité du site.
- Assurer un affichage correct des pages sur la plupart des navigateurs.
Softwares nécessaire :
- Dreamweaver permet de gagner du temps sur la structuration de mon document en HTML : p, div, h1, h2, h3, ul, li, a, img.
Ensuite, pour affiner le code et créer les feuilles de style CSS :
- Editeur de code : Komodo Edit 5
- Navigateur : Morzilla Firefox
- Inspecteur/testeur de code : Firebug (extension à installer sur Morzilla)
- Validateur de code : Web Developper (extension à installer sur Morzilla)
- Indicateur de teintes : Colorzilla (extension à installer sur Morzilla)
- Faux texte : www.lipsum.com
- Doctype-type “Squelettor“: www.alsacreation.com
- Tutos : www.pompage.net
Les codes HTML et CSS2 sont analysés par les navigateurs. Ils permettent de créer des sites internet dont l'interface sera STATIQUE mais pas
ou très peu dynamique. Insensible aux retours à la ligne, ce balisage HTML permet de STRUCTURER ma page et de DÉSIGNER des
éléments-CIBLES auquel je vais attribuer un style en appelant une feuille de styles CSS externe.
1 : Etablir une STRUCTURE CLAIRE EN HTML -> sémantiquement logique, compréhensible même nue (pouvant être comprise même sur un
navigateur non-graphique).
2 : DÉSIGNER les éléments EN HTML -> pour leur appliquer du style ensuite.
3 : STYLER EN CSS -> design de la page
4 : En dernier lieu, recourir aux bidouilles nécessaires pour un affichage correct sur les anciens navigateurs.
- Doctype : ouvrir le modele Squelettor sur KOMODO EDIT et y INJECTER le contenu brut non balisé de mon document
- Nommer mon document
- Rentrer le titre : <title> titre </title> (important car il permet le lien vers les feuilles de styles CSS)
- Définir le jeu de caractère idéal : charset:ISO-8859-1
Pour structurer logiquement, la 1ère étape consiste à imaginer la construction de ma page comme autant d'éléments html : combien de
titres, combien de colonnes, combien de listes... Il faut respecter la STRUCTURE de l'Information, ne pas passer un titre qui doit être assez
petit au final mais qui dépend d'un titre de niveau <h2> en niveau <h5>, mais toujours en niveau directement inférieur, cad <h2>. S'il faut le
réduire, je suis toujours à temps de le faire dans ma feuille css.
Un élément HTML est composé d'une balise ouvrante, d'un contenu et d'une balise fermante. Elles doit être porteuses de SENS, jouant un
rôle sémantique.
- COMMENTER la balise fermante de chaque élément div (# ou . devant le nom pour notifier s'il s'agit d'un identifiant ou d'une classe) permet
de mieux comprendre les pages de code. par ex : <!-- fin #entête -->
Toujours indiquer dans mon code à quoi correspond telle ou telle partie à l’aide des commentaires.
• Créer un paragraphe :
<p>contenu du paragraphe</p>
Pour engraisser ou italiser un lien, ces attributs sont contenus à l'intérieur de la balise <a> :
<a href="#"><strong>texte correspondant au lien</strong></a>
<a href="#"><em>texte correspondant au lien</em></a>
• Créer un lien :
<a href=“nom de la page de destination“> nom du lien visible </a>
Classes et identifiants : il est essentiel de créer en amont des style des classes et des identifiants qui permettront ensuite en CSS de
viser afin d’attribuer tel ou tel style à différents éléments présents dans ma page. un identifiant ne peut porter que sur un objet unique et
structurant de la page (par exemple un menu, un pied, un entete) ; une classe sera utilisée pour un style présent plusieurs fois sur la page,
COMMUN à plusieurs éléments.
<div id="exemple">
contenu de la boîte
</div> <!--fin exemple --> (commentaire essentiel qui indique à quelle division correspond cette balise fermante).
Il est possible d’appliquer 2 classes à un même élément en les séparant par un espace (par ex : <h2 class=“sommaire titre2“> (et il est tout
autant possible en CSS d’appliquer une classe à plusieurs sélecteurs)
Toute page HTML possède une généalogie des boîte en contenant d'autres :
Identifier uniquement les éléments au 1er niveau de la hiérarchie, les ancêtres. Dans ma feuille css, utiliser des sélecteurs de
descendants afin de mieux viser les sélecteurs dans la multitude de styles utilisés. Plus j’exploite les PROPRIÉTÉS D’HÉRITAGE que
proposent les éléments “ancêtres“ désignés au préalable (il n’est pas nécessaire de nommer les éléments “enfants“), plus mon code sera
allégé, et plus ma page s’affichera vite.
Par exemple, en HTML, je crée cette liste de liens que je souhaite styliser :
ul <id=“menu»>
<li><a href=“index.html“>photos<a>
<li><a href=“index.html“>Chroniques<a>
<li><a href=“index.html“>news<a>
</ul>
La liste <ul> est l’ancêtre des item <li> qui contiennent eux-même les liens <a> auquel je souhaite attribuer un certain style. Pour cela, je
désigne tout simplement le sélecteur suivant :
#menu li a {
text-decoration: none;
}
• Formulaires :
La balise <form> contient tout le formulaire.
La balise <input> correspond à un champ à remplir.
La balise <submit> correspond à un champ de validation.
- Fermer mon document et l’ouvrir sur Komodo Edit 5 pour épurer le code html et créer les feuilles de style css.
Styler en CSS :
L’aspect graphique relève des feuilles de style CSS2. Précéder mes styles CSS par un commentaire CSS pour mieux me repérer afin de
savoir à quels éléments j'attribue les styles qui suivent :
/*styles globaux*/ ou /*styles de la colonne de gauche*/
Une rêgle de style est constituée d’un sélecteur et d’un déclaration de style :
Afin de styler les différents éléments d’un site sans confondre les noms, on rajoute devant les éléments enfants la classe ou l’identifiant de
leur parent ou ancêtre. Par exemple :
La balise <div class="fiche-produit"> contient des balises <h2>, <p>, et une div #argumentaire.
Dans la feuille de style, on rajoute donc à tous les élément-enfants contenus dans cette div la classe ou l'identifiant de leur élément-
parent :
.fiche-produit h2 {
}
.fiche-produit p {
}
.fiche-produit .argumentaire {
}
• BOîTES :
La balise DIV est l'unique balise de type BLOC qui ne possède pas de marges INTERNES ni EXTERNES (contrairement aux balises <p>,
<ul>, <li>, <h1>). Il faut donc pour toutes les autres balises de type bloc avec des taille précisées leur appliquer une margin : 0px et un
padding : 0px.
En html :
<body>
<div id="conteneur">
tout mon document
</div> <!-- fin #conteneur -->
</body>
en css :
body {
margin: 0px ;
padding: 10px ;
font-size: 80% (minimum) ;
font-family: Arial, Helvetica, sans-serif ;
color: white ;
Background: black url(chemin vers l'image) ; Ici la valeur black est essentielle car elle permet d'afficher une couleur de fond au cas où l'image
de fond ne s'affiche pas pour une raison ou une autre.
}
#conteneur {
width: 750px ;
margin: 0 auto ;
}
- Définir une hauteur minimum à une boîte (utile dans le cas où la boîte affiche en background une image mesurant 160 pixels de haut et
susceptible d'accueillir du texte en plus) :
min-height: 160px ;
• IMAGES :
- Placer une image d’arrière-plan dans un élément de type BLOC :
background-image: url(nom du dossier source) ;
ou
body {
background: url (nom de l'image.jpg ou .png) center right ("position") no-repeat (repeat) ;
scroll ("attachment" cad fixation de l'image en cas de barre d'ascenseur) ;
}
• CADRES :
- Pour supprimer la bordure bleue présente par défaut autour des images-liens :
img {
border: 0 (width) none (style) ;
}
- Courant : Si un élément de type bloc n'a aucune width précisée, il occcupe toute la largeur de la page dans le flux.
un élément enfant peut être précisément positionné en "top", "right" par rapport à la position de son élément parent géré en "position-relative".
La balise <div> est la SEULE balise de type BLOC qui ne possède pas de marges internes et externes, contrairement aux balises <p>, <ul>,
<a>, etc
- Relatif : les valeurs (top, right, bottom,ow left) decalent l'élément (<p>, <a>, <span> ou <img>) par rapport à son parent DIRECT.
- Absolu : les valeurs (top, right, bottom,ow left) decadent l'élément (<p>, <a>, <span> ou <img>) par rapport à son ancêtre position (<body>
par défaut, sinon il faut appliquer une PROPRIÉTÉ de POSITION à son élément conteneur)
- Flottant : l'élément est poussé à DROITE ou à GAUCHE du conteneur et la SUITE DU FLUX s'écoule AUTOUR. Il ne peut pas être centré.
C'est une solution intermédiaire entre le flux courant et absolu (qui fait sortir l'élément du flux complètement). Le style "clear: both" appliqué à
l'élément suivant agit comme une barrière interdisant tout flottant à son niveau et peut être caché :
.séparation {
clear: both ;
visibility: hidden ;
}
• TEXTES :
Une police de caractère devant être affichée doit nécessairement être fournie par l’ordinateur du visiteur. Il faut donc se limiter aux fontes
standard livrées par défaut avec les systèmes d’exploitation :
- Choisir une fonte : afin de maîtriser l’affichage, il faut suggérer 2 ou 3 possibilités de remplacement sur toute la page :
body {
font-family: Trebuchet, Times, Verdana, Sans-Serif ;
}
ou
body {
font-family: Arial, “Helvetica, Sans-Serif ;
}
Texte courant :
• font-size: 0.9em (minimum pour des questions de lisibilité) ;
- Modifier l'interlignage :
.colonnes {
line-height: 1.4em (correspond à 140 %) ;
- Justifier le texte :
.justification {
text-align: justify ;
}
- Capitales :
.majuscules {
text-transform: uppercase ;
}
• LIENS :
- Supprimer le soulignement d'un lien :
text-decoration: none ;
CONSEILS :
- INDENTER (avec une tabulation) le contenu des éléments <div> ou <ul> confèrent une clarté visuelle aux pages de code.
- Précéder mes styles CSS par un commentaire CSS pour mieux me repérer afin de savoir à quels éléments j'attribue les styles qui suivent :
/*styles globaux*/ ou /*styles de la colonne de gauche*/
Affichage plus rapide : il est possible de PRECHARGER des images récurantes pour rendre le site plus réactif, notemment lors du survol du
menu :
en HTML :
<body>
<div class=cache>
En css :
.cache {
position: absolute ;
left: 0 ;
top: - 5000px ; (ainsi l'image se charge mais hors de la page affichée)
}
JARGON :
- l’ARBORESCENCE : il s’agit de la hiérarchie des blocs (les descendants dépendent directement des ancêtres)
DYNAMISME :
Une page possède une ambiance de couleurs générale, composée de 2 teintes principales (à différents pourcentages) et une 3ème qui
apparait par petites touches et qui tranche avec le reste. On la retrouvera par exemple dans les textes des éléments réagissant en rollover
(sélecteur a :hover).
Faire apparaitre une bulle qui s'affiche automatiquement au-dessus d'un lien :
<a href="photo.html" title="cliquez ici pour voir les jolies photos"> photos (ou <img src="image.png" alt="photographie"/>) </a>
Il faut un menu (horizontal ou vertical), des boutons d’accès rapide, un fil d’ariane (sélecteur a :visited).
Internet Explorer 6 :
- Il est fortement conseillé d'utiliser les commentaires conditionnels pour CONTOURNER les bogues. Ils se placent à l’intérieur de la balise
<head> :
< !-- [if IE]>
Saisir ici le code HTML réservé à IE
< ! [endif] -->
- Le mode QUIRKS affiche un modèle de boîte érroné concernant IE jusqu'à la version 6. Pour éviter cet affichage, il faut bien rédiger le
doctype.