
Dans l’exemple ci dessous nous allons remplacer, avec le CSS, le fameux ‘Hello Word’ par ‘Bonjour Monde’.
Le code HTML (que nous n’allons pas modifier) est le suivant :
- <p class="content">Hello Word</p>
Nous allons nous baser sur la classe ‘content’ pour traduire notre paragraphe.
Pour commencer, utilisons la technique qui consiste à mettre en retrait négative le contenu du paragraphe et de réduite la hauteur de ligne à zéro.
- .content {
- text-indent: -9999px;
- line-height: 0;
- }
Puis il suffit de créer du contenu via le CSS avec l’attribut content: "Bonjour Monde!"; et remettre l’interlignage à la valeur initiale pour ce dernier. Cependant il faut que ce contenu appartienne à une nouvelle ligne (l’ancienne se situe à -9999px du bord gauche de la page) gràce à l’attribut CSS display: block; et supprimer le retrait en fixant sa valeur à zéro.
- .content::after {
- content: "Bonjour Monde!";
- text-indent: 0;
- display: block;
- line-height: initial;
- }
Le pseudo-élément after est nécessaire sinon l’ancien texte sera situé à gauche de la page (voir l’affichage ci-dessous)

Testez vous-même le code sur Codepen
Changer avec Font-size
Une autre solution consiste à réduire la taille du texte d’origine à zéro et redéfinir à la valeur initiale la taille du contenu ajouté par le CSS. Une méthode bien plus simple à mon avis.
- .content {
- font-size: 0;
- }
- .content::before {
- content: "Bonjour Monde!";
- font-size: initial;
- }
Testez vous-même le code sur Codepen
Changer le texte d’un bouton d’envoi (submit) en CSS
Malheureusement il n’est pas possible de le faire avec le CSS en utilisant un pseudo -élément. Deux astuces existent néanmoins.
La première consiste à mettre une image en arrière plan du bouton et mettre la taille du texte à zéro.
- #monBoutonEnvoi{
- font-size: 0;
- width: 135px;
- height: 60px;
- background-image: url(image);
- }
La deuxième consiste à utiliser le Javascript.
- document.getElementById("monBoutonEnvoi").value="Nouveau texte";