Le format à appliquer à un bloc de texte contenu entre des balises de
formatage peut être adapté pour un document entier (ou un groupe de documents)
par l'utilisation des feuilles de style. Il suffit de référencer la feuille de
style à utiliser pour le document par insertion dans le bloc HEAD de la balise:
<LINK REL=STYLESHEET TYPE="text/css" HREF="style.css">
On peut aussi inclure la feuille de style dans le corps d'un document HTML.
Exemple:
<style>h1 { color: #FF80FF; }</style>
Exemple de contenu pour le fichier style.css
:
/* Mon commentaire */
STRONG,H1,H2,H3,EM { color: #003399 }
UL { list-style-image: url(../charte/rond.gif) }
H1 { font-weight: bold; font-size: 24pt;text-align:center }
H3 { font-size: large; font-variant: small-caps;margin-top=25pt }
BODY { margin:20} /*px, cm, mm, pt*/
TD { color: green ; font-style:italic }
DIV {width:200px; height:200px;overflow:auto;} /* scroll hidden scroll */
PRE {
white-space: pre-wrap; /* CSS2 comme PRE mais on va à la ligne aussi si ça dépasse. nowrap, pre, pre-line (ignore espaces)*/
word-wrap: break-word; /* obsolète, spécifique IE 5.5-7 */
}
A:link {text-decoration:none}
A:visited {text-decoration:none} /*visited, active, hover*/
.rouge { color: red } /* appel par <H1 class="rouge"> */
BR.page { page-break-after: always }
/* Saut de page à l'impression <BR CLASS=page>*/
La syntaxe est la suivante:
balise {propriété1: Valeur1; propriété2: Valeur2; ... }
On peut lister plusieurs balises:
Utilisables pour la page entière, mais aussi pour un tableau, une cellule, ...
background-color:lightyellow;
background-image:url(fond.jpg)
background-repeat:no-repeat; /*mais aussi: repeat-x (ou y)*/
background-position:bottom right; /* ou 20% 10%. Il existe 2 propriétés JS: backgroundPositionX (Y) */
background-attachment:fixed;
line-height: 100px; /* Permet de centrer un texte verticalement sur une image */
A:link {text-decoration:none} /*visited, active, hover*/
A:hover {color:red;text-decoration:underline;text-decoration-style:dashed}
Lien non souligné:
<a href="page.htm" style="text-decoration: none">Lien</a>
UL { list-style-image: url(../charte/rond.gif) }
xx-small, x-small, small, medium, large, x-large, xx-large ou taille définie
en px, cm, mm, ou pt (pas d'espace entre le nombre et l'unité).
Tailles relatives: en %, em (relatif à la taille de police de l'élément parent), smaller, larger.
H1 {line-height: 200%}
#grid td {
width:1.2em;
height:1.2em;
}
.center-div { margin: 0 auto; width: 30%; }Si deux valeurs sont spécifiées, la première s'applique aux marges du haut et du bas et la deuxième aux marges de gauche et de droite.
Pour centrer verticalement (paramêtres "width, height, margin" non pris en compte car seulement pour "block"): .center-div { border: 5px solid blue; display: table-cell; text-align:center; vertical-align:middle; }
Polices génériques:
serif, sans-serif, cursive,fantasy,monospace
MSIE permet le téléchargement à la volée d'une police TrueType.
La police .EOF pour un ensemble "family, style, weight" est crée par MSWEFT à partir d'un fichier .TTF
Dans le fichier EOT est encodée l'URL unique à partir de laquelle ça marche...
border-style:solid; /* double, groove,
inset, outset, dotted, dashed, none */
border-width: thick;
border-color: blue;
padding: 10px; /* entre la bordure et l'élément */
margin: 10px; /* autour de la bordure */
/* chacun de ces attributs peut être individualisé en ajoutant
-left- -right- -top- ou -bottom- */
/* Les propriétés pour "border" peuveut aussi être regroupées
en séparant les attributs avec des espaces (ordre quelconque) */
border: thin outset red
TABLE.fixe {table-layout:fixed}
ce n'est plus le contenu qui dimensionne les cellules
vertical-align:bottom
préférable à attribut VALIGN
cursor: auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help
cursor:hand
est propriétaire Microsoft, utiliser cursor:pointer
à la place
Essai filtre
Mais aussi:
filter:glow(color=blue), dropshadow(color=gray) : plus tranché, flipv(), fliph(), xray(), invert(), blur(), mask(color=gray), Chroma(Color=red) : rend transparent la couleur (pour les .GIF y compris animés)
<IMG SRC=soleil.gif STYLE="filter:chroma(color=white)">
Ces effets peuvent être combinés (séparés par espace):
filter: blur(direction=315) dropshadow()
Filtre wave:
<div STYLE="width:100;height:150;padding:5;text-align:center;filter:wave(strength=5, freq=3, lightstrength=20, add=0, phase=90)">
On peut aussi jouer sur les transitions (comme avec PowerPoint):
<META HTTP-EQUIV="Page-Enter" content="revealTrans(Duration=1.0,Transition=23)">
<META HTTP-EQUIV="Page-Exit" content="revealTrans(Duration=1.0,Transition=23)">
23: transition aléatoire, 2: circle in, 3: circle out, 4: Wipe up, 5: Wipe down, 6: Wipe right, 7: Wipe left
blendTrans(Duration=duration) permet de faire des fade in / fade out.
code {
white-space:pre-wrap !important; /* ignoré par IE */
white-space:pre;
word-wrap:break-word; /* syntaxe IE */
}
!important est une règle CSS qui peut s'appliquer à toutes les propriétés. Elle empêche l'écrasement d'une propriété. Les vielles versions d'IE ignorent les lignes contenant !important.
Mises en page complexes (multicolonnage,...)
<DIV style="FLOAT:left;">colonne 1, ligne 1<br>colonne 1, ligne 2</DIV>
<DIV style="FLOAT:left;">colonne 2, ligne 1<br>colonne 2, ligne 2</DIV>
<DIV style="CLEAR: both" />retour à la normale
fichier externe inclus par la commande @import url(style.css);
au sein d'une feuille de style locale.
On fera les exercices pas à pas en rechargeant la page HTML entre chaque
manipulation.