Acerca de este problema HTML
Cuando el analizador CSS encuentra un valor de background-image que no puede entender, marca un error de análisis. Esto no necesariamente significa que el navegador no renderizará tus estilos — los navegadores suelen ser más permisivos que los validadores — pero sí indica que tu CSS no se ajusta a la especificación. CSS inválido puede llevar a renderizado impredecible en diferentes navegadores, hace tu código más difícil de mantener, y puede causar que los estilos fallen silenciosamente en ciertos entornos.
Las causas comunes de este error incluyen:
-
Falta la función
url()alrededor de rutas de imágenes. - URLs sin comillas o con comillas incorrectas que contienen caracteres especiales como espacios o paréntesis.
-
Errores tipográficos en nombres de funciones CSS (ej.,
lnear-gradienten lugar delinear-gradient). -
Usar valores con prefijos de proveedor (ej.,
-webkit-linear-gradient) en contextos donde el validador espera CSS estándar. - Sintaxis de gradiente inválida, como paradas de color faltantes, unidades de ángulo incorrectas, o argumentos de función mal formados.
-
Usar propiedades personalizadas CSS (variables) o sintaxis más nueva en un atributo
style, que el analizador CSS del validador puede no soportar completamente.
Para corregir esto, revisa la declaración exacta de background-image a la que el validador está apuntando. Asegúrate de que todas las URLs estén envueltas en url(), todos los gradientes usen nombres de función correctos y argumentos válidos, y todas las cadenas estén correctamente entrecomilladas y cerradas.
Ejemplos
Función url() faltante
Una ruta de archivo sin el envoltorio url() es inválida:
<!-- ❌ Error de análisis: falta url() -->
<div style="background-image: /images/hero.jpg;"></div>
Envuelve la ruta en url():
<!-- ✅ Correcto -->
<div style="background-image: url('/images/hero.jpg');"></div>
Error tipográfico en nombre de función de gradiente
<!-- ❌ Error de análisis: función mal escrita -->
<div style="background-image: lnear-gradient(to right, red, blue);"></div>
<!-- ✅ Correcto -->
<div style="background-image: linear-gradient(to right, red, blue);"></div>
Sintaxis de gradiente inválida
Paradas de color faltantes o usar notación de ángulo incorrecta causa errores de análisis:
<!-- ❌ Error de análisis: unidad de ángulo inválida y falta segunda parada de color -->
<div style="background-image: linear-gradient(45, red);"></div>
Los ángulos necesitan una unidad (como deg), y los gradientes necesitan al menos dos paradas de color:
<!-- ✅ Correcto -->
<div style="background-image: linear-gradient(45deg, red, blue);"></div>
Caracteres especiales sin escapar en URL
Rutas de archivos con espacios o paréntesis necesitan estar entrecomilladas:
<!-- ❌ Error de análisis: URL sin comillas con espacios -->
<div style="background-image: url(/images/my hero image.jpg);"></div>
<!-- ✅ Correcto: URL entrecomillada -->
<div style="background-image: url('/images/my hero image.jpg');"></div>
Valores con prefijos de proveedor
Usar sintaxis con prefijos no estándar puede disparar un error de análisis en el validador:
<!-- ❌ Error de análisis: prefijo de proveedor no reconocido por el validador -->
<div style="background-image: -webkit-linear-gradient(left, red, blue);"></div>
Usa la sintaxis estándar sin prefijos en su lugar. Los navegadores modernos ya no necesitan el prefijo para gradientes:
<!-- ✅ Correcto: sintaxis estándar -->
<div style="background-image: linear-gradient(to right, red, blue);"></div>
Múltiples fondos con separador incorrecto
Múltiples imágenes de fondo deben estar separadas por comas, no por puntos y comas o espacios:
<!-- ❌ Error de análisis: separador incorrecto -->
<div style="background-image: url('a.png') url('b.png');"></div>
<!-- ✅ Correcto: separado por comas -->
<div style="background-image: url('a.png'), url('b.png');"></div>
Mover estilos a una hoja de estilos externa
Si el validador tiene problemas con valores complejos de background-image en atributos style en línea, considera mover el CSS a un bloque <style> o hoja de estilos externa, donde el analizador CSS del validador los maneja de forma más confiable:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Background Image Example</title>
<style>
.hero {
background-image: url('hero.jpg');
background-size: cover;
}
</style>
</head>
<body>
<div class="hero"></div>
</body>
</html>
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.