¿Es posible de alguna manera tener solo una sombra de cuadro insertada en un lado de un div? Tenga en cuenta que estoy hablando de una sombra de caja insertada aquí, no de la sombra de caja exterior normal.
Por ejemplo, en el siguiente JSFiddle, verá que la sombra insertada aparece en los 4 lados, en diversos grados.
¿Cómo hago para que se muestre SOLO en la parte superior? ¿O como mucho SOLO arriba y abajo?
JSFiddle: http://jsfiddle.net/ahmadka/KFrun/
.box {
-webkit-box-shadow: inset 0px 5px 10px 1px #000000;
box-shadow: inset 0px 5px 10px 1px #000000;
}
.text {
padding: 20px;
}
<div class="box">
<div class="text">
Lorem ipsum ....
</div>
</div>
Respuestas:
Esto es lo que buscas. Tiene ejemplos para cada lado que quieras con una sombra.
Consulte el fragmento para ver más ejemplos:
Mostrar fragmento de código
fuente
El truco es un segundo
.box-inner
interior, que es más ancho que el original.box
, ybox-shadow
se aplica a eso.Luego, agregue más relleno para
.text
compensar el ancho adicional.Así es como se ve la lógica:
Y así es como se hace en CSS:
Use el ancho máximo para
.inner-box
no hacer.box
que se ensanche yoverflow
para asegurarse de que el resto esté recortado:110% es más ancho que el padre, que es 100% en el contexto de un niño (debería ser el mismo cuando el padre
.box
tiene un ancho fijo, por ejemplo). Los márgenes negativos compensan el ancho y hacen que el elemento esté centrado (en lugar de que solo se oculte la parte derecha):Y agregue un poco de relleno en el eje X para compensar el ancho
.inner-box
:Aquí hay un violín que funciona.
Si inspecciona el Fiddle, verá:
fuente
div
para ocultar la sombra ... jsfiddle.net/KFrun/19Bastante tarde, pero aquí se puede encontrar una respuesta duplicada que no requiere alterar el relleno o agregar divs adicionales: Tiene un problema con el recuadro de sombra Solo en la parte inferior . Dice: "Use un valor negativo para la cuarta longitud que define la distancia de propagación. Esto a menudo se pasa por alto, pero es compatible con todos los navegadores principales".
Del violín del contestador :
fuente
Esto se acerca un poco.
fuente
pruébalo, quizás útil ...
arriba
CSS
porque tienes una sombra de caja en la parte inferior.puedes rojo más aquí
fuente
Puede que esto no sea exactamente lo que está buscando, pero puede crear un efecto muy similar si lo usa
rgba
en combinación conlinear-gradient
:Esto crea un gradiente lineal de negro con 50% de opacidad (
rgba(0,0,0,.5)
) a transparente (rgba(0,0,0,0)
) que comienza a ser competente 30% transparente desde la parte superior. Puede jugar con esos valores para crear el efecto deseado. Puede tenerlo en un lado diferente agregando un valor de grado (linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 30%)
) o cambiando los colores. Si desea sombras realmente complejas como diferentes ángulos en diferentes lados, incluso podría comenzar a aplicar capaslinear-gradient
.Aquí hay un fragmento para verlo en acción:
fuente
¿Insertar caja de sombra solo en la parte superior?
fuente