2. • Guerre des navigateurs
• Extensions propriétaires.
• La bonne approche -> Créer des sites
respectant les normes W3C.
3. • Organismes militant pour la standardisation
– World Wide Web Consortium (http://www.w3c.org)
• présidé par Tim Berners-Lee inventeur du Web.
• HTML, HyperText Markup Language
• CSS, Cascading Style Sheets
4. Modification limitée du style des éléments
Impossibilité de garantir la cohérence graphique d’un
site sophistiqué
Répétition des même informations
Impossible de réutiliser le style d’un site
5. Avec CSS vous définissez vos couleurs, tailles, … dans des « styles ».
Avantages
Séparation du contenu de l’apparence.
Attributs plus détaillés qu’HTML
Téléchargement et mise en cache des css
10. .ClassSelector {Property:Value;}
<HTML>
<HEAD>
<style type="text/css">
.headline {
font-family:arial; font-size:14px; color:red}
p.bleu {color: blue;}
</style>
</HEAD>
<BODY>
<b class="headline">
Balise gras associée à la classe headline</b>
<br/>
<i class="headline">
Balise italique associée à la classe headline</i>
<p class ="bleu"> Paragraphe dont le texte </br> est bleu
</p>
<p> Paragraphe dont le texte </br> n'es pas bleu</p>
</BODY>
</HTML>
11. #IDSelector {Property:Value;}
<HTML>
<HEAD>
<style type="text/css">
#bleu {color: cyan;}
p#bleu {color: blue;}
p#rouge {color: red;}
</style>
</HEAD>
<BODY>
<b id="bleu">Balise gras associée à l'id bleu</b>
<br/>
<p id="bleu">Paragraphe dont le texte </br> est
bleu</p>
<p id="rouge">Paragraphe dont le texte </br>
est rouge</p>
</BODY>
</HTML>
19. Fichier se terminant par .CSS
Balise <link> pour faire un lien vers la feuille de style externe
<link title="feuilleCss" type="text/css" rel="stylesheet" href="feuille.css">
Importation d’une feuille de style externe
<style type="text/css">
@import url(http://www.itinet.fr/feuille.css);
</style>
Déclaration dans la section <head> du document HTML
20. Ordre de priorité des styles
1. Feuille de style par défaut du navigateur
2. Feuille de style externe
3. Feuille de style interne (dans <head>)
4. Feuille de style inline (dans un élément HTML)
Un style inline surchargera tous les autres styles …
21.
22. Propriété Description Valeurs
font-family Liste par priorité de nom de famille de fonte / ou de
nom de famille génériques.
family-name
generic-family
font-size Définit la taille de la fonte xx-small,x-small, small,
smaller, medium, large,x-
large,xx-large, larger
<longueur>
<%>
font-style Définit le style de la fonte normal, italic, oblique
font-weight Définit le poids d’une fonte normal, bold, bolder,
lighter, 100-900
font Raccourci pour tout spécifier toutes les propriétés de
fonte ainsi que la hauteur de la ligne
font-style font-variant font-
weight font-size/line-height
font-family
24. Propriété Description Valeurs
line-height Modifie la hauteur des lignes d’un élément. normal
nombre
longueur
<%>
text-decoration Décore le texte. none
underline
overline
line-through
blink
text-align Aligne le texte dans un élément. left
right
center
justify
text-indent Indente la première ligne de texte dans un élément. <longueur>
<%>
26. Propriété Description Valeurs
color Couleur de l’élément <couleur>
background-color Couleur de fond de l’élément transparent
<couleur>
background-image Image de fond de l’élément none
url(<URL>)
background-position Place le fond de l’élément <%>
<longueur>
top
center
bottom
left
right
background-repeat Indique si le fond doit se répéter ou non repeat, no-repeat,
repeat-x, repeat-y
Couleur:
Red, blue, green, …
Valeur héxadécimale: #AABBCC
Valeur rgb: RGB(20, 35, 40)
28. blockquote {
background: transparent url(quoleft.png) left top no-repeat;
}
blockquote div {
padding: 0 48px;
background: transparent url(quoright.png) right bottom no-repeat;
}
<blockquote cite="http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.1">
<div> Tables should not be used purely as a means to layout document content as this may present
problems when rendering to non-visual media. Additionally, when used with graphics, these tables
may force users to scroll horizontally to view a table designed on a system with a larger display. To
minimize these problems, authors should use style sheets to control layout rather than tables.
</div>
</blockquote>
30. Propriété Description Valeurs
line-style-image Choisi une image comme marqueur
d’item de liste.
none
url <URL>
line-style-position Place le marque d’item de liste dans
la liste.
inside
outside
line-style-type Définit le type de marqueur d’item de
liste.
none, disc
circle, square
decimal, decimal-leading-zero
lower-roman, upper-roman
lower-alpha, upper-alpha
lower-greek
lower-latin
upper-latin
hebrew
armenian
georgian
cjk-ideographic
hiragana
katakana
hiragana-iroha
katakana-iroha
33. Unité Description
% pourcentage
in pouce
cm centimètres
mm millimètres
em 1em est égal a la hauteur de la
fonte de l’élément courant
ex 1ex est égal à la hauteur de la lettre
« x »
pt point (1/72 pouce)
pc pica (12 points)
px pixel
35. Propriété Description Valeurs
margin
ou margin-top, margin-right,
margin-bottom, margin-left
marge haute, droite, basse,
gauche, droite.
auto
<largeur>
<%>
padding
ou padding-top, padding-right,
padding-bottom, padding-left
remplissage haut, droite, bas,
gauche.
<largeur>
<%>
border
ou
border-top, border-right,
border-bottom, border-left
bordure haute, droite, basse,
gauche.
<largeur>
<%>
<border-style>
width largeur de la zone de contenu <largeur>
height hauteur de la zone de contenu <epaisseur>
border-width ou border-...-
witdh
épaisseur de la bordure <largeur>, thin, medium, thick.
border-color ou border-...-
color
couleur de la bordure
border-style ou border-...-
style
style de la bordure None,hidden,dotted, dashed,
solid, double, groove, ridge,
inset, outset.
39. Propriété Description Valeurs
display Détermine si un élément d'affiche en bloc, en
ligne, ou d'une autre façon
none, block, inline, …
position Détermine la méthode de positionnement de
l'élément.
Les éléments non statiques utilisent les
propriétés top, bottom, right, left.
Les valeurs absolute et fixed implique que
l'élément soit de type bloc (display est ignorée
dans ce cas)
static, relative, absolute, fixed
float Place un élément à gauche ou à droite de son
parent, jusqu'à ce qu'un autre élément de type
bloc soit trouvé.
Les élément "floated" sont retirés du flux normal
et traités comme des éléments de type bloc.
left, right, none
clear Précise les côtés sur lesquels un élément
"floated" ne sera pas autorisé.
left, right, both, none
z-index Spécifie l'ordre d'empilement des éléments. Par
défaut les éléments venant après dans le code
source s'empilent sur ceux venant avant.
auto, entier
visibility Rend un élément transparent sans le retirer du
flux HTML.
visible, hidden, collapse.
53. • Utiliser des feuilles de styles multiples
– Ex:
<link title=" gabarit_3_colonnes.css " type="text/css" rel="stylesheet"
href="gabarit_3_colonnes.css">
<link title=" couleurs.css " type="text/css" rel="stylesheet" href="couleurs.css">
• Utiliser des classes multiples pour vos éléments
– http://www.search-this.com/2007/04/25/optimize-your-c
• Spécifiez toujours (si possible) une largeur pour
vos éléments
54. Afin de garantir la compatibilité de votre code avec les normes CSS1 et
CSS2 n’oubliez pas d’utiliser les validateurs !
http://jigsaw.w3.org/css-validator/
http://www.htmlhelp.com/tools/csscheck/
55. Les normes
• http://www.w3.org/Style/CSS/ | http://www.w3.org/TR/REC-CSS2/
• http://www.w3.org/Style/CSS/learning
• http://www.yoyodesign.org/doc/w3c/css2/cover.html
• http://www.stylegala.com/features/css-reference/
Sites traitant de la programmation Web (xhtml /css)
• http://www.alistapart.com/
• http://openweb.eu.org/
• http://www.wpdfd.com/editorial/basics/index.html#
• http://www.cybercodeur.net/weblog/presentations/seybold/index.html
• http://www.htmldog.com/
• http://www.pompage.net
• http://www.stylegala.com/
• http://webhost.bridgew.edu/etribou/layouts/
• http://stopdesign.com/present/2004/ddw-seattle/tables/
• http://www.alvit.de/handbook/
• http://www.cssbeauty.com/
• http://blog.html.it/layoutgala/
• http://developer.yahoo.com/yui/ et http://developer.yahoo.com/yui/grids/
• http://css.maxdesign.com.au/listamatic/ (listes et menus en CSS)
Mise en page
• http://blog.html.it/layoutgala/
• http://layouts.ironmyers.com/
• http://www.blog-and-blues.org/articles/Float,_clear_et_contextes_de_formatage
Amusez vous avec les CSS:
• http://www.csszengarden.com/
• http://www.alistapart.com/articles/phpswitch/
Notes de l'éditeur
Manque d’homogénéité dans le niveau générale de la classe -&gt;
Les bases d’internet.
Définitions à connaitre
cours css
CSS est un langage permettant simple pour ajouter du style aux pages Web (ex: fontes, couleurs, espacements).
Pendant longtemps, les navigateurs se sont fait la guerre pour capter les clients
chacun -&gt; Propres spécificités, syntaxes
Ensuite, voyant que la bataille ne se jouait pas sur le code -&gt; se sont décider à uniformiser les langages et créer des normes
- Beaucoup de code des navigateurs réécrit pour être compatible avec les standards, et ce n’est toujours pas fini !
Certains navigateurs interprètent les normes différemment.
Les navigateurs développement encore des extensions propriétaires pour se doter de nouvelles fonctionnalités
Ces fonctionnalités marchent dans ces navigateurs mais pas dans d’autres.
Vous pouvez les utilisés mais sachez que la plupart ne seront vraisemblablement pas intégrées dans de futures versions de la norme CSS.
Le mauvais élève : Internet explorer
W3C: regroupe les principales entreprises du web - définir et mettre en place des standards universels.
HTML : Utilise des balises pour structurer la mise en forme des pages web.
CSS : Feuilles de style pour contrôler totalement la mise en forme.
Exemple : définir la couleur de vos textes directement dans vos pages, taille.
Pour personnaliser un élément -&gt; il faut le trouver et le modifier dans la bonne page HTML.
Cohérence graphique (site avec plusieurs pages)
Répétition : ex (deux blocs &lt;div&gt; identiques)
CSS a été introduit pour :
pour garantir au cours du temps la cohérence graphique d’un site sophistiqué
pour éviter de répéter les mêmes informations au travers de toutes les pages
personnaliser simplement un site
Avec CSS vous définissez vos couleurs, tailles, … dans des « styles ».
-&gt; intégrer les styles dans les balises html
Avantage : changement d’un style -&gt; répercussion sur l’intégralité des balises
Utilisation en tant que Feuille de style externe -&gt; télécharger une fois
Temps de chargement réduit et vitesse de navigation amélioré
Feuille de style = suite d’instructions (statements) suggérant au navigateur comment mettre en forme les éléments.
Une instruction (sélecteur + déclaration) définit:
Quels éléments du document HTML seront affectés.
Comment dessiner ces éléments
Chaque instruction doit contenir un sélecteur et une déclaration.
La déclaration vient immédiatement après le sélecteur et est placée entre accolades.
Une déclaration consiste en une ou plusieurs propriétés séparées par des points-virgules.
Chaque propriété est composée d’un nom suivi de « : » et ensuite des valeurs pour cette propriété.
Ces valeurs sont celles précisées dans la spécification CSS.
Si un propriété est multi-valuée, ces valeurs doivent être séparées par une virgule et un espace.
Pour certaines valeurs on peut préciser une unité, il ne faut pas placer d’espace entre la valeur et l’unité.
Conseils : Utiliser des espacements pour rendre lisibles vos feuilles de style.
Associe un style à tous les éléments HTML susceptibles de connaître les propriétés définies par ce style
Agit sur tous les titres, bordures, paragraphes, …, du document HTML
Associe un style à tous les éléments HTML d’un type donné.
Une bonne façon de redéfinir le look des tags.
HTMLSelector {Property:Value;}
Associe un style à certains éléments HTML d’un type particulier.
.ClassSelector {Property:Value;}
Associe un style à un élément HTML unique.
Souvent plusieurs sélecteurs présentent des propriétés communes.
Il peut alors devenir intéressant de les grouper.
Séparez les sélecteurs par des virgules
Permet d’associer un style à un élément contenu directement ou indirectement dans un autre élément.
Permet d’associer un style à un élément contenu directement dans un autre élément.
Permet d’associer un style à un élément suivant immédiatement un autre élément.
Comme tout code qui se respecte, les feuilles de styles se commentent !
balise style : pour définir une feuille de style interne au document HTML
Il est cependant possible de définir une feuille de style comme un fichier externe au document HTML
On utilise l’élément &lt;link&gt; pour faire un lien vers la feuille de style externe
On peut également importer une feuille de style externe (@import)
Maintenant s&apos;utilise pour gérer les bugs de certains navigateurs. Utiliser plutôt &lt;link&gt;.
Se déclare dans la section &lt;head&gt; du document HTML
Les styles sont priorisés en cascade suivant 4 niveaux, le 4ème ayant la plus haute priorité:
Ne font rien par eux-mêmes, mais sont très utiles couplés aux CSS.
Bloc inline &lt;SPAN&gt; est un tag « inline », il permet par exemple d’isoler du texte dans un paragraphe pour lui appliquer un style, sans retour à la ligne.
Comme a, img, em, strong, q, cite, code, …
&lt;DIV&gt; est un tag « block », indiquant que des retour à la ligne sont insérés automatiquement pour différencier le block du contenu l’entourant.
Comme h1..h6, p, ul, ol, li, dl, dd, blockquote …
Flux normal: document parcouru
Verticalement de haut en bas.
Et horizontalement de gauche à droite.
Relatif:
Le contenu est dans le flux normal.
Mais est peut se décaler horizontalement ou verticalement.
Le contenu suivant n’est pas affecté par ce décalage (possibles chevauchements).
Flottant
Boite retirée du flux normal.
Placée le plus à gauche (float:left) ou le plus à droite (float:right).
Le contenu s’écoule le long de cette boite.
Absolu ou fixe
Se place à la position de votre choix dans la page.
Actuellement la mode (et c&apos;est une bonne façon de penser !) est de se passer des &lt;table&gt;&lt;/table&gt; pour la mise en page d&apos;un site web.
Il est recommandé d&apos;utiliser &lt;table&gt; uniquement pour présenter des relations entre les données, relations avec des entêtes …
La présentation peut varier selon les médias
aural, braille, embossed, handheld, print, projection, screen, tty, tv
au sein d’une même feuille de style
Vous pouvez créer une feuille de style dédié à un média, juste pour l’affichage standard à l’écran, pour l’impression, pour les deux, …
Utiliser media = &quot;output&quot; dans une balise &lt;link&gt; ou &lt;style&gt;
Séparer plusieurs valeurs par des points virgules.
La règle @import permet d&apos;inclure un fichier CSS dans un autre fichier CSS
Cette règle doit être placée en tête du fichier (avant toute autre règle). Elle peut spécifier un media type.
Plutôt que de tout caser dans une seule classe (=&gt; généricité + souplesse)