Autour du Web
Cours

CSS : mise en forme globale

Inline et block

Maintenant que nous savons modifier l'apparence des éléments, nou allons nous intéresser à l'agencement.

Agencement, côté XHTML

Inline et block ?

Les notions de inline et de block sont essentiels dans l'organisation d'une page web : les éléments block sont suivi d'un retour à la ligne, contrairement aux éléments inline

Si on visualise cela sous forme d'un tableau (ce qui est faux, cela ne sert que d'illustration), on peut dire que les éléments inline permettent de changer de colonne et les éléments block de changer de ligne. C'est évidemment un peu plus subtil que cela...

ExempleDes balises naturellement inline ou block

Les balises de mise en valeur des mots (<em>, <b>, <oblique>,...), de citation courte (<q>), de lien (<a>) sont des balises inline : lorsqu'on les utilise, le texte continue à la suite.

Les balises de paragraphes (<p>), de citation longue (<blockquote>), d'insertion d'image, de titres ou encore de listes ou de tableaux, sont quant à elles de type block.

Div et Span

Nous avons déjà utilisé la balise <span> pour faire de la mise en forme locale dans un texte. Elle sert à attribuer une classe à du contenu, de manière inline : sans retour à la ligne. La balise <div> est son équivalent pour le mode block : on regroupe dans une division tous les éléments devant apparaître ensemble. Les balises <div> peuvent être imbriquées les unes dans les autres. Le CSS permet ensuite de les positionner les unes par rapport aux autres et de définir pour chaque un style.

RemarqueEt pour aller plus loin

Notez qu'il est possible de modifier le type inline ou block d'un élément depuis le CSS (rendre une liste horizontale par exemple)

Mise en pratique

Mise en page, enfin !

Nous allons maintenant reprendre notre page XHTML et insérer les divisions adéquates à une mise en page fonctionnelle.

SyntaxeAjouter les divisions

Pour l'entête

<div id="entete">

<h1> Mon Site!</h1>

</div>

Pour le menu principal

<div id="menu1">

<p> Voici une liste </p>

<ul>

<li> premier </li>

<li> second </li>

</ul>

</div>

Pour le sous-menu (pour faire une navigation à double entrée)

<div id="menu2">

<p> Voici une liste numérotée </p>

<ol>

<li> premier </li>

<li> second </li>

</ol>

</div>

Pour le contenu pur

<div class="texte">

<h2> Première partie de mon contenu</h2>

<p> Mon premier paragraphe : à ce sujet, regardez sur le web ce qu'il se dit du Lorem Ipsum ! </p>

...

<h2> Les liens </h2>

<p>mon lien: <a href="http://cours.loosli.fr">Quelques cours</a></p>

<p>N'hésitez pas à aller le <span class="visite"> visiter </span>, il vaut <em>vraiment</em> le coup d'oeil ;)</p>

</div>

<div class="texte">

<table>

<tr>

<td> 1 </td><td> 2 </td>

</tr>

<tr>

<td> voilà </td><td> voici </td>

</tr>

</table>

<p> Et maintenant, le super tableau imbriqué </p>

<table class="imbrique">

<tr class="premiereligne">

<td> 1 </td><td> 2 </td> <td> 3 </td> <td> 4 </td>

</tr>

<tr>

<td> voilà </td><td> voici </td> <td> par ici </td> <td> par là </td>

</tr>

<tr>

<td>

<table>

<tr>

<td> miam </td> <td> miam </td>

</tr>

<tr>

<td> tut </td> <td> tut </td>

</tr>

</table>

</td>

<td> voici encore </td> <td> pas par ici </td> <td> ni par là </td>

</tr>

</table>

</div>

Pour l'image

<div class="image">

<p>

Vous souhaitez vous rendre vers un endroit magique ?

Rien de plus simple, cliquez sur l'image :<br />

<a href="http://cours.loosli.fr"><img src="./images/hawai.jpg"

alt="Photo de Hawaii" title="Clique pour voyager !" id="logo" /></a>

</p>

</div>

Et ainsi de suite...

A l'affichage ?

Pour l'affichage, s'il n'y a pas de feuilles de style, ce que nous venons de faire n'a aucun effet : le contenu est présenté dans l'ordre où il apparaît dans le XHTML.

ExempleOu sont les divisions ?

Essayez la CSS suivante (enregistrez dans un fichier justelesdiv.css et liez ce fichier à votre XHTML)

#entete

{

background-color:red;

}

#menu1

{

background-color:orange;

}

#menu2

{

background-color:pink;

}

.texte

{

background-color:blue;

}

.image

{

background-color:yellow;

}

Joli non ?

Positionner les divisions

Il existe plusieurs modes de positionnement (static, fixe, relatif, absolu). Nous allons voir le principe de chacun d'entre eux puis les mettre en pratique.

Position statique : celle par défaut, l'ordre est celui du fichier XHTML

Position fixe : la division reste à un position fixe par rapport au navigateur

Position relative : la division se place aux autres

Position absolue : la division est placée par rapport à la division non statique qui le contient, à défaut le navigateur

On modifie le positionnement à l'aide des mots clés left, right, bottom, top qui indiquent des distances. Les éléments peuvent se superposer, on peut alors définir l'ordre de la pile (qui est devant qui) à l'aide de la commande z-index.

ExempleIllustration

Tentez cette modification du CSS

.image

{

background-color:yellow;

position:fixed;

bottom:0px;

}

Puis celle-ci

#entete

{

background-color:red;

position:absolute;

top:100px;

}

Ou encore

.texte

{

background-color:blue;

position:relative;

float:left;

width:70%;

}

Ici on peut remarquer le float qui indique où doit se positionner l'élément par rapport aux éléments suivants... (left ou right)

ComplémentExemple (encore)

#entete

{

background-color:red;

position:relative;

top:10px;

padding-top:30px;

}

#menu1

{

background-color:orange;

padding-bottom:10px;

position:relative;

left:0px;

right:0px;

top:10px;

}

#menu1 ul li

{

display:inline;

border:1px solid black;

margin:3px;

padding:3px;

}

#menu1 p

{

visibility:hidden;

}

#menu2

{

position:relative;

left:0px;

background-color:pink;

margin-top:20px;

width:25%;

padding-left:10px;

}

.texte

{

background-color:blue;

position:relative;

float:right;

width:73%;

top:100px;

}

.image

{

background-color:yellow;

position:fixed;

bottom:0px;

width:25%;

padding-left:10px;

}

Absolument div ! (page suivante)TP (page Précédente)
AccueilImprimerRéalisé avec SCENARI