Date : 8 juillet 2026 Site : les-baladins.ch (WordPress, GeneratePress + GenerateBlocks, thème enfant generatepress_child)
Problème initial
Sur mobile, l’image de fond du header (top6-1.png) apparaissait partiellement coupée derrière le logo. Le rendu était correct sur desktop et tablette.
Diagnostic
L’image de fond n’est définie ni dans un élément GeneratePress Hooks (“TOP HOOK”, “TOP en-tête” — tous deux vides), ni dans un bloc Gutenberg, mais dans Personnaliser > CSS additionnel :
.inside-header {
background-image: url(http://les-baladins.ch/wp-content/uploads/top6-1.png);
min-height: 200px;
}
Faits établis : – top6-1.png fait 1020 × 200 px (ratio 5,1:1), soit exactement la largeur max de .grid-container (1020px). – Aucun background-size / background-position / background-repeat n’était défini → l’image s’affichait à sa taille native, ancrée en haut-gauche. – Sur desktop (≥1020px de large), la boîte fait pile la taille de l’image : rendu correct. – En dessous de 1020px (tablette, mobile), la boîte restait fixée à 200px de haut mais devenait plus étroite que l’image (1020px) : seule la tranche gauche de l’image restait visible, le reste coupé.
Un second problème est apparu en cours de correction : sur mobile, le logo se retrouvait centré au lieu de rester à gauche. Cause identifiée dans le CSS du thème (generatepress/assets/css/main.min.css) :
.inside-header { display:flex; align-items:center; } /* actif à toutes les tailles */
@media (max-width:768px) {
.inside-header { flex-direction:column; text-align:center; } /* actif seulement <768px */
}
En layout row (desktop/tablette), align-items:center centre verticalement (axe transversal) et justify-content contrôle l’horizontal. En dessous de 768px, le thème bascule .inside-header en flex-direction:column : les axes pivotent, align-items:center (toujours actif, sans condition) prend alors le contrôle de l’axe horizontal et centre le logo, tandis que justify-content:flex-start n’a plus d’effet horizontal à cette taille.
Correctif appliqué
CSS additionnel actuellement en place (remplace l’ancien bloc) :
.inside-header {
background-image: url(https://les-baladins.ch/wp-content/uploads/top6-1.png);
background-size: cover;
background-position: center;
background-repeat: no-repeat;
aspect-ratio: 1020 / 200;
height: auto;
min-height: 0;
justify-content: flex-start;
}
#logo img {
height: clamp(40px, 12.35vw, 126px);
width: auto;
}
@media (max-width: 768px) {
.inside-header {
align-items: flex-start;
text-align: left;
}
}
Ce que fait chaque partie :
aspect-ratio: 1020 / 200+height: auto+min-height: 0: la hauteur de.inside-headervaut toujours largeur/5,1, donc exactement les proportions de l’image, à toute largeur d’écran.background-size: covern’a alors jamais besoin de rogner puisque la boîte a déjà le bon ratio → bannière entièrement visible sur desktop, tablette et mobile. Le rendu desktop (≥1020px) est inchangé (200px de haut, comme avant).#logo img { height: clamp(40px, 12.35vw, 126px); width: auto; }: le logo (364×126px natif) rétrécit proportionnellement à la bannière au lieu de rester figé à sa taille native, ce qui évite qu’il déborde d’une bande devenue plus fine sur petit écran. 126/1020 = 12,35 %, donc la même logique d’échelle que la bannière ; leclamp()plafonne entre 40px (lisibilité minimale) et 126px (taille d’origine, jamais dépassée).justify-content: flex-start: verrouille l’alignement du logo à gauche en layoutrow(desktop/tablette), indépendamment du réglage “Alignement de l’en-tête” du Customizer.- Media query
max-width: 768px: neutralise spécifiquementalign-items:centerettext-align:centerforcés par le thème à ce breakpoint, pour que le logo reste à gauche même quand.inside-headerpasse en colonne sur mobile.
Point de vigilance signalé mais non résolu par ce correctif : sur des très petits mobiles (<460px environ), la bande de bannière devient fine et il n’est pas exclu que le logo déborde légèrement sur le fond rouge uni — pas de coupure, juste un débordement visuel possible. À surveiller si le rendu sur très petit écran doit être vérifié précisément.
Accès technique mis en place
Le CSS additionnel du Customizer n’est pas exposé par l’API REST de WordPress par défaut (le post type custom_css n’a pas show_in_rest). Un mu-plugin a été créé pour permettre un accès en lecture/écriture :
Fichier : les-baladins-custom-css-api.php, déposé dans wp-content/mu-plugins/.
Endpoints (authentification par mot de passe d’application, compte avec la capacité edit_theme_options) :
GET /wp-json/les-baladins/v1/custom-css→{ "css": "...contenu actuel..." }POST /wp-json/les-baladins/v1/custom-cssavec{ "css": "..." }→ écrit le nouveau contenu
Cet accès reste actif pour les futures interventions sur le CSS additionnel du site, sans copier-coller manuel.
Vérification
Le CSS additionnel live a été relu via cet endpoint le 8 juillet 2026 et correspond exactement au bloc ci-dessus — le correctif est bien en production.