PRATIQUE CLIENTS WEB 
Modifier la taille du texte avec JavaScript
 
Une solution rapide pour autoriser les internautes à choisir la taille de police leur offrant la meilleure lisibilité. (05/07/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

La démocratisation de l'accès Internet signifie non seulement plus de visiteurs potentiels pour son site, mais aussi qu'il devient quasiment impossible de créer une mise en page qui convienne à chacun. Si l'on peut mettre en place les éléments selon un dénominateur commun, les polices restent un problème : selon la taille, elles prendront trop de place en 640*480, ou seront illisibles en 1920*1200.

L'idée revient donc à autoriser le lecteur à régler lui-même la taille du texte affiché. La première solution proposée ici consiste à proposer différentes tailles de police, et de laisser l'utilisateur choisir celle qui lui convient le mieux.

Cette solution utilise la fonction getElementsByClass(), présentée dans un précédent article (lire notre article du 12/05/06), pour parcourir les balises HTML et regrouper celles possédant la classe de modification (ici, mod). Cela nous permet de viser uniquement certains textes, et donc de ne pas voir par exemple un menu mis en page avec CSS s'effondrer par un changement inopportun de taille de police.
  1. <script type="text/javascript">
  2. function getElementsByClass(searchClass, node, tag) {
  3.     var classElements = new Array();
  4.     if ( node == null )
  5.         node = document;
  6.     if ( tag == null )
  7.         tag = '*';
  8.     var els = node.getElementsByTagName(tag);
  9.     var elsLen = els.length;
  10.     var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  11.     for (i = 0, j = 0; i < elsLen; i++) {
  12.         if ( pattern.test(els[i].className) ) {
  13.             classElements[j] = els[i];
  14.             j++;
  15.         }
  16.     }
  17.     return classElements;
  18. }
  19.  
  20. function tailleFonte(classe, taille) {
  21.     cibles = getElementsByClass('mod');
  22.     for (i=0; i < cibles.length; i++) {
  23.         cibles[i].style.fontSize = taille;
  24.         }
  25.     }
  26. </script>

Exemple :

Texte : 12px | 14px | 16px | 18px | 20px | 22px

Je suis du texte inchangeable.

Je suis du texte changeable.

Je suis du texte inchangeable.

Je suis du texte changeable.


 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page