32. Fonctions avancées : CSS personnalisé, code, conditions d’affichage, rôles, Notes
Le panneau d’Elementor couvre l’immense majorité des besoins d’un site vitrine. Reste une marge, étroite mais utile, où quelques lignes de CSS, un extrait de code de mesure ou une condition d’affichage règlent en deux minutes ce que le panneau ne prévoit pas. Ce chapitre rassemble ces fonctions dites « avancées » avec une règle constante : peu, documenté, réversible. Il ferme la partie consacrée à Elementor Pro, juste avant la livraison du site.
Le panneau d’Elementor couvre l’immense majorité des besoins d’un site vitrine. Reste une marge, étroite mais utile, où quelques lignes de CSS, un extrait de code de mesure ou une condition d’affichage règlent en deux minutes ce que le panneau ne prévoit pas. Ce chapitre rassemble ces fonctions dites « avancées » avec une règle constante : peu, documenté, réversible. Il ferme la partie consacrée à Elementor Pro, juste avant la livraison du site.
En bref
- Public
- Toute personne qui a construit son site et bute sur un détail que le panneau ne règle pas ; les médiateurs qui reprennent un site existant.
- Enjeu
- Ajouter ce qui manque sans casser ce qui marche, et savoir revenir en arrière.
- Idée clé
- Dix lignes de CSS bien choisies valent mieux qu’une extension de plus.
- Prérequis
- Chapitres 03, 10, 13, 18 et 24.
- Lecture
- Environ 16 minutes (+ 25 minutes d’exercice).
32.1 — CSS personnalisé : par élément et pour tout le site
Le chapitre 03 a présenté le CSS comme l’habillage d’une page : des règles qui disent au navigateur « ce paragraphe ne dépasse pas telle largeur », « cette image remplit sa boîte ». Le panneau d’Elementor écrit ce CSS pour vous. Le CSS personnalisé (Custom CSS) permet d’en ajouter à la main, à deux endroits.
Le premier est l’élément. Sur un widget classique, l’onglet Avancé contient une section CSS personnalisé ; sur un élément atomique, la même possibilité existe dans son panneau, et la Structure signale par un marqueur les éléments qui en portent. Dans ce champ, le mot-clé selector désigne l’élément lui-même : Elementor le remplace, à l’enregistrement, par l’identifiant unique de l’élément, si bien que la règle ne s’applique qu’à lui. Le second endroit est global : Réglages du site › CSS personnalisé, pour des règles qui valent sur tout le site et visent des classes ou des balises. D’après la page tarifs, ces deux fonctions sont réservées aux plans Advanced Solo et supérieurs ; le plan Essential ne les inclut pas.
- Sélectionnez l’élément sur la toile, par exemple le Paragraphe d’introduction de la page « À propos ».
- Ouvrez le champ CSS personnalisé (onglet Avancé pour un widget classique ; section dédiée du panneau pour un atome).
- Écrivez la règle en commençant par
selector:selector { max-width: 65ch; }. Chaque propriété se termine par un point-virgule, l’ensemble tient entre accolades. - Vérifiez sur la toile, puis en vue tablette et mobile (Ctrl+Shift+M ; Cmd remplace Ctrl sur Mac) : une règle CSS s’applique à toutes les largeurs, sauf si vous l’enfermez dans une requête de média.
- Documentez. Ajoutez une ligne de commentaire au-dessus de la règle, entre
/*et*/:/* largeur de lecture — ch. 32 */. Dans six mois, vous remercierez celui qui l’a écrite.
Sans Pro, WordPress offre une solution de repli honnête : Apparence › Personnaliser › CSS additionnel accepte des règles globales. Il faut alors viser les éléments par leur classe ou par un identifiant que vous leur donnez, ce qui demande un peu plus de soin.
| N° | La ligne | Ce qu’elle fait | Où l’employer |
|---|---|---|---|
| 1 | selector { max-width: 65ch; } | Limite la longueur de ligne à environ 65 caractères, la zone de confort de lecture (chapitre 13). | Paragraphe, Éditeur de texte |
| 2 | selector { hyphens: auto; } | Autorise la coupure des mots longs avec un trait d’union, à condition que le site soit déclaré en français (Réglages › Général › Langue du site). | Textes en colonne étroite, mobile |
| 3 | selector { text-wrap: balance; } | Équilibre les lignes d’un titre sur deux ou trois lignes au lieu de laisser un mot orphelin (navigateurs récents). | Titres H1 et H2 |
| 4 | selector img { object-fit: cover; } | L’image remplit sa boîte sans se déformer, quitte à être rognée sur les bords. | Image dans une carte |
| 5 | selector { aspect-ratio: 4 / 3; } | Impose une proportion constante à toutes les vignettes, quelle que soit la photo d’origine. | Vignettes de galerie, cartes |
| 6 | selector { overflow-wrap: anywhere; } | Coupe une adresse e-mail ou une adresse web trop longue au lieu de la laisser déborder sur mobile. | Coordonnées du pied de page |
| 7 | selector { scroll-margin-top: 96px; } | Quand un lien d’ancre y conduit, le conteneur s’arrête sous l’en-tête collant au lieu de passer dessous. | Cible d’une ancre (#contact) |
| 8 | selector { transition: transform .3s ease; } selector:hover { transform: translateY(-4px); } | Soulève doucement la carte au survol ; à réserver aux widgets classiques, les atomes ayant les États du chapitre 18. | Cartes prestations V3 |
| 9 | selector a { text-underline-offset: 3px; text-decoration-thickness: 1px; } | Éloigne et affine le soulignement des liens dans un texte, pour une lecture plus nette. | Paragraphes contenant des liens |
| 10 | selector { columns: 2; column-gap: 32px; } | Répartit un long texte sur deux colonnes ; à ramener à une colonne sur mobile avec @media (max-width: 767px) { selector { columns: 1; } }. | Mentions légales, texte long |
Attention
Le CSS personnalisé passe par-dessus le panneau : une règle écrite ici gagne sur le réglage équivalent, et l’on cherche ensuite longtemps pourquoi « la largeur ne veut pas changer ». Trois précautions : n’écrire en CSS que ce que le panneau ne propose pas ; ne jamais employer !important, qui rend la règle impossible à surcharger ; tenir dans les Notes ou dans un document la liste des éléments qui portent du CSS. Et pour tout ce qui relève du style courant, les Classes et Variables du chapitre 18 restent la voie normale.
32.2 — Code personnalisé : scripts de mesure et balises d’en-tête
Un site a parfois besoin d’un extrait de code qui n’est pas du CSS : le script d’un outil de statistiques, la balise de vérification d’un service (console de recherche d’un moteur, fiche d’établissement), le préchargement d’une police. Ces extraits vont dans l’en-tête ou le pied du document HTML, une zone que l’éditeur ne montre pas. Elementor Pro (plans Advanced Solo et supérieurs) fournit pour cela le Code personnalisé (Custom Code), dans Elementor › Éditeur › Éléments personnalisés › Code personnalisé.
On y crée un extrait avec un nom, un emplacement — dans <head>, au début de <body> ou à sa fin —, une priorité de 1 à 10 qui règle l’ordre de chargement quand plusieurs extraits partagent le même emplacement, et le code lui-même. La publication passe par les mêmes conditions que le Constructeur de thème (chapitre 24) : Tout le site le plus souvent, ou seulement certaines pages. Un script de statistiques se place dans <head> sur tout le site ; un script lourd et facultatif, en fin de <body>, pour ne pas retarder l’affichage.
À savoir
Insérer un script de mesure engage la conformité du site. Un outil de statistiques qui dépose des traceurs non exemptés exige un bandeau de consentement avant chargement ; un outil comme Matomo, configuré selon les conditions de la CNIL, en est exempté. Le chapitre 35 détaille ces conditions. Sans Pro, l’insertion se fait par le thème enfant ou par une extension d’insertion de code, citée ici comme exemple et non comme recommandation.
32.3 — Polices, icônes et attributs personnalisés
Le même menu Éléments personnalisés abrite deux autres outils Pro. Les Polices personnalisées (Custom Fonts) servent à héberger une police sur votre propre site : une police achetée, ou une police Google que vous préférez servir vous-même plutôt que depuis les serveurs de Google (chapitre 13). On crée une entrée, on lui donne le nom de la famille, puis on téléverse les fichiers, de préférence au format WOFF2, en précisant pour chacun sa graisse et son style ; après publication, la famille apparaît dans les listes de typographie du panneau. Les Icônes personnalisées (Custom Icons) acceptent un jeu d’icônes exporté au format zip depuis un générateur en ligne (Fontello et IcoMoon sont les deux exemples cités par le Centre d’aide), pour compléter la bibliothèque Font Awesome.
Les Attributs (Attributes), dans l’onglet Avancé des widgets classiques et des conteneurs V3 (Pro), ajoutent des informations invisibles au HTML de l’élément, une par ligne, sous la forme clé|valeur. Le cas le plus utile pour un artisan est l’accessibilité : un bouton « Appeler » dont le texte est une icône reçoit aria-label|Appeler la Menuiserie Roche, et le lecteur d’écran sait quoi annoncer. On y place aussi des attributs data- attendus par certains scripts. Rien de tout cela n’est nécessaire sur un site simple ; savoir que l’outil existe évite d’installer une extension pour une ligne.
32.4 — Conditions d’affichage sur un élément
Le Constructeur de thème décide sur quelles pages un en-tête apparaît. Les Conditions d’affichage (Display Conditions) d’Elementor Pro descendent d’un cran : elles décident si un élément précis — un conteneur, un widget, un atome — est affiché ou non, selon des critères que vous combinez. Sur un widget classique, la commande se trouve dans l’onglet Avancé ; sur un élément atomique, dans son panneau ; dans les deux cas la Structure marque l’élément conditionné.
Les critères disponibles couvrent la date et l’heure (une plage de dates, un jour de la semaine, une tranche horaire), l’utilisateur (connecté ou non, rôle), le contenu affiché (type de contenu, page précise, catégorie, auteur) et des valeurs dynamiques. Plusieurs conditions se combinent par « et » et par « ou ». L’élément non affiché n’est pas simplement caché : il n’est pas envoyé au visiteur.
- Construisez le bandeau. Sur l’en-tête du site (chapitre 24), ajoutez au-dessus du menu un Flexbox fin, fond vert sauge, avec un Paragraphe : « L’atelier est fermé du 4 au 25 août. Les devis reprennent dès le 26 : écrivez-nous, nous répondons à notre retour. »
- Ouvrez les Conditions d’affichage du Flexbox et ajoutez une condition.
- Choisissez le critère de date et saisissez la plage : du 4 au 25 août de l’année en cours.
- Enregistrez et publiez l’en-tête. Vérifiez avec l’aperçu : hors de la plage, le bandeau n’apparaît pas ; pendant la plage, il apparaît sur tout le site.
- Notez la date de retrait : une condition de date évite l’oubli, mais un bandeau conservé d’une année sur l’autre finit par afficher des dates fausses. Mettez-le à jour chaque été, ou supprimez-le à la rentrée.
Bonne pratique
Les conditions d’affichage remplacent avantageusement les « pages en double » : une seule page « Prestations » peut montrer un encart « Tarifs hiver » de novembre à février, une promotion de printemps sur une autre plage, un message réservé aux utilisateurs connectés. Le contenu reste au même endroit, l’adresse ne change pas, et il n’y a rien à dupliquer.
32.5 — Rôles, Notes, Mode sans échec et Contrôle de version
Le Gestionnaire de rôle
Elementor › Éditeur › Gestionnaire de rôle (Role Manager) règle ce que chaque rôle WordPress peut faire dans l’éditeur. Pour chaque rôle (Éditeur, Auteur, Contributeur…), on peut interdire tout accès à l’éditeur ; Elementor Pro ajoute l’option d’un accès au contenu uniquement : la personne modifie les textes et les images, mais ni la mise en page ni le style. Pour la salariée de la Menuiserie Roche, c’est le réglage idéal, complété par les Composants du chapitre 22.
Les Notes
Les Notes (plans Advanced Solo et supérieurs) permettent de laisser un commentaire à un endroit précis de la page, comme un papillon collé sur une maquette. Le raccourci Shift+C ou le menu du logo Elementor active l’outil ; on clique sur la toile, on écrit, on peut mentionner un autre utilisateur et marquer la note comme résolue une fois traitée. Les notes ne sont jamais visibles des visiteurs. Entre un formateur et un stagiaire, ou entre un prestataire et son client, elles évitent des dizaines d’e-mails du type « le bouton, là, en bas à gauche ».
Le Mode sans échec
Quand l’éditeur refuse de se charger, la cause est presque toujours un conflit avec une autre extension ou avec le thème. Le Mode sans échec (Safe Mode), accessible depuis Elementor › Éditeur › Outils et proposé automatiquement par Elementor quand le chargement échoue, ouvre l’éditeur avec Elementor seul et le thème Hello, en désactivant temporairement le reste — pour vous uniquement, sans toucher au site vu par les visiteurs. Si l’éditeur fonctionne en mode sans échec, le coupable est ailleurs : on réactive les extensions une par une pour le trouver (chapitre 36). N’oubliez pas de quitter le mode sans échec ensuite.
Le Contrôle de version
Une mise à jour d’Elementor peut, rarement, casser un site. Le Contrôle de version (Version Control), dans le même menu Outils, propose de réinstaller une version précédente (Rollback Version) : on choisit le numéro dans la liste, on confirme, et le site revient à l’état d’avant la mise à jour en attendant un correctif. La même fonction existe pour Elementor Pro. Elle ne dispense pas d’une sauvegarde avant chaque mise à jour, et l’option « testeur de versions bêta » du même écran n’a rien à faire sur un site en production.
Piège classique
Réparer un site cassé en ajoutant du code. Devant un style qui « disparaît », le premier réflexe n’est pas d’écrire du CSS mais de lancer Regénérer CSS et données dans les Outils, puis de vider le cache (chapitre 36). Le CSS personnalisé posé « pour compenser » un bogue survit au bogue, se cumule avec les corrections suivantes, et finit par rendre le site inexplicable. On ne code que pour ajouter, jamais pour rafistoler.
Exercice 32.1 — Trois fonctions avancées sur le site Roche 25 min
Objectif : employer le CSS global, le Code personnalisé et une condition d’affichage sur des besoins réels, en gardant une trace de chaque ajout.
- CSS global. Dans Réglages du site › CSS personnalisé, écrivez, avec un commentaire daté, la règle
.texte-max { max-width: 65ch; margin-left: auto; margin-right: auto; }. Appliquez la classe « texte-max » à l’Éditeur de texte des mentions légales via son onglet Avancé › champ des classes CSS. Sur les Paragraphes atomiques, utilisez plutôt la classe globale « texte-max » du chapitre 18, ouselector { max-width: 65ch; }dans leur CSS personnalisé ; comparez les deux approches. - Code personnalisé. Créez un extrait « Statistiques Matomo », emplacement
<head>, condition Tout le site, et collez-y le script fourni par votre instance Matomo (ou un commentaire HTML de substitution si vous n’en avez pas encore). Notez dans le nom de l’extrait la date et l’auteur. - Condition d’affichage. Réalisez le bandeau « Fermeture annuelle » de la section 32.4 sur l’en-tête, avec une plage de dates. Pour le tester hors saison, réglez provisoirement la plage sur la semaine en cours, vérifiez l’aperçu, puis remettez les vraies dates.
- Trace. Ajoutez une Note sur la page d’accueil (ou, sans Pro, une ligne dans votre document de suivi) listant les trois ajouts : où, pourquoi, depuis quand.
- Réversibilité. Ouvrez Elementor › Éditeur › Outils, repérez le Contrôle de version et le Mode sans échec sans rien activer, et notez la version d’Elementor installée : c’est celle vers laquelle vous reviendriez en cas de problème.
Résultat attendu : une règle CSS globale commentée et appliquée, un extrait de Code personnalisé nommé et daté, un bandeau saisonnier qui n’apparaît que pendant la fermeture, et une trace écrite de ces trois ajouts.
À retenir
- Le CSS personnalisé existe par élément (mot-clé
selector) et pour tout le site (Réglages du site) ; il passe par-dessus le panneau et se réserve à ce que le panneau ne propose pas. - Dix lignes suffisent : largeur de lecture, coupure des mots, équilibre des titres, images qui remplissent leur boîte, ancres sous l’en-tête collant, texte long en colonnes.
- Le Code personnalisé place scripts et balises dans l’en-tête ou le pied du document, avec priorité et conditions ; un script de mesure engage la conformité du site.
- Les Conditions d’affichage montrent ou retirent un élément selon la date, l’utilisateur ou le contenu : un bandeau saisonnier sans page en double.
- Le Gestionnaire de rôle et les Notes organisent le travail à plusieurs ; le Mode sans échec et le Contrôle de version rendent une panne réversible.
- On code pour ajouter, jamais pour rafistoler : chaque ajout est commenté, daté et noté quelque part.

