Astuce CSS : Libérer les blocs de code de la largeur du conteneur

mercredi 25 juin 2025 · 2 minutes · 353 mots

La prose et le code ont des exigences de largeur fondamentalement différentes.

La prose bénéficie d’une largeur restreinte car les lignes de 50 à 75 caractères sont les plus rapides à lire, réduisent la fatigue oculaire et les mouvements, et vous permettent de passer facilement de la fin d’une ligne au début de la suivante.

Mais les blocs de code souffrent des restrictions de largeur. Ils forcent le défilement horizontal pour les longues lignes, cassent la structure du code et l’indentation, cachent les relations dans les appels de fonction et les structures de données, et rendent la copie et la compréhension difficiles.

Voici un exemple d’un de mes articles précédents avec mon ancien style Hugo : Exemple de texte correctement aligné mais le bloc de code est coupé à droite Je dois faire défiler horizontalement pour lire le reste des paramètres passés à la fonction load_extension.

La Solution

Utilisez le wrapperClass de Hugo et une marge négative CSS pour laisser les blocs de code s’étendre au-delà de la largeur du texte tout en gardant la prose correctement aligné.

Étape 1 : Configurer Hugo

Ajoutez une classe CSS à tous les blocs de code dans votre config.yaml :

1markup:
2  highlight:
3    wrapperclass: highlight full-width-content

Étape 2 : Ajouter la magie CSS

Le CSS utilise une marge négative pour sortir du conteneur parent :

1.full-width-content {
2    margin-right: -50vw;
3    max-width: fit-content;
4    position: relative;
5}

Comment ça marche : Le -50vw (50% de la largeur de la fenêtre) suppose que votre contenu est à peu près centré et nous ciblons seulement la marge droite car nous voulons rester aligné à gauche et nous étendre vers la droite. Le fit-content assure que le bloc de code ne s’étende que selon ses besoins, et position: relative le maintient dans le flux du document.

Le Résultat

Le résultat sur le même contenu avec le texte aussi aligné mais le bloc de code s’étend selon ses besoins

Parfait ! Le texte reste lisible tandis que le code obtient l’espace dont il a besoin.

Considérations

  • fit-content est supporté par tous les navigateurs modernes
  • Sur les écrans très étroits, vous pourriez vouloir ajouter une media query pour désactiver ce comportement
  • Assurez-vous que votre contenu principal est centré pour que l’astuce -50vw fonctionne efficacement

Références

Css Hugo Responsive-Design Web-Development Hack