body { background: white; color: black; } /* ceci est un commentaire dans une feuille de style. à partir de maintenant les commentaires à propos de cette feuille seront en bleu */ div.slide { background-color: white; margin: 1em; padding: .5em; border: solid; border-width: 1px; border-color: #6666ff; } /* les feuilles de style suivent une syntaxe particulière. Ici, on vient de définir les divisions de classe slide, et en-dessous, il y a les divisions de classe example. Le terme classe sera expliqué plus tard. Retenons pour l'instant qu'en HTML le code utilisé pour avoir une division suivant le style de classe slide est : <div class=slide>bla bla bla<div> ce qui donnera le texte "bla bla bla" sur un fond blanc, dans une boîte ayant une marge externe et interne d'une certaine valeur, et avec une bordure d'une certaine valeur et d'une certaine couleur. Tout ce qui en gras dans la définition ci-dessus constitue un bloc. */ div.example { width: 100%; color: black; } /* Noter qu'un même nom de classe peut être attribué à des éléments HTML différents, ici, une div et un tt */ tt.example { color: maroon; margin-left: 1em; } pre { color: maroon; margin-left: 1em; } /* pour toutes les sections <pre>...</pre> la couleur de premier plan est le marron, avec une marge de tant, mais pour les sections de classe dtd la couleur de premier plan est noire, et il n'y a pas de marge */ pre.dtd { color: black; margin-left: 0; } div.deprecated-example { width: 100%; color: red; border: solid rgb(255,165,0); /* orange */ } /* de plus en plus fort : les paragraphes contenus dans une division de classe deprecated-example ont le noir comme couleur de premier plan */ div.deprecated-example p { color: black; } /* la casse des identificateurs n'a pas d'importance */ DIV.subtoc {paDDinG: 1em; border: solid thin; margin: 1em 0; background: #ddd}
"cette ligne est plus facile \ à éditer" "cette ligne est plus facile \ à effacer" "cette ligne est plus facile \ à repérer"
"voilà comment inclure un guillemet (un \") dans une chaîne" 'mais on aurait pu faire comme ça (un "), si on voulait' 'mais on n\'aurait pas pu faire autrement'
"comme\00000Aceci" "ou comme\0A cela"
"\000041ttention" "Attention" "\41 ttention" "\000041 ttention"mais pour produire "A ttention", il faut insérer une espace supplémentaire,
"\000041 ttention" "\41 ttention"
IDENT {ident} ATKEYWORD @{ident} STRING {string} HASH #{name} NUMBER {num} PERCENTAGE {num}% DIMENSION {num}{ident} URI url\({w}{string}{w}\) |url\({w}([!#$%&*-~]|{nonascii}|{escape})*{w}\) UNICODE-RANGE U\+[0-9A-F?]{1,6}(-[0-9A-F]{1,6})? CDO <!-- CDC --> ; ; { \{ } \} ( \( ) \) [ \[ ] \] S [ \t\r\n\f]+ COMMENT \/\*[^*]*\*+([^/][^*]*\*+)*\/ FUNCTION {ident}\( INCLUDES ~= DASHMATCH |= DELIM any other character not matched by the above rules
ident {nmstart}{nmchar}* name {nmchar}+ nmstart [a-zA-Z]|{nonascii}|{escape} nonascii [^\0-\177] unicode \\[0-9a-f]{1,6}[ \n\r\t\f]? escape {unicode}|\\[ -~\200-\4177777] nmchar [a-z0-9-]|{nonascii}|{escape} num [0-9]+|[0-9]*\.[0-9]+ string {string1}|{string2} string1 \"([\t !#$%&(-~]|\\{nl}|\'|{nonascii}|{escape})*\" string2 \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\' nl \n|\r\n|\r|\f w [ \t\r\n\f]*
stylesheet : [ CDO | CDC | S | statement ]*; statement : ruleset | at-rule; at-rule : ATKEYWORD S* any* [ block | ';' S* ]; block : '{' S* [ any | block | ATKEYWORD S* | ';' ]* '}' S*; ruleset : selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*; selector : any+; declaration : property ':' S* value; property : IDENT S*; value : [ any | block | ATKEYWORD S* ]+; any : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING | DELIM | URI | HASH | UNICODE-RANGE | INCLUDES | FUNCTION | DASHMATCH | '(' any* ')' | '[' any* ']' ] S*;
<STYLE type="text/css" title="style local"> <!-- div.slide { background-color: white; margin: 1em; padding: .5em; border: solid; border-width: 3px; border-color: #ff9999; } --> </STYLE>
Dans une feuille de style, il est possible d'importer les déclarations d'une autre feuille. On utilise pour ça une règle "at", par exemple
/* fichier default.css */ @import "special.css"; /* noter le ; à la fin */ @import url(http://somewhere.to/nowhere.css); P {color: blue} /* noter que les @import doivent précéder les règles classiques sous peine d'invalidité de la feuille de style */
<!ELEMENT LINK - o EMPTY > <!ATTLIST LINK %attrs; charset %Charset; #IMPLIED href %URI; #IMPLIED hreflang %LanguageCode; #IMPLIED type %ContentType; #IMPLIED rel %LinkTypes; #IMPLIED rev %LinkTypes; #IMPLIED media %MediaDesc; #IMPLIED >
REL | TITLE | Signification |
---|---|---|
stylesheet | <rien> | Feuille persistante, qui doit toujours être prise en compte |
stylesheet | <une valeur> | Feuille préférée |
alternate stylesheet | <une valeur> | Feuille participant à une alternative, et devant être proposée à l'utilisateur |
<LINK REL="stylesheet" TYPE="text/css" HREF="foo.css"> <LINK REL="stylesheet" TYPE="text/css" HREF="bar1.css TITLE="Feuille Bar1"> <LINK REL="stylesheet" TYPE="text/css" HREF="bar2.css TITLE="Feuille Bar2"> <LINK REL="alternate stylesheet" TYPE="text/css" HREF="foobar.css TITLE="Feuille FooBar"> <LINK REL="alternate stylesheet" TYPE="text/css" HREF="foobar2.css TITLE="Feuille Bar2">
Si votre site web n'a aucune feuille de style, ne vous cassez pas la tête avec des LINK à insérer partout...
Attention de bien respecter l'esprit des feuilles de style. Ne pas mélanger
aspect physique et structure de document :
SPAN.adresse {font-style:italic;
text-align: right}
<P> l'<span style="color:
blue;"><em>emphasize</em></span> n'est plus
en italique mais en gras (et en théorie).
DIV *
P correspond à tous les P au moins petit-fils d'un DIV
<P> l'<em>emphasize</em> est censé être graissé
Texte faisant <a href="#fn1" name="topfn1">appel
à une note de bas de page</a>...
La dite note est automatiquement
suivie de [Retour <a href="#topfn1">dans le texte</a>]
H1 {font-family: helvetica} H2 {font-family: helvetica} H3 {font-family: helvetica} H4 {font-family: helvetica} H5 {font-family: helvetica} H6 {font-family: helvetica}est équivalent à :
Un paragraphe vert ayant un mot en gras a bien ce mot gras vert (<b> a hérité du style de son <p> englobant)
<p style="color: green">Un paragraphe vert ayant un <b>mot</b> en gras...
Nota:Toutes les propriétés ne s'héritent pas ainsi, mais il est possible de forcer un héritage si besoin est.
Soit la feuille de style (improbable) suivante :
LI {color: blue} OL LI {color: red} OL.bidule LI {color: fuchsia} DIV TABLE#glou TD LI#gla {color: green}On va faire quelques calculs, mais pour simplifier, on dira que a=0, b=1, c=2 etc... L'idée est de fabriquer un mot de 3 lettres pour chacune de ces déclarations.
|
Allez ! On mélange tout ce qui est au-dessus, et qu'est-ce qui sort ? Un algorithme de cascade des styles (pour chaque élément) :
Un paragraphe aligné à gauche. Lorem ipsum
dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod
tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim
veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip
ex ea commodo consequat. Duis te feugifacilisi.
<p
style="text-align: left">
Un paragraphe aligné à droite. Lorem ipsum
dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod
tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim
veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip
ex ea commodo consequat. Duis te feugifacilisi.
<p
style="text-align: right">
Un paragraphe centré. Lorem ipsum dolor sit
amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut
lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis
nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea
commodo consequat. Duis te feugifacilisi.
<p
style="text-align: center">
Un paragraphe justifié. Lorem ipsum dolor
sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt
ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam,
quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea
commodo consequat. Duis te feugifacilisi.
<p
style="text-align: justify">
Un paragraphe indenté. Lorem ipsum dolor sit
amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut
lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis
nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea
commodo consequat. Duis te feugifacilisi.
<p
style="text-indent: 2em">
Un autre paragraphe indenté,
et justifié. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed
diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat
volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper
suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te
feugifacilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed
diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat
volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper
suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te
feugifacilisi.
<p style="text-indent: 20%;
text-align: justify">
Les 20% sont relatifs à la longueur du
paragraphe sans indentation (en fait, la boîte englobante, cf. plus loin).
Un paragraphe indenté avec une valeur
négative. Noter le débordement. Lorem ipsum dolor sit amet, consectetuer
adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna
aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution
ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te
feugifacilisi.
<p style="text-indent:
-1em">
Un paragraphe souligné et
surligné. L'est-il vraiment, d'ailleurs ? Lorem ipsum dolor sit amet,
consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet
dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud
exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo
consequat. Duis te feugifacilisi.
<p
style="text-decoration: underline overline">
Autre valeurs
possibles : line-through et blink et none
Un paragraphe avec chaque mot
capitalisé. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed
diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat
volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper
suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te
feugifacilisi.
<p style="text-transform:
capitalize">
Autre valeurs possibles : uppercase et
lowercase et none (il y a toujours
none ; noter l'absence de majuscule en début de cette
paranthèse)
Exemple avec pre Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
Exemple avec nowrap Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
Lorem ipsum dolor sit amet,
consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet
dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud
exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo
consequat. Duis te feugifacilisi.
<p
style="text-align: justify; word-spacing: 5em">
Il s'agit d'une
espace en plus de l'espace standard.
Lorem ipsum dolor sit amet,
consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet
dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud
exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo
consequat. Duis te feugifacilisi.
<p
style="text-align: justify; letter-spacing: 5em">
Il s'agit d'une
espace en plus de l'espace standard.
text-shadow: none | [<color> || <length> <length> <length>? , ]* [<color> || <length> <length> <length>?] | inherit
H1 { text-shadow: 0.2em 0.2em } H2 { text-shadow: 3px 3px 5px red } H2 { text-shadow: 3px 3px red, yellow -3px 3px 2px, 3px -3px } SPAN.glow { background: white; color: white; text-shadow: black 0px 0px 5px; }
Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam
erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution
ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te
feugifacilisi.
<p style="direction:
rtl;">
à gauche 1carac milieu 2carac à droite
à gauche 2carac milieu 1carac à droite
à gauche 2carac ueilim 1carac à droite
<p class=example style="direction: ltr;">à gauche <span style="direction: rtl; unicode-bidi: normal">carac1 milieu carac2</span> à droite </p> <p class=example style="direction: ltr;">à gauche <span style="direction: rtl; unicode-bidi: embed">carac1 milieu carac2</span> à droite </p> <p class=example style="direction: ltr;">à gauche <span style="direction: rtl; unicode-bidi: bidi-override">carac1 milieu carac2</span> à droite </p>
[ [ <'font-style'> || <'font-variant'> || <'font-weight'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar | inherit
P { font: 12pt/14pt sans-serif } P { font: 80% sans-serif } P { font: x-large/110% "new century schoolbook", serif } P { font: bold italic large Palatino, serif } P { font: normal small-caps 120%/120% fantasy } P { font: oblique 12pt "Helvetica Nue", serif; font-stretch: condensed }
Soit la liste de polices suivantes désirées :
Swiss 721 light | light & light italic |
Swiss 721 | roman, bold, italic, bold italic |
Swiss 721 medium | medium & medium italic |
Swiss 721 heavy | heavy & heavy italic |
Swiss 721 black | black, black italic, & black #2 |
Swiss 721 Condensed | roman, bold, italic, bold italic |
Swiss 721 Expanded | roman, bold, italic, bold italic |
Les descriptions de polices suivantes peuvent être proposées pour permettre leur téléchargement ensuite.
@font-face { font-family: "Swiss 721"; src: url("swiss721lt.pfr"); /* Swiss 721 light */ font-style: normal, italic; font-weight: 200; } @font-face { font-family: "Swiss 721"; src: url("swiss721.pfr"); /* The regular Swiss 721 */ } @font-face { font-family: "Swiss 721"; src: url("swiss721md.pfr"); /* Swiss 721 medium */ font-style: normal, italic; font-weight: 500; } @font-face { font-family: "Swiss 721"; src: url("swiss721hvy.pfr"); /* Swiss 721 heavy */ font-style: normal, italic; font-weight: 700; } @font-face { font-family: "Swiss 721"; src: url("swiss721blk.pfr"); /* Swiss 721 black */ font-style: normal, italic; font-weight: 800,900; /* note the interesting problem that the 900 weight italic doesn't exist */ } @font-face { font-family: "Swiss 721"; src: url(swiss721.pfr); /* The condensed Swiss 721 */ font-stretch: condensed; } @font-face { font-family: "Swiss 721"; src: url(swiss721.pfr); /* The expanded Swiss 721 */ font-stretch: expanded; }
[[format( [, ]*)] | ] [, [format( [, ]*)] | ]*
Chaîne de caractère | Format correspondant | Quelques extensions classiques |
---|---|---|
"truedoc-pfr" | TrueDoc Portable Font Resource | .pfr |
"embedded-opentype" | Embedded OpenType | .eot |
"type-1" | PostScript Type 1 | .pfb, .pfa |
"truetype" | TrueType | .ttf |
"opentype" | OpenType, including TrueType Open | .ttf |
"truetype-gx" | TrueType with GX extensions | |
"speedo" | Speedo | |
"intellifont" | Intellifont |
Pourquoi une palette ?
000000 | 000033 | 000066 | 000099 | 0000CC | 0000FF |
003300 | 003333 | 003366 | 003399 | 0033CC | 0033FF |
006600 | 006633 | 006666 | 006699 | 0066CC | 0066FF |
009900 | 009933 | 009966 | 009999 | 0099CC | 0099FF |
00CC00 | 00CC33 | 00CC66 | 00CC99 | 00CCCC | 00CCFF |
00FF00 | 00FF33 | 00FF66 | 00FF99 | 00FFCC | 00FFFF |
330000 | 330033 | 330066 | 330099 | 3300CC | 3300FF |
333300 | 333333 | 333366 | 333399 | 3333CC | 3333FF |
336600 | 336633 | 336666 | 336699 | 3366CC | 3366FF |
339900 | 339933 | 339966 | 339999 | 3399CC | 3399FF |
33CC00 | 33CC33 | 33CC66 | 33CC99 | 33CCCC | 33CCFF |
33FF00 | 33FF33 | 33FF66 | 33FF99 | 33FFCC | 33FFFF |
660000 | 660033 | 660066 | 660099 | 6600CC | 6600FF |
663300 | 663333 | 663366 | 663399 | 6633CC | 6633FF |
666600 | 666633 | 666666 | 666699 | 6666CC | 6666FF |
669900 | 669933 | 669966 | 669999 | 6699CC | 6699FF |
66CC00 | 66CC33 | 66CC66 | 66CC99 | 66CCCC | 66CCFF |
66FF00 | 66FF33 | 66FF66 | 66FF99 | 66FFCC | 66FFFF |
990000 | 990033 | 990066 | 990099 | 9900CC | 9900FF |
993300 | 993333 | 993366 | 993399 | 9933CC | 9933FF |
996600 | 996633 | 996666 | 996699 | 9966CC | 9966FF |
999900 | 999933 | 999966 | 999999 | 9999CC | 9999FF |
99CC00 | 99CC33 | 99CC66 | 99CC99 | 99CCCC | 99CCFF |
99FF00 | 99FF33 | 99FF66 | 99FF99 | 99FFCC | 99FFFF |
CC0000 | CC0033 | CC0066 | CC0099 | CC00CC | CC00FF |
CC3300 | CC3333 | CC3366 | CC3399 | CC33CC | CC33FF |
CC6600 | CC6633 | CC6666 | CC6699 | CC66CC | CC66FF |
CC9900 | CC9933 | CC9966 | CC9999 | CC99CC | CC99FF |
CCCC00 | CCCC33 | CCCC66 | CCCC99 | CCCCCC | CCCCFF |
CCFF00 | CCFF33 | CCFF66 | CCFF99 | CCFFCC | CCFFFF |
FF0000 | FF0033 | FF0066 | FF0099 | FF00CC | FF00FF |
FF3300 | FF3333 | FF3366 | FF3399 | FF33CC | FF33FF |
FF6600 | FF6633 | FF6666 | FF6699 | FF66CC | FF66FF |
FF9900 | FF9933 | FF9966 | FF9999 | FF99CC | FF99FF |
FFCC00 | FFCC33 | FFCC66 | FFCC99 | FFCCCC | FFCCFF |
FFFF00 | FFFF33 | FFFF66 | FFFF99 | FFFFCC | FFFFFF |
Voir aussi cet utilitaire (http://the-light.com/colclick.html) pour choisir ses couleurs.
Pour s'adapter au look and feel de votre lecteur...
BODY { background-color: #FFFFFF; background-image: url(../images/recbg.jpg); }
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
<p
style="background-image: none;"> Ce paragraphe devrait apparaître sans
l'image de fond que ceux qui l'entourent possèdent.
Notez qu'un bon moyen de
faire planter netscape (au moins sous unix) semble être de spécifier une autre
image : <p style="background-image:
url(aure_image.png);">
Lorem ipsum dolor sit amet,
<p style="background-image: url(../images/tile-coral-up.png); margin-left: 1cm;"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
<p style="background: #FFFFFF; margin-left: 1cm;"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
<p style="background: transparent; margin-left: 1cm;"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
</div>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi.
</div>
Aller voir la spécification
Le paragraphe contenant les indications de style se trouve dans une division en fond grisé pour montrer les différentes marges.
P.essai1 {
background-color: #999999;
border-style :
solid;
border-width: 1pt;
border-color: blue;
margin-top: 50px; /*
marges externes */
margin-right: 150px;
margin-bottom:
0px;
margin-left: 30px;
padding: 0pt; /* marges internes */
}
P.essai2 {
background-color: #999999;
border-style :
solid;
border-width: 1pt;
border-color: blue;
margin-top: 50px; /*
marges externes */
margin-right: 150px;
margin-bottom:
0px;
margin-left: 30px;
padding: 20pt; /* marges internes */
}
Noter ci-dessous l'effet sur les marges que fait parfois l'absence de cadre, selon le navigateur :
P.essai3 {
background-color: #99ff99;
margin-top: 50px; /*
marges externes */
margin-right: 150px;
margin-bottom:
0px;
margin-left: 30px;
padding: 0pt; /* marges internes */
}
Ruse horrible : un cadre d'une largeur de 1 pixel et de la même couleur que celle de la boîte englobante !
P.essai4 {
background-color: #9999ff;
border-style :
solid;
border-width: 1pt;
border-color: #dddddd;
margin-top: 50px;
margin-right: 150px;
margin-bottom: 0px;
margin-left:
30px;
padding: 0pt;
}
padding: 20pt 40pt; équivaut à
padding-top:20pt; padding-right:40pt; padding-bottom:20pt;
padding-left:40pt;
border: 10px solid blue; équivaut à
border-width: 10px; border-style: solid; border-color: blue;
border-style: dotted
border-style: dashed
border-style: solid
border-style: double
border-style: groove
border-style: ridge
border-style: inset
border-style: outset
border-style: hidden
<DIV> <!-- bloc --> Some text <!-- flot de texte --> <P>More text <!-- bloc --> </DIV> |
3 boîtes (source: spécification CSS2) |
<P>Un peu de texte <B>en gras</B> pour voir</P>
Les éléments HTML définissent déjà des types de boîtes, mais la propriété display permet de les redéfinir, voire de ne pas créer les boîtes.
Pour illustrer ces propriétés, nous utilisons <p style="line-height: 2em"> qui définit un inter-ligne de deux lignes, ce qui permet de jouer avec les mots dans les lignes en ayant toute la place voulue. Malheureusement, ni netscape4 ni explorer4 n'implémentent les alignements verticaux avec les propriétés légales du type <span style="vertical-align: -.5ex">, et nous avons du utiliser <sup> et <sub> pour la démontration.
Il est possible de positionner des éléments où l'on veut dans une page web, grâce aux propriétés suivantes :
<STYLE type="text/css"> EM { padding: 2px; margin: 1em; border-width: medium; border-style: dashed; line-height: 2.4em; } </STYLE> <BODY> <P>Several <EM>emphasized words</EM> appear here.</P> </BODY>
L'image à gauche est flottante grâce à la propriété float: left et le
texte s'affiche tout autour. Si l'on désire continuer à écrire en-dessous de
l'image et non pas autour, il faut insérer (par exemple)
<br clear=both>...
<IMG style="float: left" SRC="tour.jpg" ALT="" WIDTH="147" HEIGHT="162" BORDER="0"> L'image à gauche est flottante grâce à la propriété ...
L'image à gauche est <IMG style="float: right" SRC="tour.jpg" ALT="" WIDTH="147" HEIGHT="162" BORDER="0"> flottante grâce à la propriété ...
![]() |
avec : P {clear: left;} |
<P style="position: relative; margin-right: 10px; left: 10px;"> Un exemple qui devrait avoir deux tirets rouge <SPAN style="position: absolute; top: auto; left: -1em; color: red;">--</SPAN> sur la gauche.
NOTA: ces exemples sont décevants sur certains navigateurs, et quand on les imprime, hélas.
overflow: visibleUtilisation de la propriété z-index. Une boîte est par-dessus une autre ayant un z-index inférieur.
Texte qui doit se trouver au-dessus. Texte qui doit se trouver au-dessous.
.over { position: relative; top: 0px; left: 20px; z-index: 2; background-color: #ccffcc } .under { position: relative; top: 10px; left: -200px; z-index: 1; background-color: #ccccff }
<head> <title>David Baron's Homepage</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" href="style/forest" title="Forest" type="text/css"> <link rel="stylesheet alternate" href="style/plain" title="Plain" type="text/css"> <link rel="stylesheet alternate" href="http://www.w3.org/StyleSheets/Core/Ultramarine" title="Ultramarine" type="text/css"> <link rel="stylesheet alternate" href="http://www.w3.org/StyleSheets/Core/Steely" title="Steely" type="text/css"> <link rel="stylesheet alternate" href="http://www.w3.org/StyleSheets/Core/Oldstyle" title="Oldstyle" type="text/css"> <link rel="stylesheet" href="style/index" type="text/css" media="screen"> <link rel="alternate" type="text/html" title="Español" hreflang="es" href="index.html.es"> <link rel="copyright" href="legal"> </head>
/* WinNS4 */ BODY { /* Reduce the huge margins, since I have 2 columns */ /* margin: 0; padding-left: 3%; padding-right: 3%; padding-top: 2em; padding-bottom: 2em; */ margin-left: 3%; margin-right: 3%; margin-top: 2em; margin-bottom: 2em; } DIV.left { /* make the left column a float */ float: left; width: 50%; /* leave the alignment to the other attributes */ margin: 0; padding: 0; border-top-width: 0; border-style: none; } DIV.right { float: right; width: 49.9%; /* no horizontal scrollbar on MSIE5 */ margin: 0; padding: 0; border-top-width: 0; border-style: none; } DIV.bottom { padding-top: 2em; /* margin messes up NN 4.5 */ } H2 { margin-top: 0.5em; margin-bottom: 0.2em; /* for WinNS4 */ font-weight: normal; } H2 A, H2 A:link, H2 A:visited, H2 A:hover { font-weight: normal; } DIV.contain { padding: 0; border-style: none; border-width: 0; margin: 0; } DIV.imgicons { margin: 0; /* want the box properties of the P */ padding: 0; float: right; width: 150px; /* images are 88px wide, give padding */ } P.imgicons { text-align: center; }
<body> <h1 id="head"><span id="headname">David Baron's</span> <span id="headhp">Homepage</span></h1> <p id="afterhead">[ <a href="index.html.es">Español</a> | <a href="index.html.eo">Esperanto</a> ]</p> <div class="left"> <h2><a name="links">My Pages</a></h2> <ul> <li><a href="about">About ... <li>...</li> </ul> <h2><a href="links/">General Links</a></h2> <ul> <li><a href="links/Search">... <li>...</li> </ul> </div> <div class="right"> <h2><a href="weather">Weather and Climate</a> Links</h2> <ul> <li><a href="links/WGeneral">General</a></li> <li><a href="links/WPhiladelphia">Philadelphia Area</a></li> <li>...</li> </ul> <h2>Quick Links</h2> <ul> <li><a href="http://www.sas.upenn.edu/~jbaron/"> My father's homepage and links</a></li> <li><a href="http://www.hotbot.com/">HotBot</a>, <a href="http://altavista.digital.com/">Altavista</a></li> <li>...</li> </ul> <h2>Weather Quick Links</h2> ... </div> <br clear="all"> <!-- Get around an IE 4.0 bug; this brings me down to HTML 4.0 transitional --> <div class="bottom"> <p> There is no authoritative list of any set of information on the Web. The links presented in these pages represent ... </p> <p><a href="legal" rel="copyright">Legal Information</a> (copyright statement, etc.) </p> <p>LDB, <a rev="made" href="mailto:dbaron@fas.harvard.edu" title="Send e-mail to David Baron">dbaron@fas.harvard.edu</a></p> </div> </body>
NOTA: Les scripts javascript sont enlevés et seront présentés plus tard
<head> <title>Bienvenue chez Jipo, Conseil en Télécommunications et Internet</title> <META NAME="Author" CONTENT="Aymeric Poulain Maubant"> ... <META NAME="ROBOTS" CONTENT="ALL"> <META HTTP-EQUIV=Content-Language CONTENT=fr> <!-- ne plante plus netscape (le pb des 20%) --> <link REL="StyleSheet" HREF="styles/jipomain.css" TYPE="text/css" MEDIA="screen" TITLE="Feuille de style générale web Jipo"> <link REL="StyleSheet" HREF="styles/home.css" TYPE="text/css" MEDIA="screen" TITLE="Feuille de style mise en page d'accueil Jipo"> ...
DIV.left { position: absolute; top: 20px width: 20%; margin-top: 0; padding-top: 10; padding-bottom: 10; padding-left: 0; border-top-width: 0; border-right-width: 0; margin-right-width: 0; } DIV.right { float: right; text-align: left; width: 20%; margin-top: 0; padding-top: 0; padding-left: 30; border-top-width: 0; border-left-width: 0; margin-left-width: 0; border-right-width: 0; margin-right-width: 0; } /* surtout ne pas enlever le commentaire ci-dessous sinon IE4 ne positionne pas la div du milieu ou il faut ! */ /* #ppweb { visibility: hiddden; } */ .inprog DIV { position: absolute; visibility: hidden; /* ne l'etait pas en v6 */ top: 80px; /* cf DIV.right->margin-top de jipomain.css */ left: 30%; width: 350px; } .progression { position: absolute; top: 80px; left: 30%; width: 400px; /* si on met un %age (70% par ex.) a cette width, IE4 prend bien un %age du bloc englobant, tandis que NS4 semble prendre un %age de l'espace qui reste dans le bloc englobant (peut-etre est-il influence par les float de chaque cote ? */ /* border: black; border-style: solid; border-width: 1px; background-color: #004455;*/ } .vocation { position: absolute; top: 255px; left: 20px; } .cinqmn { position: absolute; top: 30px; left: 15px; } .atouts { position: absolute; top: 210px; /* 195 */ left: 34px; /* 38 */ } .services { position: absolute; top: 165px; /* 135 */ left: 55px; /* 72 */ } .besoins { position: absolute; top: 85px; left: 120px; } .besoins2 { position: absolute; top: 120px; left: 140px; } .formbesoins { position: absolute; top: 78px; left: 240px; } .clients { position: absolute; top: 35px; left: 220px; } .adresse { position: absolute; /* sous NS4 unix -au moins- mettre visible ci-dessous laisse l'adresse tjs visible, meme quand son conteneur devient hidden. 125x200 place en-dessous de vocation...client */ /* visibility: visible; top: 125px; left: 200px; */ top: 295px; left: 20px; } ...
NOTA: prévoir un BODY qui se dégrade bien en l'absence de feuille de style.
<body bgcolor="#ffffdd"> <div> <h1 class=colJipo>Jipo : Conseil en Télécommunications et Internet</h1> </div> <div class=right> <p> <a href="gc.html">Fournisseurs de services, opérateurs, constructeurs</a> ou ... <hr align=center width="50%"> <p><a href="#Ngene2"><span class=nomJipo>Jipo</span></a>, créée en 1997, compte aujourd'hui une vingtaine de consultants qui sont intervenus dans plus de 15 pays. </p> <hr> </div> <!-- fin div class=right --> <div class=left> <p> <span style="padding-top:1em;"> <a href="""><img src="images/theLogoT.gif" width=115 height=109 alt="" border=0></a></span><br> <span style="padding-bottom:-1em;"><a href="index.en.htm"><img src="icons/uk.gif" width=32 height=32 alt="[english version]" border=0></a></span> <br> ... </p> </div> <!-- fin div class=left --> <!-- NS4 me mettrait apres la div left, IE4 avant ! --> <!-- cette division de type progression est mise avant celle qui contient les liens hypertextes (la suivante) pour que ces derniers soient actifs (probleme de couches, visiblement, z-index ne resolvant rien quand celle-ci etait apres Pour windows, ne surtout pas mettre de z-index, sinon une fois que les infos legales sont chargees toute la partie droite n'est plus active. --> <!-- <div class="progression" id=prog2 style="z-index:-1;" --> <div class="progression" id=prog2> <div class=adresse> <address> <img src="icons/addr.gif" width=20 height=23 alt="[adresse]" align=left border=0> 60, rue du Dessous des Berges FR-75013 Paris - France<br> Tel: +33 (0) 1 53 82 99 40 Fax: +33 (0) 1 53 82 99 92<br> <img src="icons/addr.gif" width=20 height=23 alt="[adresse]" align=left border=0> 21, rue Jurien de la Gravière FR-29200 Brest - France<br> Tel: +33 (0) 2 98 33 12 49 Fax: +33 (0) 1 98 33 16 54 </address> </div> <!-- fin div class=adresse --> </div> <!-- fin div class=progression --> <div class="progression" id="prog"> <img src="images/prog.jpg" width=321 height=275 alt="" border=0> <!-- NS4 et IE4 me mettraient juste apres l'image, ce qui est normal --> <div class=cinqmn> <p><em>Découvrez-nous<br>en 5 minutes et<br>5 points-clé</em><br> <a href="vocation.html"><img src="icons/c1.gif" width=20 height=23 alt="" align=bottom border=0></a></p> </div> <span class=vocation><h3><a href="vocation.html">notre vocation</a></h3></span> <span class=atouts><h3><a href="atouts.html">nos atouts</a></h3></span> <span class=services><h3><a href="services.html">nos services</a></h3></span> <span class=besoins><h3><a href="besoins.html">vos besoins</a></h3></span> <span class=besoins2><p><a href="prospects.html">précisons-les</a> ensemble... </p></span> <span class=clients><h3><a href="clients.html">nos références</a></h3></span> </div> <!-- fin div class= progresion & id=prog --> <div class=inprog> ... <DIV ID="webmestre"> <hr> <a href="" name="Nwebmestre" <img src="icons/close.gif" alt="" width=13 height=13 border=0 align=right></a> <h3 class=colJipo>Contacter le webmestre</h3> <p align=center>Pour tout problème concernant l'utilisation de ce site, contactez le webmestre à <a href="mailto:webmaster@jipo.com?subject=probleme web Jipo"><tt>webmaster@jipo.com</tt></a> </p> </DIV> </div> <!-- fin div class=inprog --> </body>
|
<TABLE border=1 cellpadding=4 cellspacing=5> <CAPTION>Légende</CAPTION> <TR> <TH>En-tête 1</TH> <TD bgcolor="#9999cc">Cellule 1</TD> <TD>Cellule 2</TD> </TR><TR> <TH>En-tête 2</TH> <TD>Cellule 3</TD> <TD>Cellule 4</TD> </TR><TR> <TH>En-tête 3</TH> <TD>Cellule 5</TD> <TD>Cellule 6</TD> </TR> </TABLE> |
TABLE { display: table } TR { display: table-row } THEAD { display: table-header-group } TBODY { display: table-row-group } TFOOT { display: table-footer-group } COL { display: table-column } COLGROUP { display: table-column-group } TD, TH { display: table-cell } CAPTION { display: table-caption }
Les propriétés suivantes leur sont appliquées :
BODY { margin-left: 8em } TABLE { /* table centrée */ margin-left: auto; margin-right: auto } CAPTION { caption-side: left; margin-left: -8em; width: 8em; text-align: right; vertical-align: bottom }
<TABLE> <!-- exemple de gauche, en HTML --> <TR><TD>1 <TD rowspan="2">2 <TD>3 <TD>4 <TR><TD colspan="2">5 </TABLE> <TABLE> <ROW><CELL>1 <CELL rowspan="2">2 <CELL>3 <CELL>4 <ROW><CELL colspan="2">5 </TABLE>
border-collapse: collapse | separate | inherit
border-spacing: <length> <length>? | inherit
empty-cells: show | hide | inherit
avec n le nombre de cellules de la ligne, et border-widthi qui se réfère à la bordure entre les cellules i et i+1.row-width = (0.5 * border-width0) + padding-left1 + width1 + padding-right1 + border-width1 + padding-left2 +...+ padding-rightn + (0.5 * border-widthn)
Example illustré plus bas :
<STYLE> TABLE { border-collapse: collapse; border: 5px solid yellow; } *#col1 { border: 3px solid black; } TD { border: 1px solid red; padding: 1em; } TD.solid-blue { border: 5px dashed blue; } TD.solid-green { border: 5px solid green; } </STYLE> <BODY> <P> <TABLE> <COL id="col1"><COL id="col2"><COL id="col3"> <TR id="row1"> <TD> 1 <TD> 2 <TD> 3 </TR> <TR id="row2"> <TD> 4 <TD class="solid-blue"> 5 <TD class="solid-green"> 6 </TR> <TR id="row3"> <TD> 7 <TD> 8 <TD> 9 </TR> <TR id="row4"> <TD> 10 <TD> 11 <TD> 12 </TR> <TR id="row5"> <TD> 13 <TD> 14 <TD> 15 </TR> </TABLE> </BODY>
size: <length>{1,2} | auto | portrait | landscape | inherit
@page :left { margin-left: 4cm; margin-right: 3cm; } @page :right { margin-left: 3cm; margin-right: 4cm; } @page :first { margin-top: 10cm /* Top margin on first page 10cm */ }
@page rotated {size: landscape} TABLE {page: rotated; page-break-before: right}
Dans l'exemple suivant, c'est le rendu "rotated" qui sera utilisé :
<STYLE> @page narrow {size: 9cm 18cm} @page rotated {size: landscape} DIV {page: narrow} TABLE {page: rotated} </STYLE> <BODY> <DIV> <TABLE>...</TABLE> <TABLE>...</TABLE> </DIV> </BODY>
page-break-before auto | always | avoid | left | right | inherit page-break-after auto | always | avoid | left | right | inherit page-break-inside avoid | auto | inherit
orphans <integer> (2 initialement) | inherit widows <integer> (2 initialement) | inherit
@page { margin-left: 3cm; } @page :left { margin-left: 4cm; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML> <HEAD> <TITLE>Link to a target medium</TITLE> <LINK rel="stylesheet" type="text/css" media="print, handheld" href="foo.css"> </HEAD> <BODY> <P>The body... </BODY> </HTML>
@media print { BODY { font-size: 10pt } } @media screen { BODY { font-size: 12pt } } @media screen, print { BODY { line-height: 1.2 } }
Media Types | Media Groups | |||
---|---|---|---|---|
continuous/paged | visual/aural/tactile | grid/bitmap | interactive/static | |
aural | continuous | aural | N/A | both |
braille | continuous | tactile | grid | both |
emboss | paged | tactile | grid | both |
handheld | both | visual | both | both |
paged | visual | bitmap | static | |
projection | paged | visual | bitmap | static |
screen | continuous | visual | bitmap | both |
tty | continuous | visual | grid | both |
tv | both | visual, aural | bitmap | both |
<STYLE> H1.chapitre:before {content: "Chapitre "} P.footnote:after {content: "[Retour <a href=\"#top" attr(NAME) "\">dans le texte</a>]"} ... </STYLE> ... <BODY> <p>Texte faisant <a href="#fn1" name="topfn1">appel à une note de base de page</a>... </BODY>
Q:before { content: open-quote; color: red } BODY:after { content: "C'est fini"; /* exercice: dans quel cas ce texte sera utilisé ? */ display: block; /* noter cette nécessité */ margin-top: 2em; text-align: center; }
content: [ <string> | <uri> | <counter> | attr(X) | open-quote | close-quote | no-open-quote | no-close-quote ]+ | inherit
@media aural { BLOCKQUOTE:after { content: url("beautiful-music.wav") } } IMG:before { content: attr(alt) } H1:before { display: block; text-align: center; content: "chapter\A chapitre" }
<STYLE> H3 { display: run-in } H3:after { content: ": " } P:before { content: "... " } </STYLE> <BODY> <H3>Les saisons</H3> <P>le printemps <P>l'été </BODY>
Ce qui pourrait donner :
Les saisons: ... le printemps
... l'été
[Retour dans le texte]
La dite note est automatiquement suivie de [Retour <a href="#topfn1">dans le texte</a>]
The device of the order of the garter is “Honi soit qui mal y pense.” Il disait: « Il faut mettre l'action en ‹ fast forward ›.»
Par exemple :
<STYLE> Q:lang(en) { quotes: '"' '"' "'" "'" } Q:lang(no) { quotes: "«" "»" "<" ">" } Q:before { content: open-quote } Q:after { content: close-quote } </STYLE> <BODY> <DIV lang="en"> <P><Q>Quote me!</Q> </DIV> <DIV lang="en"> <P><Q>Trøndere gråter når <Q>Vinsjan på kaia</Q> blir deklamert.</Q> </DIV>
donnera :
"Quote me!" «Trøndere gråter når <Vinsjan på kaia> blir deklamert.»
On pourrait ajouter les deux règles suivantes, pour s'assurer que du texte norvégien cité dans du texte anglais est bien entouré des guillemets anglais (ce qui est l'habitude) et réciproquement :
[LANG|=en] > * { quotes: """ """ "'" "'" } [LANG|=no] > * { quotes: "«" "»" "<" ">" }
Noter qu'il est possible de définir une absence de guillemets :
BLOCKQUOTE P:before { content: open-quote } BLOCKQUOTE P:after { content: no-close-quote } BLOCKQUOTE P.last:after { content: close-quote }
Rendu approximatif | code ISO 10646 (hex) | Description |
---|---|---|
" | 0022 | QUOTATION MARK [the ASCII double quotation mark] |
' | 0027 | APOSTROPHE [the ASCII single quotation mark] |
< | 2039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK |
> | 203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK |
« | 00AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK |
» | 00BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK |
` | 2018 | LEFT SINGLE QUOTATION MARK [single high-6] |
' | 2019 | RIGHT SINGLE QUOTATION MARK [single high-9] |
`` | 201C | LEFT DOUBLE QUOTATION MARK [double high-6] |
'' | 201D | RIGHT DOUBLE QUOTATION MARK [double high-9] |
,, | 201E | DOUBLE LOW-9 QUOTATION MARK [double low-9] |
counter-reset: [ <identifier> <integer>? ]+ | none | inherit counter-increment: [ <identifier> <integer>? ]+ | none | inherit
/* tous les compteurs sont mis zéro à l'origine, par * la balise racine (<HTML>) */ H1:before { content: "Chapitre " counter(chapter) ". "; counter-increment: chapter; /* Add 1 to chapter */ counter-reset: section; /* Set section to 0 */ } H2:before { content: counter(chapter) "." counter(section) " "; counter-increment: section; } H3 { counter-reset: section -1;} H3 { counter-reset: imagenum 99;} /* cette règle est plus forte que * la précédente (cascade) qui ne * s'exécutera pas. */ H4 { counter-reset: section -1 imagenum 99;} /* Les deux reset on lieu */
OL { counter-reset: item } LI { display: block } LI:before { content: counter(item) ". "; counter-increment: item }
produit bien quelque chose comme :
1. li d'un premier ol 2. li du premier ol 1. li d'un deuxième ol inclus dans le premier 2. li du deuxième ol inclus dans le premier 3. li du premier ol 4. li du premier ol 1. li d'un troisième ol inclus dans le premier 5. li du premier ol
Par ailleurs,
OL { counter-reset: item } LI { display: block } LI:before { content: counters(item, "."); counter-increment: item }
produit ceci :
1 qqq 2 www 2.1 eee 2.2 rrr 3 ttt 3.1 yyy 3.1.1 uuu 3.1.2 iii 4 ooo
H1:before { content: counter(chno, upper-latin) ". " } H2:before { content: counter(section, upper-roman) " - " } BLOCKQUOTE:after { content: " [" counter(bq, hebrew) "]" } DIV.note:before { content: counter(notecntr, disc) " " } P:before { content: counter(p, none) }
H2.secret {counter-increment: count2; display: none} /* n'est pas incrémenté */ H3.secret {counter-increment: count3; visibility: hidden} /* est bien incrémenté */
<STYLE type="text/css"> P { margin-left: 8em } /* Make space for counters */ LI:before { display: marker; marker-offset: 3em; content: counter(mycounter, lower-roman) "."; counter-increment: mycounter; } </STYLE> <BODY> <P> This is a long preceding paragraph ... <OL> <LI> This is the first item. <LI> This is the second item. <LI> This is the third item. </OL> <P> This is a long following paragraph ... </BODY>
produira ceci :
This is a long preceding paragraph ... i. This is the first item. ii. This is the second item. iii. This is the third item. This is a long following paragraph ...
<STYLE type="text/css"> LI:before { display: marker; content: "(" counter(counter) ")"; counter-increment: counter; width: 6em; text-align: center; } </STYLE> <BODY> <OL> <LI> This is the first item. <LI> This is the second item. <LI> This is the third item. </OL> </BODY>
produira ceci :
(1) This is the first item. (2) This is the second item. (3) This is the third item.
<STYLE type="text/css"> OL { list-style-type: lower-roman } </STYLE> <BODY> <OL> <LI> This is the first item. <LI> This is the second item. <LI> This is the third item. </OL> </BODY>
produira ceci (noter que la justification des nombres dépend du bon vouloir du navigateur) :
i This is the first item. ii This is the second item. iii This is the third item.
list-style-type: disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-alpha | lower-latin | upper-alpha | upper-latin | hebrew | armenian | georgian | cjk-ideographic | hiragana | katakana | hiragana-iroha | katakana-iroha | none | inherit list-style-image: <uri> | none | inherit list-style-position: inside | outside | inherit list-style: [ <'list-style-type'> || <'list-style-position'> || <'list-style-image'> ] | inherit
cursor: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize| text | wait | help ] ] | inherit
DIV { color: black; backround-color: #eeeeee; }
Il faut jouer avec border: none et margin: none : http://www.css.nu/examples/workarounds.html
Bien mettre les unités. 12 est 12pt pour NS et 12px pour IE
xx-small ... xx-large sont rendus différement par les navigateurs. utiliser les %ages
D'après le livre de Daniel Glazman
Rappel:<STYLE> #d1 {color: blue;} #p2 {color: green;} </STYLE> <BODY> <DIV ID="d1"> <P STYLE="color: red;">sera en rouge</P> </DIV> <P ID="p2" STYLE="color: red;">sera également en rouge</P> </BODY>
<LINK rel="STYLESHEET" href="/styles/site.css" type="text/css"> <LINK rel="STYLESHEET" href="/styles/rubrique.css" type="text/css"> <LINK rel="STYLESHEET" href="/styles/editorial.css" type="text/css">
D'après le livre de Daniel Glazman
DIV.example { ... } PRE.example { ... } SPAN.example { ... }permet de définir des styles dans des contextes de positionnement différents qui relèvent pourtant selon l'auteur d'un même type de discours.
H1.legal {font-family: ... } P.legal { ... } SPAN.legal { font-weight: bold;} IMG.legal:after {content: "(c) ...}
P#abstract {font-style: italic;}
<STYLE> DIV P { ... } TABLE P { ... } H1 + P { ... } </STYLE>
H1 + P:before {content: "Résumé: ";} H1 + P + P:first-letter { font-size: 200% }Ce type d'organisation est à comparer avec le précédent (par sélecteurs d'ID)
ADDRESS, BLOCKQUOTE, BODY, DD, DIV, DL, DT, FIELDSET, FORM, FRAME, FRAMESET, H1, H2, H3, H4, H5, H6, IFRAME, NOFRAMES, OBJECT, OL, P, UL, APPLET, CENTER, DIR, HR, MENU, PRE { display: block } LI { display: list-item } HEAD { display: none } TABLE { display: table } TR { display: table-row } THEAD { display: table-header-group } TBODY { display: table-row-group } TFOOT { display: table-footer-group } COL { display: table-column } COLGROUP { display: table-column-group } TD, TH { display: table-cell } CAPTION { display: table-caption } TH { font-weight: bolder; text-align: center } CAPTION { text-align: center } BODY { padding: 8px; line-height: 1.33 } H1 { font-size: 2em; margin: .67em 0 } H2 { font-size: 1.5em; margin: .83em 0 } H3 { font-size: 1.17em; margin: 1em 0 } H4, P, BLOCKQUOTE, UL, FIELDSET, FORM, OL, DL, DIR, MENU { margin: 1.33em 0 } H5 { font-size: .83em; line-height: 1.17em; margin: 1.67em 0 } H6 { font-size: .67em; margin: 2.33em 0 } H1, H2, H3, H4, H5, H6, B, STRONG { font-weight: bolder } BLOCKQUOTE { margin-left: 40px; margin-right: 40px } I, CITE, EM, VAR, ADDRESS { font-style: italic } PRE, TT, CODE, KBD, SAMP { font-family: monospace } PRE { white-space: pre } BIG { font-size: 1.17em } SMALL, SUB, SUP { font-size: .83em } SUB { vertical-align: sub } SUP { vertical-align: super } S, STRIKE, DEL { text-decoration: line-through } HR { border: 1px inset } OL, UL, DIR, MENU, DD { margin-left: 40px } OL { list-style-type: decimal } OL UL, UL OL, UL UL, OL OL { margin-top: 0; margin-bottom: 0 } U, INS { text-decoration: underline } CENTER { text-align: center } BR:before { content: "\A" } /* An example of style for HTML 4.0's ABBR/ACRONYM elements */ ABBR, ACRONYM { font-variant: small-caps; letter-spacing: 0.1em } A[href] { text-decoration: underline } :focus { outline: thin dotted invert } /* Begin bidirectionality settings (do not change) */ BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override } BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override } *[DIR="ltr"] { direction: ltr; unicode-bidi: embed } *[DIR="rtl"] { direction: rtl; unicode-bidi: embed } /* Elements that are block-level in HTML4 */ ADDRESS, BLOCKQUOTE, BODY, DD, DIV, DL, DT, FIELDSET, FORM, FRAME, FRAMESET, H1, H2, H3, H4, H5, H6, IFRAME, NOSCRIPT, NOFRAMES, OBJECT, OL, P, UL, APPLET, CENTER, DIR, HR, MENU, PRE, LI, TABLE, TR, THEAD, TBODY, TFOOT, COL, COLGROUP, TD, TH, CAPTION { unicode-bidi: embed } /* End bidi settings */ @media print { @page { margin: 10% } H1, H2, H3, H4, H5, H6 { page-break-after: avoid; page-break-inside: avoid } BLOCKQUOTE, PRE { page-break-inside: avoid } UL, OL, DL { page-break-before: avoid } } @media speech { H1, H2, H3, H4, H5, H6 { voice-family: paul, male; stress: 20; richness: 90 } H1 { pitch: x-low; pitch-range: 90 } H2 { pitch: x-low; pitch-range: 80 } H3 { pitch: low; pitch-range: 70 } H4 { pitch: medium; pitch-range: 60 } H5 { pitch: medium; pitch-range: 50 } H6 { pitch: medium; pitch-range: 40 } LI, DT, DD { pitch: medium; richness: 60 } DT { stress: 80 } PRE, CODE, TT { pitch: medium; pitch-range: 0; stress: 0; richness: 80 } EM { pitch: medium; pitch-range: 60; stress: 60; richness: 50 } STRONG { pitch: medium; pitch-range: 60; stress: 90; richness: 90 } DFN { pitch: high; pitch-range: 60; stress: 60 } S, STRIKE { richness: 0 } I { pitch: medium; pitch-range: 60; stress: 60; richness: 50 } B { pitch: medium; pitch-range: 60; stress: 90; richness: 90 } U { richness: 0 } A:link { voice-family: harry, male } A:visited { voice-family: betty, female } A:active { voice-family: betty, female; pitch-range: 80; pitch: x-high } }
D'après le livre de Daniel Glazman
http://www.css.nu/pointers/bugs.html
http://webreview.com/wr/pub/guides/style/mastergrid.html
Sélecteurs avancés CSS2 : http://webreview.com/pub/guides/style/style.html
Tests CSS1 au W3C : http://www.w3.org/Style/CSS/Test/
Tests de conformité aux CSS2, par Daniel Glazman : http://www.editions-eyrolles.com/livres/glazman/Tests/
Une liste de bugs pour Mozilla (par David Baron) : http://www.people.fas.harvard.edu/~dbaron/css/browsers/nglay
Tests sur les positionnements flottants : http://www.w3.org/Style/CSS/Test/float
Les 10 bugs CSS2 majeurs d'IE sous windows et mac, et d'Opéra : http://www.webstandards.org/css/#The_Top_10_Lists