Lire cette page et à la fin faire le QCM et l'exercice. L'objectif est d'être capable de modifier une police et la taille du texte.


 

La taille

Pour modifier la taille du texte, on utilise la propriété CSS font-size. Mais comment indiquer la taille du texte ? C'est là que ça se corse car plusieurs techniques vous sont proposées :

  • Indiquer une taille absolue : en pixels, en centimètres ou millimètres. Cette méthode est très précise mais il est conseillé de ne l'utiliser que si c'est absolument nécessaire, car on risque parfois d'indiquer une taille trop petite pour certains lecteurs.
  • Indiquer une taille relative : en pourcentage, "em" ou "ex", cette technique a l'avantage d'être plus souple. Elle s'adapte plus facilement aux préférences de taille des visiteurs.


Une taille absolue



Pour indiquer une taille absolue, on utilise généralement les pixels. Pour avoir un texte de 16 pixels de hauteur, vous devez écrire :

Code : CSS - Sélectionner
1
font-size: 16px;


Les lettres auront une taille de 16 pixels, comme le montre l'image suivante :

Image utilisateur


Voici un exemple d'utilisation (placez ce code dans votre fichier .css) :

Code : CSS - Sélectionner
1
2
3
4
5
6
7
8
p
{
    font-size: 14px; /* Paragraphes de 14 pixels */
}
h1
{
    font-size: 40px; /* Titres de 40 pixels */
}




Si vous le souhaitez, des tailles en centimètres ou millimètres sont aussi disponibles. Remplacez "px" par "cm" ou "mm". Ces unités sont cependant moins bien adaptées aux écrans.


Une valeur relative



C'est la méthode recommandée car le texte s'adapte alors plus facilement aux préférences de tous les visiteurs.

Il y a plusieurs moyens d'indiquer une valeur relative. Vous pouvez par exemple écrire la taille avec des mots en anglais comme ceux-ci :

  • xx-small : minuscule
  • x-small : très petit
  • small : petit
  • medium : moyen
  • large : grand
  • x-large : très grand
  • xx-large : euh... gigantesque.


Vous pouvez tester l'utilisation de ces valeurs dans votre code CSS :

Code : CSS - Sélectionner
1
2
3
4
5
6
7
8
p
{
    font-size: small;
}
h1
{
    font-size: large;
}


Bon, cette technique a un défaut : il n'y a que 7 tailles disponibles (car il n'y a que 7 noms). Heureusement il existe d'autres moyens. Ma technique préférée consiste à indiquer la taille en "em". C'est une unité spécifique au CSS.

  • Si vous écrivez 1em, le texte a une taille normale.
  • Si vous voulez grossir le texte, vous pouvez inscrire une valeur supérieure à 1, comme 1.3em.
  • Si vous voulez réduire le texte, inscrivez une valeur inférieure à 1, comme 0.8em.


Faites attention, il faut mettre un point à la place de la virgule pour les nombres décimaux. Vous devez donc écrire "1.4em" et non pas "1,4em" !


Exemple :


Code : CSS - Sélectionner
1
2
3
4
5
6
7
8
p
{
    font-size: 0.8em;
}
h1
{
    font-size: 1.3em;
}


D'autres unités sont disponibles. Vous pouvez essayer le "ex" (qui fonctionne sur le même principe que le em mais qui est plus petit de base) et le pourcentage (80%, 130%...).

La police



En effet, le problème c'est que, pour qu'une police s'affiche correctement, il faut que tous les internautes l'aient. Si un internaute n'a pas la même police que vous, son navigateur prendra une police par défaut (une police standard) qui n'aura peut-être rien à voir avec ce à quoi vous vous attendiez.

La bonne nouvelle, c'est que depuis CSS 3, il est possible de faire télécharger automatiquement une police au navigateur. Je vous expliquerai dans un second temps comment faire cela.

Modifier la police utilisée



La propriété CSS qui permet d'indiquer la police à utiliser est font-family. Vous devez écrire le nom de la police comme ceci :

Code : CSS - Sélectionner
1
2
3
4
balise
{
    font-family: police;
}


Seulement, pour éviter qu'il n'y ait de problème si l'internaute n'a pas la même police que vous, on précise en général plusieurs noms de police, séparés par des virgules :

Code : CSS - Sélectionner
1
2
3
4
balise
{
    font-family: police1, police2, police3, police4;
}


Le navigateur essaiera d'abord de mettre la police1. S'il ne l'a pas, il essaiera de mettre la police2. S'il ne l'a pas, il essaiera la police3 et ainsi de suite.
En général, on indique en tout dernier serif, ce qui correspond à une police standard (qui ne se met que si aucune autre police n'a été trouvée).

Il existe aussi une autre police par défaut appelée sans-serif. Il y a une petite différence entre ces deux polices par défaut : serif possède des pattes de liaison en bas des lettres, tandis que sans-serif n'en possède pas. Oui c'est subtil.


Oui, mais quelles sont les polices les plus courantes qu'on a le "droit" d'utiliser me direz-vous ?
Voici une liste de polices qui fonctionnent bien sur la plupart des navigateurs :

  • Arial
  • Arial Black
  • Comic Sans MS
  • Courier New
  • Georgia
  • Impact
  • Times New Roman
  • Trebuchet MS
  • Verdana

Voici à quoi ressemblent ces polices :



Ainsi, si j'écris :

Code : CSS - Sélectionner
1
2
3
4
p
{
    font-family: Impact, "Arial Black", Arial, Verdana, serif;
}


... cela signifie : "Mets la police Impact, ou, si elle n'y est pas, Arial Black, ou sinon Arial, ou sinon Verdana, ou si rien n'a marché mets une police standard (serif)".

En général, il est bien d'indiquer un choix de 3-4 polices (+ serif) afin de s'assurer qu'au moins l'une d'entre elles aura été trouvée sur l'ordinateur du visiteur.

Si le nom de la police comporte des espaces, je conseille de l'entourer de guillemets, comme je l'ai fait pour "Arial Black".


Utiliser une police personnalisée avec @font-face



Je trouve le choix des polices trop limité.
Comment puis-je utiliser ma police préférée sur mon site web ?


Pendant longtemps, cela n'était pas possible. Aujourd'hui, avec CSS 3, il existe heureusement un moyen d'utiliser n'importe quelle police sur son site. Cela fonctionne bien avec la plupart des navigateurs.

Mais attention, il y a des défauts (ça serait trop beau sinon) :
  • Il faudra que le navigateur de vos visiteurs télécharge automatiquement le fichier de la police, qui peut peser parfois 1 Mo voire plus...
  • La plupart des polices sont soumises au droit d'auteur, il n'est donc pas légal de les utiliser sur son site. Heureusement, il existe des sites comme fontsquirrel.com et dafont.com qui en proposent un certain nombre libres de droit à télécharger. Je recommande en particulier fontsquirrel.com car il permet de télécharger des packs prêts à l'emploi pour CSS 3. A noter aussi le service Google Web Fonts qui est très bien fait.
  • Il existe plusieurs formats de fichier de police, et ils ne fonctionnent pas sur tous les navigateurs.

Voici les différents formats de fichiers de police qui existent et qu'il faut connaître :
  • .ttf : TrueType Font. Fonctionne sur IE9 et tous les autres navigateurs.
  • .eot : Embedded OpenType. Fonctionne sur Internet Explorer uniquement, toutes versions. Ce format est propriétaire de Microsoft.
  • .otf : OpenType Font. Ne fonctionne pas sur Internet Explorer
  • .svg : SVG Font. Le seul format reconnu sur les iPhone et iPad pour le moment.
  • .woff : Web Open Font Format. Nouveau format conçu pour le Web qui fonctionne sur IE9 et tous les autres navigateurs.


En CSS, pour définir une nouvelle police, vous devez la déclarer comme ceci :

Code : CSS - Sélectionner
1
2
3
4
@font-face {
    font-family: 'MaSuperPolice';
    src: url('MaSuperPolice.eot');
}


Le fichier de police (ici MaSuperPolice.eot) doit ici être situé dans le même dossier que le fichier CSS (ou dans un sous-dossier si vous utilisez un chemin relatif).

Je croyais qu'il y avait plusieurs formats de police ?


Oui, d'ailleurs les .eot ne marchent que sur Internet Explorer. L'idéal est de proposer plusieurs formats de police : le navigateur téléchargera celui qu'il sait lire. Voici comment indiquer plusieurs formats :

Code : CSS - Sélectionner
1
2
3
4
5
6
7
@font-face {
    font-family: 'MaSuperPolice';
    src: url('MaSuperPolice.eot') format('eot'),
         url('MaSuperPolice.woff') format('woff'),
         url('MaSuperPolice.ttf') format('truetype'),
         url('MaSuperPolice.svg') format('svg');
}


Pour tester le fonctionnement, je vous propose de télécharger une police sur fontsquirrel, par exemple Learning Curve Pro. Cliquez sur "@font-face Kit", cela vous permettra de télécharger un kit prêt à l'emploi avec tous les formats de police.

Votre fichier CSS ressemblera à ceci au final :

Code : CSS - Sélectionner
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@font-face { /* Définition d'une nouvelle police nommée LearningCurveProRegular */
    font-family: 'LearningCurveProRegular';
    src: url('LearningCurve_OT-webfont.eot');
    src: url('LearningCurve_OT-webfont.eot?#iefix') format('embedded-opentype'),
         url('LearningCurve_OT-webfont.woff') format('woff'),
         url('LearningCurve_OT-webfont.ttf') format('truetype'),
         url('LearningCurve_OT-webfont.svg#LearningCurveProRegular') format('svg');
}

h1 /* Utilisation de la police qu'on vient de définir sur les titres */
{
    font-family: 'LearningCurveProRegular', Arial, serif;
}


La première (grosse) section @font-face permet de définir un nouveau nom de police qui pourra être utilisé dans le fichier CSS. Ensuite, nous utilisons ce nom de police avec la propriété font-family que nous connaissons, pour modifier l'apparence des titres <h1>. Et voilà le résultat :


Sommaire

Italique, gras, souligné...

Il existe en CSS une série de propriétés de mises en forme classiques du texte. Nous allons découvrir ici la mise en gras, italique, souligné... et au passage nous verrons qu'il est même possible d'aller jusqu'à faire clignoter le texte !

Mettre en italique



<em>, mettez-vous bien ça dans la tête, est fait pour insister sur des mots. Ca veut dire que les mots qu'il entoure sont assez importants.
Pour représenter cette importance, la plupart des navigateurs choisissent d'afficher le texte en italique (mais ce n'est pas une obligation).

Le CSS lui, permet de dire réellement : "Je veux que ce texte soit en italique". Rien ne vous empêche par exemple de décider que tous vos titres seront en italique.

Concrètement, pour mettre en italique en CSS on utilise font-style, qui peut prendre 3 valeurs :
  • italic : le texte sera mis en italique.
  • oblique : le texte sera aussi mis en italique (en penchant les lettres).
  • normal : le texte sera normal (par défaut). Cela vous permet d'annuler une mise en italique. Par exemple, si vous voulez que les textes entre <em> ne soient plus en italique, vous devrez écrire :

    Code : CSS - Sélectionner
    1
    2
    3
    4
    em
    {
        font-style: normal;
    }
    


Sur l'exemple suivant, je me sers par exemple de font-style pour mettre en italique tous mes titres <h2> :

Code : CSS - Sélectionner
1
2
3
4
h2
{
    font-style: italic;
}


Mettre en gras




La propriété CSS pour mettre en gras est font-weight, et prend les valeurs suivantes :
  • bold : le texte sera en gras.
  • normal : le texte sera écrit normalement (par défaut).


Voici par exemple comment écrire les titres en gras :

Code : CSS - Sélectionner
1
2
3
4
h1
{
    font-weight: bold;
}


Soulignement et autres décorations



Cette propriété CSS porte bien son nom : text-decoration. Elle permet entre autres de souligner le texte, mais pas seulement. Voici les différentes valeurs qu'elle peut prendre :

  • underline : souligné.
  • line-through : barré.
  • overline : ligne au-dessus.
  • blink : clignotant. Ne marche pas sur tous les navigateurs (Internet Explorer et Google Chrome notamment).
  • none : normal (par défaut).

Ce CSS va vous permettre de tester les effets de text-decoration :

Code : CSS - Sélectionner
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
h1
{
    text-decoration: blink;
}
.souligne
{
    text-decoration: underline;
}
.barre
{
    text-decoration: line-through;
}
.ligne_dessus
{
    text-decoration: overline;
}




Sommaire

L'alignement

Le langage CSS nous permet de faire tous les alignements que l'on connaît : à gauche, centré, à droite et justifié.

C'est tout simple. On utilise la propriété text-align, et on indique l'alignement désiré :
  • left : le texte sera aligné à gauche (c'est le réglage par défaut).
  • center : le texte sera centré.
  • right : le texte sera aligné à droite.
  • justify : le texte sera "justifié". Justifier le texte permet de faire en sorte qu'il prenne toute la largeur possible sans laisser d'espace blanc à la fin des lignes. Les textes des journaux, par exemple, sont tout le temps justifiés.

Regardez les différents alignements sur cet exemple :

Code : CSS - Sélectionner
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
h1
{
    text-align: center;
}

p
{
    text-align: justify;
}

.signature
{
    text-align: right;
}




Vous ne pouvez pas modifier l'alignement du texte d'une balise inline (comme <span>, <a>, <em>, <strong>...). L'alignement ne fonctionne que sur des balises de type block (<p>, <div>, <h1>, <h2>, ...), et c'est un peu logique quand on y pense : on ne peut pas modifier l'alignement de quelques mots au milieu d'un paragraphe !
C'est donc en général le paragraphe entier qu'il vous faudra aligner.

Les flottants

Le CSS nous permet de faire flotter un élément autour du texte. On dit aussi qu'on fait un "habillage".

Pour que vous voyiez bien de quoi on parle, voici ce que nous allons apprendre à faire :

Image utilisateur
Une image flottant à gauche

Image utilisateur
Une image flottant à droite


J'imagine que la question qui vous brûle les lèvres maintenant est : "Mais quelle est donc la propriété magique qui fait flotter ?".
La réponse est... float ("flottant" en anglais). Cette propriété peut prendre 2 valeurs très simples :

  • left : l'élément flottera à gauche.
  • right : l'élément flottera... à droite ! Oui bravo.

L'utilisation des flottants est très simple :
  1. Vous appliquez un float à une balise.
  2. Puis vous continuez à écrire du texte à la suite normalement.


On peut aussi bien utiliser la propriété float sur des balises block que sur des balises inline. Il est courant de faire flotter une image pour qu'elle soit habillée par du texte, comme sur les exemples précédents.


Faire flotter une image



Nous allons apprendre ici à faire flotter une image. Voici le code HTML que nous devons taper dans un premier temps :

Code : HTML - Sélectionner
1
<p><img src="flash.gif" class="imageflottante" alt="Image flottante" /> Ceci est un texte normal de paragraphe, écrit à la suite de l'image et qui l'habillera car l'image est flottante.</p>


Vous devez placer l'élément flottant en premier dans le code HTML. Si vous placez l'image après le paragraphe, l'effet ne fonctionnera pas.


Voici le seul bout de code CSS qu'on a besoin de taper, qui permet de faire flotter l'image à gauche :

Code : CSS - Sélectionner
1
2
3
4
.imageflottante
{
    float: left;
}



Amusez-vous aussi à faire flotter l'image à droite, c'est tout bête : il suffit d'indiquer la valeur right et le tour est joué !


Stopper un flottant



Quand vous mettez en place un flottant, le texte autour l'habille. Mais comment faire si vous voulez qu'au bout d'un moment le texte continue en-dessous du flottant ? On pourrait faire plusieurs <br /> à la suite, mais ça ne serait ni élégant ni très propre...

En gros, on aimerait pouvoir faire ça :

Image utilisateur


Il existe en fait une propriété CSS qui permet de dire : "Stop, ce texte doit être en-dessous du flottant et non plus à côté". C'est la propriété clear qui peut prendre ces trois valeurs :

  • left : le texte se poursuit en-dessous après un float: left;
  • right : le texte se poursuit en-dessous après un float: right;
  • both : le texte se poursuit en-dessous, que ce soit après un float: left; ou après un float: right;


Pour simplifier, on va utiliser tout le temps le clear: both, qui marche après un flottant à gauche et après un flottant à droite (ça marche à tous les coups donc). Pour illustrer son fonctionnement, on va prendre ce code HTML :

Code : HTML - Sélectionner
1
2
3
<p><img src="flash.gif" class="imageflottante" alt="Image flottante" /></p>
<p>Ce texte est écrit à côté de l'image flottante.</p>
<p class="dessous">Ce texte est écrit sous l'image flottante.</p>


Et ce code CSS :

Code : CSS - Sélectionner
1
2
3
4
5
6
7
8
.imageflottante
{
   float: left;
}
.dessous
{
   clear: both;
}



Et voilà le travail.
On applique un clear: both; au paragraphe que l'on veut voir continuer sous l'image flottante, et le tour est joué !

Sommaire