Home > Article > Web Front-end > How to Dynamically Extend Aside Background Color to Fill Content Area?
Force Aside Element to Dynamically Fill Content Area with Background Color
In HTML, a common layout involves an aside element alongside a main content area within a scrolling overflow. However, the aside element's background color typically truncates at the visible area, leaving a blank space below the fold. This article addresses the challenge of extending the aside background color dynamically to match the total content height.
Problem Statement
Consider the following HTML structure:
<div id="body"> <main>...</main> <aside>...</aside> </div>
The #body element has an overflow set to auto, enabling scrolling of the main content. The aside element should have its background color stretch vertically from the top to the bottom of the total content, even though the rendered height is limited to the visible area.
Limitations
JavaScript Solution
Unfortunately, this cannot be achieved solely through CSS. The overflow property affects content, not the background. Therefore, a JavaScript solution is necessary. One approach involves:
function setAsideHeight() { const bodyHeight = document.getElementById("body").offsetHeight; const aside = document.querySelector("aside"); aside.style.height = bodyHeight + "px"; }
window.addEventListener("load", setAsideHeight); window.addEventListener("resize", setAsideHeight);
This script dynamically adjusts the aside height to match the total content height, ensuring that its background color extends to the bottom of the scrolling area.
The above is the detailed content of How to Dynamically Extend Aside Background Color to Fill Content Area?. For more information, please follow other related articles on the PHP Chinese website!