Archives de catégorie : D – Feuilles de style CSS

présentation des CSS


Un peu de style…

Les styles d’une manière générale servent à personnaliser la présentation d’un document Les feuilles de style CSS en particulier améliore l’apparence et la structure des documents HTML.
Grace aux CSS, On peut notamment définir pour une partie du texte ou pour tout un document :

* les polices de caractères (type, taille, style),
* les couleurs,
* la présentation des images,
* des tableaux,
* les alignement, etc.

Les styles peuvent être définis en interne (par des balises adéquates) ou en externe (dans un fichier ‘feuille de style : mon_style.css’).

Dans le cas des styles internes, il faudra bien évidemment inclure la définition de ces styles dans chaque document.
Dans le cas des feuilles de style externes il y a UNE SEULE occurence des styles pour TOUS les documents.

remarque : dans un document web (et au dela) il est très important de faire la distinction entre le fond et la forme, et plus précisément entre le contenu du document, sa présentation et sa structure. Ces deux derniers aspects devraient être gérés quasi exclusivement par des feuilles de style.
Il est � noter que la V 4.01 d’HTML et la norme XHTML ont quasiment fait disparaitre tous les attributs de balises qui traitaient du style (color, bold, etc…)
C.S.S ?

CSS est l’acronyme de Cascading Style sheet ou feuille de style en cascade. Ceci veut dire que l’on peut appliquer ‘en cascade’ , les uns derrière les autres plusieurs styles au même document :

  • celui défini au niveau du navigateur client,
  • celui personnalisé choisi par l’utilisateur,
  • et celui précisé dans le document (par l’auteur).

En résumé, une feuille de style CSS est concrètement un ensemble de règles de présentation d’élement de pages web. Nous allons les détailler plus loin.
Standards et définitions

CSS1
1ere définition formelle du CSS niveau 1 , en 1996 par le W3C
décrit les fonts, bordures, marges, couleurs, etc.

CSS 2.1
inclut tout CSS1 + position absolue des élélements, numérotation automatique, saut de page, texte de droite � gauche, , etc.,

CSS3 ou CSS level 3
début du developpement en 2002, (il est toujours en cours)
inclut tout le CSS2, + de nouveaux selecteurs, des bordures personnalisées, du texte vertical, du son, et des moyens d’interaction avec l’utilisateur

Il existe en plus quelques normes spécifiques pour des périphériques particuliers :

Voir toutes les infos utiles (Docs, RFCs, éditeurs, compatibilité des navigateurs) sur la page CSS du W3C : http://www.w3.org/Style/CSS/

les composants CSS

Quelques règles de conduite…

Une feuille de style CSS est nous l’avons dit un ensemble de règles de présentation d’éléments de pages web. Ces règles sont formalisées.
Une règle se décompose en 2 parties :

  • un sélecteur, qui précise la portée de la mise en forme, ou en d’autrs termes qui identifie l’élément à mettre en forme
  • une propriété, qui décrit la mise en forme

La syntaxe d’une règle est la suivante :

nom_du_sélecteur { propriété1: valeur1; propriété2: valeur2; … }

quelques exemples, que nous expliciterons par la suite

body {background-color: #000000;}
h1 {font-family: arial, verdana, sans-serif;}
h2 { color: #FF0000;
background-color: #CCCCCC; }

Où définir les règles CSS ?

Il ya plusieurs méthodes pour définir les règles que nous venons de voir, à (tout ou partie d’) un document HTML.
On peut définir le style CSS :

  • par un attribut ‘STYLE’
  • par une balise <STYLE>
  • par un fichier feuille de style externe (.CSS)

Voyons ces différents cas sur des exemples

<html>
<head>
<title>Exemple 1</title>
</head>
<body style= »background-color: #000000; »>
<p>que de noir !</p>
</body>
</html>

ici on utilise donc un attribut de la balise HTML <BODY> et l’on précise la règle dans la valeur de cet attribut.
On précise la couleur du fond avec son code RVB (000000 = noir)

note : avec cette méthode on omet les caractères ‘{‘ et ‘}’ qui encadrent la règle

Un dato interesante es que muchos hombres pueden experimentar problemas de erección en algún momento de su vida, lo cual puede ser influenciado por factores físicos y emocionales. En algunos casos, se ha observado que medicamentos como el tofranil pueden tener un impacto en la función sexual, por lo que es importante consultar a un médico antes de decidir “. La salud del corazón, el estrés y otros problemas emocionales también pueden contribuir a este tipo de condición.

Un dato interesante es que muchos hombres no buscan tratamiento para problemas de erección debido a la vergüenza o el estigma social. Sin embargo, hay varias opciones disponibles, incluidas las soluciones que se pueden obtener en línea, como es el caso de aquellos que desean ***. La falta de información y el miedo a la consulta médica a menudo impiden que los hombres tomen medidas para mejorar su salud sexual.

La disfunción sexual puede afectar a hombres de todas las edades, aunque es más común en adultos mayores. Este problema no solo tiene repercusiones físicas, sino también emocionales, ya que puede provocar ansiedad y afectar la autoestima. Hay múltiples causas que pueden contribuir a esta condición, desde problemas de salud subyacentes hasta factores psicológicos. Algunos hombres buscan formas de tratar esta situación, incluyendo la opción de comprar medicamentos como el mencionado por quienes desean encontrar soluciones efectivas. Es esencial que, antes de decidirse a « , se consulte a un profesional de la salud. Al abordar este tema con un médico, se pueden evaluar las mejores oportunidades de tratamiento y obtener el apoyo adecuado.

On pourrait faire le même effet (de style) en utilisant cette fois une balise <STYLE> comme dans l’exemple suivant. Le résultat est le même : une page avec fond noir !

<html>
<head>
<title>Exemple 2</title>
<style type= »text/css »>
body {background-color: #000000;}
</style>
</head>
<body>
<p>toujours du noir</p>
</body>
</html>

et enfin la méthode la plus élégante, puisqu’on utilise une seule définition de style pour N pages HTML, grace au fichier externe :

<html>
<head>
<title>exemple 3</title>
<link rel= »stylesheet » href= »/styles/mon_style.css » type= »text/css » />
</head>
<body>
Cette page est…d’une couleur…
que je ne vois pas d’ici !!!
</body>
</html>

Identifier les éléments

Sur les exemples précédents, nous avons appliqué nos styles à la balise <BODY> mais d’autres éléments que de simples balises peuvent être affectés.

Il y a en fait 3 type de sélecteurs , qui sélectionnent l’élement à mettre en forme :

  • les balises HTML : <H1>, <H2>, <P>, <BODY>, etc.
  • les éléments avec une ‘class’ particulière
  • les élément avec un ‘id’ particulier

* les sélecteurs balise simples

On mettra directement les propriétés de la balise…derrière la balise, en respectant bien sûr la syntaxe vue précédemment

h1 { font-family: « Comic Sans MS »; font-size: 18px;color: #336699}
body { background-color:white; font-family: Arial, Helvetica, sans-serif;
font-size: 10pt; font-weight: normal; color: #000000}

Toutes les différnetes occurences de la balise dans la page seront donc affectées par la même mise en forme !

Dans la plupart des navigateurs le seul fait de préciser des propriétés pour le body fait hériter ces propriétés aux balises internes au body.
Si on veut faire du spécifique, il faut en quelque sorte ‘surcharger’ et préciser explicitement toutes les balises concernées…<P><DIV><UL><H1> par une mise en forme spéciale.

* balises avec attribut ‘class’

Les sélecteurs ‘class’ permettent de personnaliser une balise HTML avec un style particulier. Plusieurs sélecteur ‘class’ peuvent s’appliquer à la même balise, qui apparaitra différemment dans la page en fonction du sélecteur associé.

<h1 class= »entete »> Titre principal </h1>
<h1 class= »chapitre »> Titre du chapitre 1 </h1>
<h1 class= »chapitre »> Titre du chapitre 2 </h1>

Ils sont préfixés par un ‘.’ dans la feuille de style.

La classe ‘.exemple’ par exemple apparaitra en police courrier, 12 pixel, sur fond gris…

.exemple { font-family: « Courier New », Courier, mono; font-size: 12px;
background-color: #CCCCCC; }

On peut imaginer que certains paragraphes pourront apparaitre aligné à droite ou aligné à vgauche suivant les choix de l’auteur. On définira alors 2 sélecteurs pour la balise ‘<p>’ :

/* le style */
p.droite {text-align: right}
p.gauche {text-align: left}

<!– l’ HTML correspondant –>
<p class= »droit »>
Du texte aligné
à droite
</p>
<p class= »gauche »>
Du texte aligné
à gauche
</p>

* balises avec un attribut ID
A la différence des ‘class’, le nom d’un identifiant est unique dans tout le document et permet de ne modifier que celui (et pas toutes les occurences comme dans le cas des balises standards)

<p id= »entete »> contenu de l’entete </p>
<p id= »bas_de_page »> contenu du bas de page </p>

Le nom d’un selecteur ID commence par un ‘#’ dans la feuille de style

#content {
margin:0 0 20px 20px;
width:480px }

Regrouper les élements : <SPAN> et <DIV>

RAppel HTML :
<SPAN> et <DIV> sont des balises HTML qui servent à structurer le contenu d’une page.

<SPAN> s’utilise plutôt au sein d’un bloc HTML et s’applique à de la donnée  pure (qq lignes de texte) alors que  <DIV> s’utilise plutôt pour regrouper des blocs (qui peuvent contenir des blocs).
Comme dans l’exemple suivant :

<!– Exemple de données lues dans la base client –>
<DIV id= »client-boyera » class= »client »>
<P><SPAN class= »client-title »>Client information:</SPAN>
<TABLE class= »client-data »>
<TR><TH>Last name:<TD>Boyera</TR>
<TR><TH>First name:<TD>Stephane</TR>
<TR><TH>Tel:<TD>(212) 555-1212</TR>
<TR><TH>Email:<TD>sb@foo.org</TR>
</TABLE>
</DIV>

<DIV id= »client-lafon » class= »client »>
<P><SPAN class= »client-title »>Client information:</SPAN>
<TABLE class= »client-data »>
<TR><TH>Last name:<TD>Lafon</TR>
<TR><TH>First name:<TD>Yves</TR>
<TR><TH>Tel:<TD>(617) 555-1212</TR>
<TR><TH>Email:<TD>yves@coucou.com</TR>
</TABLE>
</DIV>

Dans certains cas, on veut appliquer un style à un bloc de texte, qui ne correspond pas à une balise HTML.
Par exemple, pour un paragraphe on utiliserait un sélecteur sur la balise <P> mais pour juste quelques mots, ou pour plusieurs paragraphes  contigus, on pourra respectivement les balises HTML <SPAN> ou <DIV>.

<p>ici un  paragraphe <span style= »color:#CCCCCC; »>un sous paragraphe spécifique (en gris)</span> la suite du paragraphe
</p>
<p>
un autre paragraphe
<span style= »color:#FF0000; »>
quelques mots en rouge
</span>
et d’autres sans couleur spécifique
</p>
<div id=resume style=…>
ici une section particulière
du document
avec des paragraphes <p>
ou non
</div>

Pseudo-classes et pseudo-éléments

Ils permettent de traiter des éléments ‘exotiques’ qui ne sont pas � proprement parler de l’ HTML. Par exemple les liens visités, les liens non visités, la première ligne d’un paragraphe.

h1 a:link, h1 a:visited, h1 a:active, h1 a:hover{
color:#000
}

ces pseudos… sont très diversement (non) supportés par les navigateurs.

Voici un exemple de feuille de style externe, un simple fichier texte avec l’extension ‘.css’ qui résume les quelques cas de figure rencontrés jusqu’ici

/*
journal.css : Theme du site a DD
*/

body {
background:#333;
color:#666;
font:small arial,verdana,sans-serif;
text-align:center
}
.petit {
text-align:right;
font-size:9px;
}
#content {
float:right;
margin:0 0 20px 20px;
width:480px
}
h1 {
font:2.9em georgia, »trebuchet ms »,arial,sans-serif;
padding:30px 0 0 0;
text-align:center;
text-transform:uppercase
}

h1 a:link, h1 a:visited, h1 a:active, h1 a:hover{
text-decoration:none;
color:#000
}

les boîtes en CSS

Tous les éléments CSS définissent une ‘boite’ virtuelle à l’écarn, qui est une zone sur laquelle s’appliquera le style de l’élement et de ses propriétés.
Une boite a :

une taille (width, height),

un contour (border),

une marge par rapport à la fenêtre (margin)

et un espacement par rapport au contenu (padding)

Ces propriétés peuvent se subdiviser pour la plupart, en propriété du haut, drot, bas, gauche de la boite.
Par défaut une propriété s’applique à tous les bords de la boite.
On peut préciser explicitement quel bord si on le souhaite.
Implicitement les valeursde la propriété s’appliquent dans les ens des aiguilles d’une montre : top, right, bottom, left.

border-width: 2px; /* concernetous les bords */
border-width: 2px 4px 4px 2px /* des bords + fort à droite et en bas */; border-bottom-width: 6px; /*concerne le bas de la boite uniquement */

Voyons quelques types de présentation possibles, en jouant sur les propriétés des boites.
Le document ci-après montre un paragraphe d etexte formatté de différentes façons.

boites css

et le source responsable de ces merveilles est le suivant :

<html>
<!– on veut appliquer des styles différents aux paragraphes
on utilisera un selecteur de classe sur <P> –>

<head>
<style>
/* un contour épais pointillé…et coloré */

p.boite1{
border-width: 3px;
border-style: dotted;
border-color: #82C02F;
}

/* une boite à largeur fixe, à fond clair
avec un contour épais plein coloré */

p.boite2{
width: 300px;
border-width: 3px;
border-style: solid;
border-color: #82C02F;
background-color: #B2F05F;
}

/* une boite avec des cotés spécifiques :
qui donnent un peu de relief
et une marge pour ne pas la coller aux bords */
p.boite3{
width: 300px;
margin: 20px;
border-width: 2px;
border-style: solid;
border-color: #82C02F;
border-right-width: 6px;
border-bottom-width: 6px;
border-right-color: #CCCCCC;
border-bottom-color: #999999;
background-color: #B2F05F;
}

/* une boite avec des cotés spécifiques :
qui donnent un peu de relief
et une marge pour ne pas la coller aux bords */
p.boite4{
width: 300px;
margin: 20px;
padding: 0.3cm 0.2cm;
border-width: 2px;
border-style: solid;
border-color: #82C02F;
background-color: #B2F05F;
}
</style>
</head>

<body>
Quelques pangrammes : <p>
<p class= »boite1″>
Je gobe au wharf mes six vodkas à cinq zlotys
(un ‘border’ pointillé …et vert)
</p>
<p class= »boite2″>
Je gobe au wharf mes six vodkas à cinq zlotys
(un fond en + et une largeur fixe)
</p>
<p class= »boite3″>
Je gobe au wharf mes six vodkas à cinq zlotys
(avec un ‘margin’ pour décoller du bord de la fenetre
et des couleurs de bords spécifiques pour ‘ombrer’)
</p>
<p class= »boite4″>
Je gobe au wharf mes six vodkas à cinq zlotys
(avec du padding, pour écarter le texte des bords de la boite, c’est + joli!)
</p>
</body>
</html>

exercice CSS 1 – des entetes et des boites…

En utilisant un style inclus dans la page; essayez de reproduire le plus fidèlement la page HTML ci-dessous :

css

On utilisera les balise H2 et P comme sélecteurs.
Pour h2 : une hauteur de boite de 40 pixels, une font de 30, grasse.
Pour p une hauteur de boite de 200 pixels.
et pour les 2 boites une marge par rapport aux bords gauches et droits de la fenêtre de 50 pixels, et par rapport aux bords de la boite de 10 pixels

exercice CSS 2

Ecrire une feuille de style externe style1.css, puis une page HTML, qui référence cette feuille de style. Votre page HTML devra ressembler au mieux (forme, polices et couleurs) à la page que vous regardez en ce moment !

ici un lien souligné (avec le soulignement qui disparait quand la souris passe dessus
(utilisez la pseudo classe a:hover)

et ici une ligne d’ exemple de code (avec un fond bleu ciel et des bords horizontaux uniquement, bleus, et de 1 pixel d’épaisseur…) :

hui huih uih uhuihuihuihu

exercice CSS 3 – une boite à bords arrondis

En utilisant la propriété ‘background’ + 4 images pour définir les coins arrondis.
Sachant que la couleur de fond est #82C02F, et qu’une ‘backgound-image’ ne peut être précisé qu’une fois par balise HTML (il faudra donc créer 4 balises ID pour le texte…)

Créez la page HTML suivante (avec le style inclus dans l’entête de la page)

exo css3


					

corrigé CSS 1 – des entetes et des boites

    <html>
<head>
<style type= »text/css »>
h2 {
height: 40px;
font-size: 30px;
font-weight: bold;
margin-left: 50px;
margin-right: 50px;
padding-left: 10px; /* par rapport au bord

Viele Männer erleben im Laufe ihres Lebens Schwierigkeiten, die oft mit Stress, Angst oder körperlichen Problemen verbunden sind. Diese Herausforderungen können das Selbstbewusstsein stark beeinträchtigen und das intime Leben erheblich stören. Es gibt jedoch Optionen, die Männern helfen, wieder zu einem erfüllten Sexualleben zu finden, wie zum Beispiel die Verwendung von medikamente ohne rezept. Diese Produkte können eine diskrete und unkomplizierte Lösung bieten, um die Potenz zu steigern und das sexuelle Wohlbefinden zu verbessern. Auf Webseiten wie libido-de.com finden Interessierte eine Vielzahl von Produkten, die zur Behandlung dieser Probleme nützlich sein können. Es ist wichtig, offen über solche Themen zu sprechen, um die Gesundheit und das emotionale Wohlbefinden zu fördern.

de la boite */
color: #FFFFFF;
background-color: #999999;
margin-bottom: 0px;
}
p {
height: 200px;
color: #777777;
background-color: #EEEEEE;
margin-left: 50px;
margin-right: 50px;
padding-left: 10px;
padding-right: 10px;
margin-top: 0px;
}
</style>
</head>
<body>
<h2>entete header 2</h2>
<p>un paragraphe normal un paragraphe normal
un paragraphe normal un paragraphe normal
un paragraphe normal un paragraphe normal
un paragraphe normal un paragraphe normal
un paragraphe normal un paragraphe normal
</p>
</body>
</html>

corrigé CSS2

Voici un exemple de code de la page HTML
(il y aurait d’autres solution, en changenat de selecteur ou en utilisant des ‘id’ au lieu des classes…)

    <html>
<head>
<link rel= »stylesheet »  href= »css22.css »>
</head>
<body>
u uiuihui erui  uieruiheruihrui
gefyug gu
<a href=toto.htm>
un lien
</a>
<br><br>
<span class= »exemple »>
sdjh hsdf u gdui g guief guier
</span>
</body>
</html>

et la feuille de style externe correspondante :

   a:link {
color: #0000FF;
text-decoration: underline;
}
a:visited {
color: #0000FF;
text-decoration: underline;
}
a:hover {
color: #0000FF;
text-decoration: none;
}
.exemple {
font-family: Courier, « Courier New », « MS Courier New », Prestige;
color: #101d27;
border-top: 1px solid #013C80;
border-bottom: 1px solid #013C80;
padding-left: 5px;
padding-top: 10px;
padding-bottom: 10px;
background-color: #E6EAF3;
}


					

corrigé CSS 3 – une boite à bords arrondis

<html>

<head>
<style>
.bl {background: url(bl.png) bottom left no-repeat #82C02F; width:300px}
.br {background: url(br.png) bottom right no-repeat}
.tl {background: url(tl.png) top left no-repeat; width:300px}
.tr {background: url(tr.png) top right no-repeat;
	padding:20px;
	color: #FFFFFF
	}

.bord {border-top-image: url(bl.png);
		color:#FF0000}

</style>
</head>

<body>

<div class="bl">
<div class="br">
<div class="tl">
<div class="tr">

du texte du texte  <BR>
du texte du texte  <BR>
du texte du texte  <BR>
du texte du texte  <BR>

</div>
</div>
</div>
</div>

</body>
</html>

Positionnement en CSS

Il est possible avec CSS de placer un élément ou l’on souhaite, dans une page.
Et de réaliser ainsi une mise en page évoluée, bien au dela de la simple présentation de contenu.
Pour positionner un élément dans une page on utilisera les propriétés :

  • position
  • left
  • right
  • top
  • bottom

Les positions se mesurent généralement en pixels. L’origine du repère (coordonnées 0,0) est en haut à gauche.

Le Positionnement absolu

Les positions des éléments seront repérées dans la fenêtre du navigateur, par la distance par rapport aux bords de la fenêtre.
Ainsi pour mettre un élément à 30 pixel du bord en haut a gauche on écrira :

h1 {
position:absolute;
top: 30px;
left: 30px;
}

et pour le mettre en bas à droite (toujours à 30 pixels du coin) :

h1 {
position:absolute;
bottom: 30px;
right: 30px;
}

L’affichage de l’élement est ABSOLU et donc indépendant du contenu de la page, notamment des élément qui apparaissenet ‘avant’ ou ‘après’ dans le document MySQL.
Ceci sera plus clair sur un exemple, soit le code suivant, qui réutilise notre positionnement absolu à 30 pixels :

Avant titre Avant titre Avant titre
Avant titre Avant titre Avant titre
<h1 style= »position:absolute; top: 30px; left: 30px; »>
Titre 1
</h1>
Apres titre Apres titre Apres titre
Apres titre Apres titre Apres titre

cela donne à l’écran :

pos_abs.jpg

Lorsque les éléments sont dans des boites, on positionnera…la boite.
Ceci est possible de manière relative ou de manière absolue.

Le positionnement relatif

La valeur de la propriété position est « relative ».
La différence avec précédemment est que la position est calculée.par rapport au contenu,
qui précède ou qui suit l’élément et non plus indépendaemment.
Reprenons l’exemple précédent en changeant simplement la propriété ‘position’.

Avant titre Avant titre Avant titre
Avant titre Avant titre Avant titre
<h1 style= »position:relative; top: 30px; left: 30px; »>
Titre 1
</h1>
Apres titre Apres titre Apres titre
Apres titre Apres titre Apres titre

Cela nous donne désormais à l’écran :

pos_rel.jpg

Recouvrement et z-index

Si l’on utilise les positions absolues, en décalant légèrement les uns par rapport aux autres il est facilement possible de faire des recouvrements.
Sur une image (un magnifique Daredevil original de Johnny Romita !) par exemple :

<span style= »position:absolute; top: 0px; left: 0px; « >
<img width=200 height=200 src=dd.jpg>
</span>
<span style= »position:absolute; top: 60px; left: 60px; »>
<img width=200 height=200 src=dd.jpg>
</span>
<span style= »position:absolute; top: 120px; left: 120px; »>
<img width=200 height=200 src=dd.jpg>
</span>

nous donnerait à l’écran :

3_daredevils.jpg

les images s’empilent naturellement, DANS L’ORDRE les unes sur les autres.

La propriété supplémentaire ‘z-index’ va nous permettre de modifier l’ordre des couches !
ET le code suivant :

<span style= »position:absolute; top: 0px; left: 0px; z-index:3; »>
<img width=200 height=200 src=dd.jpg>
</span>
<span style= »position:absolute; top: 60px; left: 60px; z-index:2; »>
<img width=200 height=200 src=dd.jpg>
</span>
<span style= »position:absolute; top: 120px; left: 120px; z-index:1; »>
<img width=200 height=200 src=dd.jpg>
</span>

donnera :

3_daredevil_2.jpg

Positionnement flottant

Il est possible grace à la propriété ‘float’ de positionner des éléments de la page, les uns à coté des autres, au lieu de les avoir les uns dessous les autres, par défaut.

Texte multi colonnes

On peut grace à cela envisager de mettre du texte sur plusieurs colonnes verticales, et faire une mise en page de type Journal. Les colonnes ‘flottant’ les unes à coté des autres.
Soit le code HTML suivant, sans Style particulier les 2 colonnes seront l’une à la suite de l’autre…

<div id= »colonne1″>
<h2> Colonne 1 </h2>
<p>et du texte a cote, encore du texte, toujours du texte, et du texte a cote,
encore du texte, toujours du texte, et du texte a cote, encore du texte,
toujours du texte, et du texte a cote, encore du texte, toujours du texte</p>
</div>
<div id= »colonne2″>
<h2> Colonne 2 </h2>
<p>et du texte a cote, encore du texte, toujours du texte,
et du texte a cote, encore du texte, toujours du texte,
et du texte a cote, encore du texte, toujours du texte, et du texte a cote</p>
</div>

Mais en fixant la largeur à 150 pixels et mettant un attribut ‘float’ left, puis en rajoutant  quelques fioritures sur le texte (police, justification et marges) comme ceci :

<style>
div {
font-family: courier;
margin:20px;
text-align:justify;
font-size:10px;
}
#colonne1 { float:left;
width: 150px; }
#colonne2 { float:left;
width: 150px; }
</style>

On obtiendra le résultat escompté :

multicol.gif

Texte entourant une image

Voyons par exemple, le code suivant qui affichera une image, puis dessous (sur une nouvelle ligne) du texte.

<div id= »photo »>
<img src= »dd.jpg » alt= »Daredevil »>
</div>
<p>et du texte a cote, encore du texte, toujours du texte, et du texte a cote, encore du texte, toujours du texte, et du texte a cote, encore du texte, toujours du texte, et du texte a cote, encore du texte, toujours du texte, et du texte a cote, encore du texte, toujours du texte, et du texte a cote, encore du texte…</p>

Pour que l’image soit à gauche et que le texte l’entoure, il suffit de définir la largeur de la boîte contenant l’image, et d’utiliser la propriété float avec la valeur « left » :

Ainsi donc le code  suivant

<html>
<head>
<style>
body {font-size:12px;}
#photo {
float:left;
width: 80px;
}
</style>
</head>
<body>
<div id= »photo »>
<img src= »dd.gif » alt= »Daredevil »>
</div>
<p>et du texte a cote, encore du texte, toujours du texte,
et du texte a cote, encore du texte, toujours du texte,
et du texte a cote, encore du texte, toujours du texte,
et du texte a cote, encore du texte, toujours du texte,
et du texte a cote, encore du texte, toujours du texte,
</p>
</body>
</html>

donnera :

img_float.gif

Un template classique avec bandeau, sommaire et contenu

Soit le code HTML suivant :

<body>
<div id= »bandeau »><h1>bandeau bandeau bandeau bandeau</h1></div>
<div id= »sommaire »>
<ul>
<li> Chapitre 1 </li>
<li> Chapitre 2 </li>
<li> Chapitre 3 </li>
<li> Chapitre 4 </li>
</ul>
</div>
<div id= »page »>
et du texte a cote, encore du texte, toujours du texte, et du texte a cote,
encore du texte, toujours du texte, et du texte a cote, encore du texte,
toujours du texte, et du texte a cote, encore du texte, toujours du texte,
et du texte a cote, encore du texte, toujours du texte, et du texte a cote,
encore du texte, toujours du texte, et du texte a cote, encore du texte,
toujours du texte, et du texte a cote, encore du texte, toujours du texte,
et du texte a cote, encore du texte, toujours du texte, et du texte a cote…
</p>
</div>
</body>
</html>

Il apparait par défaut séquentiellement, encore une fois :

template1.gif

Avec le style suivant, cela prend forme …

<STYLE>
div { text-align:justify; }
#bandeau {
width:500px;
height:50px;
background-color:#999999;
}
#sommaire {
float:left;
width:150px;
height:300px;
color:#FFFFFF;
background-color:#000000;
}
#page {
float:left;
width:350px;
height:300px;
background-color:#EEEEEE;
}
</STYLE>
</head>

et on aura à l’écran :

template.gif

CSS3 – guide de référence

La table qui suit résume la syntaxe des sélecteurs W3C :

Séquence Signification
* tout élément
E tout élément de type E
E[foo] tout élément E portant l’attribut « foo »
E[foo= »bar »] tout élément E portant l’attribut » foo » et dont la valeur
de cet attribut est exactement « bar »
E[foo~= »bar »] tout élément E dont l’attribut « foo » contient une liste
de valeurs séparées par des espaces, l’une de ces valeurs étant exactement
égale à « bar »
E[foo^= »bar »] tout élément E dont la valeur de l’attribut « foo » commence
exactement par la chaîne « bar »
E[foo$= »bar »] tout élément E dont la valeur de l’attribut « foo » finit
exactement par la chaîne « bar »
E[foo*= »bar »] tout élément E dont la valeur de l’attribut « foo » contient
la sous-chaîne « bar »
E[lang|= »en »] tout élément E dont l’attribut ‘lang » est une liste
de valeurs séparées par des tirets et commençant (à gauche) par « en »
E:root un élément E, racine du document
E:nth-child(n) un élément E qui est le n-ième enfant de son parent
E:nth-last-child(n) un élément E qui est le n-ième enfant de son parent
en comptant depuis le dernier enfant
E:nth-of-type(n) un élément E qui est le n-ième enfant de son parent
et de ce type
E:nth-last-of-type(n) un élément E qui est le n-ième enfant de son parent
et de ce type en comptant depuis le dernier enfant
E:first-child un élément E, premier enfant de son parent
E:last-child un élément E, dernier enfant de son parent
E:first-of-type un élément E, premier enfant de son type
E:last-of-type un élément E, dernier enfant de son type
E:only-child un élément E, seul enfant de son parent
E:only-of-type un élément E, seul enfant de son type
E:empty un élément E qui n’a aucun enfant (y compris noeuds
textuels purs)
E:link

E:visited

un élément E qui est la source d’un hyperlien dont la
cible n’a pas encore été visitée (:link) ou a déjà été visitée (:visited)
E:active

E:hover

E:focus

un élément E pendant certaines actions de l’usager
E:target un élément E qui est la cible de l’URL d’origine contenant
lui-même un fragment identifiant.
E:lang(c) un élément E dont le langage (humain) est c (le langage
du document spécifie comment le langage humain est déterminé)
E:enabled

E:disabled

un élément d’interface utilisateur E qui est actif ou
inactif.
E:checked

E:indeterminate

un élément d’interface utilisateur E qui est coché ou
dont l’état est indéterminé (par exemple un bouton-radio ou une case à
cocher)
E:contains(« foo ») un élément E dont le contenu textuel concaténé contient
la sous-chaîne « foo »
E::first-line la première ligne formatée d’un élément E
E::first-letter le premier caractère formaté d’un élément E
E::selection la partie d’un élément E qui est actuellement sélectionnée/mise
en exergue par l’usager
E::before le contenu généré avant un élément E
E::after le contenu généré après un élément E
E.warning Uniquement en HTML. Identique à E[class~= »warning »].
E#myid un élément E dont l’ID est égal à « myid ».
E:not(s) un élément E qui n’est pas représenté par le sélecteur
simple s
E F un élément F qui est le descendant d’un élément E
E > F un élément F qui est le fils d’un élément E
E + F un élément F immédiatement précédé par un élément E
E ~ F un élément F précédé par un élément E