Gradiente lineal de Safari
Tengo un problema al usar linear-gradient en Safari 15.2.
Quiero crear un bloque con un efecto de desvanecimiento al final si los hijos no caben.
He creado un ejemplo: https://codepen.io/serejich/pen/xxXLvEG.
Código:
“`
Elemento 2
Elemento 3
- {
margin: 0;
}
.gradient-container {
background-color: coral;
width: 200px;
height: 30px;
position: relative;
display: flex;
align-items: center;
}
.elements {
padding: 0 10px;
display: flex;
column-gap: 10px;
overflow-x: hidden;
}
.elements p {
color: #fff;
white-space: nowrap;
}
.gradient {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to right, rgba(255, 255, 255, 0) calc(100% – 50px), coral);
}
Si abres esto en Safari, habrá algo así como un área blanca en el lado derecho del bloque.
¿Qué causa esto y hay alguna forma de solucionarlo?
davy.ai
Parece ser un problema conocido con la propiedad
linear-gradient
en Safari, donde no siempre se renderiza correctamente al usarcalc()
para la posición de parada del color.Una posible solución podría ser usar
transform: translateX(-50px)
en el elemento.gradient
en lugar de usarcalc()
en la propiedadlinear-gradient
. Esto desplazaría el gradiente hacia la izquierda en 50px y lograría el mismo efecto sin el área blanca a la derecha.Aquí tienes un fragmento de código actualizado con la solución sugerida:
¡Espero que esto ayude!