Maison > interface Web > tutoriel CSS > Comment étendre dynamiquement la couleur d'arrière-plan pour remplir la zone de contenu ?

Comment étendre dynamiquement la couleur d'arrière-plan pour remplir la zone de contenu ?

DDD
Libérer: 2024-10-23 13:54:01
original
298 Les gens l'ont consulté

How to Dynamically Extend Aside Background Color to Fill Content Area?

Forcer l'élément de côté pour remplir dynamiquement la zone de contenu avec la couleur d'arrière-plan

En HTML, une mise en page courante implique un élément de côté à côté d'une zone de contenu principale dans un débordement de défilement. Cependant, la couleur d'arrière-plan de l'élément latéral est généralement tronquée au niveau de la zone visible, laissant un espace vide sous le pli. Cet article aborde le défi consistant à étendre dynamiquement la couleur d'arrière-plan latérale pour qu'elle corresponde à la hauteur totale du contenu.

Énoncé du problème

Considérez la structure HTML suivante :

<div id="body">
  <main>...</main>
  <aside>...</aside>
</div>
Copier après la connexion

L'élément #body a un débordement réglé sur auto, permettant le défilement du contenu principal. La couleur d'arrière-plan de l'élément latéral doit s'étendre verticalement du haut vers le bas du contenu total, même si la hauteur rendue est limitée à la zone visible.

Limitations

  • Aucun élément supplémentaire ne peut être ajouté.
  • L'élément latéral doit défiler avec le contenu principal.
  • Sa couleur d'arrière-plan doit s'étendre sur toute la hauteur du contenu sous le pli.
  • L'élément side ne peut pas avoir son débordement défini sur auto.

Solution JavaScript

Malheureusement, cela ne peut pas être réalisé uniquement via CSS. La propriété overflow affecte le contenu, pas l'arrière-plan. Une solution JavaScript est donc nécessaire. Une approche consiste à :

  1. Créer une fonction pour définir la hauteur de côté :
function setAsideHeight() {
  const bodyHeight = document.getElementById("body").offsetHeight;
  const aside = document.querySelector("aside");
  aside.style.height = bodyHeight + "px";
}
Copier après la connexion
  1. Appeler la fonction lorsque la fenêtre se charge et se redimensionne :
window.addEventListener("load", setAsideHeight);
window.addEventListener("resize", setAsideHeight);
Copier après la connexion

Ce script ajuste dynamiquement la hauteur latérale pour correspondre à la hauteur totale du contenu, garantissant que sa couleur d'arrière-plan s'étend jusqu'au bas de la zone de défilement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal