Notre magasin

Rue Albert 1er, 7

B-6810 Pin - Chiny

(/fax: 00 32 (0)61/32.00.15

Formation / tutorial FrontPage

FORMATIONS Le MAGASIN YBET PRODUITS et SERVICES

Formation Internet entreprise

Activités et présentation

 

COURS HARDWARE

Rayon d'action  

 
Tutorial Excel Plan d'accès  
ACCUEIL    

11. Feuilles de styles, positionnement

1. Introduction - 2. Positionner une zone - 3. Mise en page CSS

1. Introduction.

Nous avons déjà utilisé les feuilles de styles pour personnaliser des styles de paragraphes, textes, cadres et tableaux, ... dans les précédents chapitre. Cette partie va nous permettre de positionner sur une feuille automatiquement certains éléments.

Prenons tout de suite un exemple d'application. Nous souhaitons une zone centrée horizontalement d'une largeur de 1000 pt. La solution actuelle, au vue de nos connaissances de ce cours est de créer un tableau au centre de la feuille:

<div align="center">
<center>
<table width="1000">
<td>
<tr>

<--- contenu --->

</tr>
</td>
</table>
</center>
</div>

C'est effectivement la plus facile. Pourtant cette solution va alourdir le codage de la page et poser quelques problèmes lorsque nous allons intégrer un ou plusieurs tableau dans cette zone. La solution est de créer une zone dans la feuille de style. Elle n'est pas non plus sans inconvénients, j'en convient, due notamment à la différence d'utilisation du codage entre les différents navigateurs.

Cette solution va également nous permettre de positionner des colonnes dans la zone qui vont différés en taille suivant l'affichage du navigateur (et de nouveau poser quelques problèmes suivant les navigateurs).

2. Positionnement d'une zone

Pour positionner un objet sur notre écran, nous allons utiliser la propriété CSS position déjà vue au chapitre précédant. Elle peut prendre 4 valeurs possible:

2.1. Absolute

D'autres propriétés vont s'ajouter en fonction de ce choix. Positionnons tout de suite un élément en position absolute. Voici le code dans notre feuille de style:

.absolute
{
position: absolute;
top: 1000 pt;
right:300pt;
background-color: #ff0000;
}

Voici le code à insérer en HTML:

<div class="absolute">

<p> texte sur fond rouge</p>

</div>

texte sur fond rouge

Nous avons donc insérer un cadre rouge sur notre feuille à 1000 pt en-dessous du bord de la feuille et 300 pt par rapport au bord droit. Génial, ... sauf que suivant la résolution de votre navigateur, la zone va être soit trop haute, soit trop basse par rapport au commentaire. Vous pouvez essayer. 

La solution absolute ne s'adapte finalement que pour positionner une zone dans un endroit bien définit, le plus souvent tout au dessus à droite ou à gauche, sauf si elle est utilise dans un cadre parent. Comme exemple, utilisons la propriété CSS suivante

topgauche
{
position: absolute;
top: 0 pt;
left:0pt;
background-color: #ff0000;
}

Voici le code à insérer en HTML:

<div class="topgauche">

<p>top gauche CSS</p>

</div>

top gauche CSS

Vous remarquerez immédiatement sur cette page le petit carré rouge tout en haut à droite. En plus, si vous essayez de sélectionner cette zone, vous remarquerez tout de suite qu'au niveau sélection de texte, il est bien positionné ici et pas tout au-dessus. Cette propriété est parfois utilisée pour le référencement pour positionner des textes d'une manière différente pour les visiteurs et les moteurs de recherche, mais c'est plutôt du bricolage.

2.2. Relatif

La deuxième solution de positionnement possible via les feuilles de styles CSS est la position relative. Ceci peut permettre de positionner une zone dans un cadre parent ou même de créer le cadre parent. 

Commençons par Firefox: Le code CSS est le suivant. Remarquez que si Width est vide, le texte ne sera pas positionner. Un exemple est repris sur cette page. Si vous l'utilisez en Explorer, il ne sera pas centré

.global {
margin-left: auto;
margin-right: auto;
width: 300px;
background-color: #000000;
}

Le code à insérer (le même pour tous les navigateur) est

<div class="global">
<p><font color="#FFFFFF">Bonjour</font></p>
</div>

Et oui, Internet Explorer gère différemment le CSS des autres navigateurs (ce n'est pas le cas avec les tableaux). Ce n'est pas tout, ceci varie en plus d'une version à l'autre. Pour le rendre "compatible" avec IE, il va falloir modifier notre fichier CSS. D'abord en modifiant le body: marge à 0 et alignement centré. Ensuite dans notre zone global, rajouter l'alignement du texte à gauche. Un peu tordu, mais obligatoire.

body
{
margin:0;
text-align:center;
}

global {
margin-left: auto;
margin-right: auto;
width: 300px;
background-color: #000000;
text-align: left;
}

Voici une feuille identique fonctionnant avec tous les navigateur (y compris avec Microsoft Explorer). Bien sûr, vous pouvez insérer un margin-top pour faire descendre un peu la zone et même insérer une zone absolute dans cette zone. C'est ce que nous allons faire.

3. Mise en page en CSS

Mon but dans ces notes de cours n'est pas de voire complètement les feuilles CSS, mais de faire une bonne introduction. Pourtant, voici un petit exercice. 

1000 pt
     
 

 Une mise en page standard, un tableau aligné centré de 1000pt. Il va nous falloir créé la zone globale, puis insérer en relatif ou en absolu les 4 zones suivant les propriétés demandées.

en gros, trois zones horizontales .... dont la zone centrale coupée en trois

3.1. Header et footer

Cette zone doit être d'une largeur 1000, la hauteur n'est pas définie. Nous allons également utiliser un padding de 5 pt. Remarquez que nous avons fait exprès de ne pas mettre de text-align-left (en connaissant déjà les conséquences, ceci va automatiquement centré le texte)

body
{
margin:0;
text-align:center;
background-color: #aaaaaa;
}

.header {
position: relative;
margin-left: auto;
margin-right:auto;
width: 1000px;
hight: 0;
background-color: #ff0000;
width: 1000px;
}

.footer {
position: relative;
margin-left: auto;
margin-right:auto;
width: 1000px;
hight: 0;
background-color: #ff0000;
width: 1000px;
}

3.2. Affichage central.

La partie suivante va créer un conteneur que nous appellerons global. Dans ce conteneur, nous intégrerons les trois zones: gauche, centre et droite.

Commençons par reprendre la partie ci-dessus pour créer la zone globale. Nous n'avons pas défini cette fois la marge haute. La couleur de fond n'intervient que si nous insérons du texte à l'intérieur

.global {
position: relative;
margin-left: auto;
margin-right: auto;
width: 1000px;
background-color: #000000;
text-align: left;
}

La zone de gauche est aussi facile, sauf qu'elle va être en position absolue avec une marge gauche (left) de 0 px par rapport au conteneur. Nous lui donnons une largeur de 200 px.

.gauche {
position: absolute;
left:0px;
width: 200px;
background-color: #ff0000;
padding-left:5px;
padding-right:5px;
}

et celle de droite, identique, sauf que c'est right qui passe à 0

.droite {
position: absolute;
right:0px;
width: 200px;
background-color: #ff0000;
padding-left:5px;
padding-right:5px;
}

Il nous reste néanmoins celle du centre. Les marges à droite et à gauche sont définies à 200 px pour reprendre les colonnes de droites et de gauche. Remarquez que nous n'avons pas définit la largeur. Est-ce que ca va nous poser des problèmes? Oui. La couleur de fond (ici violet) ne prendra pas toute la largeur de la colonne, mais uniquement le fond de remplissage de texte.

.milieu {
background-color: #ff00ff;
position: absolute;
margin-left:200px;
margin-right:200px;
padding-left:5px;
padding-right:5px;
}

la propriété complète doit donc finalement reprendre également la largeur de la partie centrale, soit

width: 600px;

3.3 Le code html.

Il ne reste plus qu'à implanter le code en HTML en intégrant à fait les différentes boîtes:

<div class="header">
<font color="#FFFFFF">Bonjour </font></p>
</div>
<!-- fin header - début partie centrale -->
<div class="global">
<div class="gauche">
<p>gauche</p>
</div>
<div class="milieu">
<p>milieu</p>
</div>
<div class="droite">
<p>droite</p>
</div>
</div>
<!-- fin partie centrale -->
<div class="footer">
<font color="#FFFFFF"> footer</font>
</div>

Je vous laisse le soin de faire la même chose en utilisant des pourcentages pour la partie centrale, éventuellement pour l'ensemble du tableau.

Formations complémentaires:

<13.10. Feuilles de styles externes

La suite du tutorial FrontPage > 13.12. Formulaires FrontPage

La formation / tutorial FrontPage

13.1. FrontPage - 13.2. Les tableaux - 13.3. Insertion d'images - 13.4. Les paragraphes - 13.5 Bases HTML - 13.6. Liens et signets  - 13.7. Structure - 13.8. Composants et extensions - 13.9. Introduction aux CSS -  13.10. Feuilles de styles, les tableaux - 13.11. Positionnement de zone en CSS - 13.12 Formulaires

YBET Informatique: formation débutant ou avancé

dans notre salle de formation à Chiny ou en entreprise

Renseignements, tarifs et inscriptions sur notre page formations informatiques

Mise à jour: 14/12/2007

Magasin informatique YBET à Chiny, formations

Autres formations en ligne:

Access - Excel - PowerPoint - Word - Operating System - hardware