fix(CLS): Prevenir layout shifts de AdSense y navbar móvil
- Reservar min-height para contenedores AdSense (250px en contenido) - Navbar collapse posición absoluta en móvil para no empujar contenido - Hero section min-height 120px PageSpeed CLS issues addressed: - body CLS 1.000 (desktop) → AdSense inyectaba height:auto - navbar-collapse CLS 0.245 (móvil) → menú empujaba contenido - hero-section CLS 0.033 → sin altura reservada 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -867,3 +867,100 @@ table.table th {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Site main ya tiene flex-grow: 1 arriba - no forzar min-height */
|
/* Site main ya tiene flex-grow: 1 arriba - no forzar min-height */
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
CLS PREVENTION - AdSense Ads
|
||||||
|
PageSpeed Issue: body CLS 1.000 en desktop, 0.226 en móvil
|
||||||
|
Causa: AdSense inyecta style="height: auto !important" al main-content
|
||||||
|
Solución: Reservar espacio mínimo para ads antes de que se carguen
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/* Reservar espacio para contenedores de AdSense */
|
||||||
|
ins.adsbygoogle {
|
||||||
|
display: block;
|
||||||
|
min-height: 100px; /* Altura mínima mientras carga */
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ads en contenido (entre párrafos) - más espacio */
|
||||||
|
.post-content ins.adsbygoogle,
|
||||||
|
article ins.adsbygoogle {
|
||||||
|
min-height: 250px;
|
||||||
|
margin: 1.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ads en sidebar - menos espacio */
|
||||||
|
.sidebar ins.adsbygoogle,
|
||||||
|
.col-lg-3 ins.adsbygoogle {
|
||||||
|
min-height: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Prevenir que AdSense manipule el main-content */
|
||||||
|
#main-content,
|
||||||
|
main.site-main {
|
||||||
|
height: auto;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
CLS PREVENTION - Navbar Collapse (Mobile)
|
||||||
|
PageSpeed Issue: navbar-collapse CLS 0.245 en móvil
|
||||||
|
Causa: Menú sin dimensiones reservadas al colapsar
|
||||||
|
Solución: Reservar espacio para el menú colapsado
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/* En desktop: navbar-collapse visible con altura auto */
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.navbar-collapse {
|
||||||
|
display: flex !important;
|
||||||
|
flex-basis: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* En móvil: cuando está colapsado, no debe afectar layout */
|
||||||
|
@media (max-width: 991.98px) {
|
||||||
|
.navbar-collapse {
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
background: #1e3a5f; /* Navy dark - mismo que navbar */
|
||||||
|
z-index: 1000;
|
||||||
|
padding: 1rem;
|
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-collapse:not(.show) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Menú vertical en móvil */
|
||||||
|
.navbar-collapse .navbar-nav {
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-collapse .nav-item {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-collapse .nav-link {
|
||||||
|
padding: 0.75rem 1rem;
|
||||||
|
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
CLS PREVENTION - Hero Section
|
||||||
|
PageSpeed Issue: hero-section CLS 0.033 en móvil
|
||||||
|
Solución: Altura mínima para hero
|
||||||
|
========================================================================== */
|
||||||
|
.hero-section {
|
||||||
|
min-height: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 767.98px) {
|
||||||
|
.hero-section {
|
||||||
|
min-height: 100px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user