Cristalab

Sombras con CSS

Por: dave73 + 26.04.2006

Bueno, he revisado varios tutoriales acerca de sombras con CSS y ninguno me ha resultado sencillo. Es decir, soy principiante en esto del CSS y veía muchos atributos raros y esas cosas. Ninguno me resultaba fácil de asimilar.
Ya cansado, decidí hacerlo a mi manera. Es muy simple y no está nada mal. Sé que puede mejorarse y mucho. La idea es que puedan hacerlo los principiantes como yo. Vamos al grano:

La idea es tener un recuadro con texto y la sombra del mismo. Para ello, utilicé tres etiquetas DIV.



Como verán, dentro del contenedor tenemos la div del texto y la sombra. La div del texto se encuentra dentro de la div sombra. Ahora, al darle márgenes negativos al texto, se logra "desfazarlo" y lograr el efecto.

Veamos el código:

Código :

<style type="text/css">
body{
   margin:0;
   padding:0;
   text-align:center;
   font-family:"Trebuchet MS", Arial, Verdana;
   font-size:12px;
}
/* Aquí modificamos el Contenedor*/
#cont{
   text-align:center;
   padding: 5px;
   margin: 0 auto;
   width:500px;
}
/* Ahora la sombra */
#sombra{
   margin:10px;
   background:#CCCCCC; /* Color de la sombra */
   border: solid 1px #CCCCCC; /* Color del borde */
   width: 500px;
}
/* Veamos el texto */
#text{
   border:solid 1px #CCCCCC;
   margin:-10px 2px 2px -10px; /* Aqui están los famosos márgenes negativos*/
   padding:2px;
   background:#FFFFFF; /* Le damos un color de fondo */
}
</style>


¿Cómo lo aplicamos?

Código :

<div id="cont">
   <div id="sombra">
      <div id="text">Aquí colocas tu texto.</div>
   </div>
</div>


El resultado.



¿Y que hay de las imágenes?

Pues, es lo mismo. Sólo cambio un atributo en el contenedor:

Código :

#cont{
   text-align:center;
   padding: 5px;
   margin: 0 auto;
   /* width:500px; */ float: left;
}


Ahora lo aplicamos:

Código :

<div id="cont">
   <div id="sombra">
      <div id="text"><img src="imagen.jpg" /></div>
   </div>
</div>


El resultado.



¿Qué les parece? Muy Feliz

Etiquetas css

Comentarios | Enviar un comentario
Bonito, respecto a esta tecnica hay que ver que hay diversos modos de aplicar sombras, con imagenes resulta algo más "artistico" pero esta de colores planos sirve para muchos casos.
¡Gracias por el tuto!
Por: xflash
Hola....

La verdad que el efecto que produce es muy bueno...asi puedes olvidarte de photoshop para los marcos, simplemente con CSS, MUY BUENO Guiño

UN SALUDO
Por: Hector_blog
Muy bueno Dave, sólo que me gustaría saber como has conseguido el efecto de la espuma sobre las olas... Jejejeje Guiño

Tomaré nota.
Por: Silvestre_
Muchas gracias por el tip le hare algunas modificaciones al codigo y si me sale una cosa mejor con gusto se los pasare. Guiño
Por: Jack Royce
Creo que es una buena manera de mejorar los estilos en cascada (CSS) pero si quieres algo mejor definitivamente los programade edición de fotos entre otros, por un buen tiempo seguiran haciendo nuestras sobras, la pregunta es ¿podrá los CSS algun día manejar fectos similares?, seria del Carajo no......
Por: Pool_blog
Muy práctico y sencillo efecto dave73. Buen aporte. Felicitaciones miau
Por: XKlibur
Dave, veo que te haz metido bastante en el CSS. Me gusta mucho esta idea, usar solo divs con colores via CSS para imitar la sombra, en difinitiva usar un PNG de 32Bit no tiene comparación, pero para lo que quieres yo lo veo muy bien.

PD: Creo que el titulo podria ser cambiado a Sombras -solo- con CSS o algo similar.

Bien hecho dave!
Por: NEO_JP
Esta mas o menos
Por: Luque Eddy_blog
esta de lujo me gusto sirve para salir de apuros
Por: jeickelement_blog
Oye, muy bueno el tuto, de veras que es muy útil, sencillo por demás.

Me gustaría saber si de pronto lo tienes en zip, o los archivos del ejemplo.
Por: ChickenWings_blog

ChickenWings_blog :

Oye, muy bueno el tuto, de veras que es muy útil, sencillo por demás.

Me gustaría saber si de pronto lo tienes en zip, o los archivos del ejemplo.


Mmm...nop. No es necesario, sólo debes adjuntar el código CSS en el mismo html mediante la etiqueta script o puedes llamarlo externamente mediante la etiqueta link. Eso queda a tu parecer. Pero es un ejemplo muy simple y la verdad que no hay archivos disponibles. De ultima, si eres principiante en CSS, puedes revisar los turoriales de Clab. De ahí aprendí yo miau

Un saludo y me contenta saber que les sirve.
Por: dave73
muy bueno dave *10 dias despues Riendo
Por: Mariux
No me funciona bien con el IE!!

P.D. Soy nuevo en esto de css
Por: Amado_blog
con MIE, creo que no funciona. asi que usa otros...
..y hablando del tema,
sabeís esto se puede redondear, y nunca mejor dicho, con otro pequeño aporte.
Tal vez ya lo sabreis, pero nunca está de más:
incluyendo estos parámetros en el estilo (style) se redondea las esquinas.

Código :

 moz-border-radius: 1em;

Esto genera las cuatro esquinas redondeadas, aquí sería por cada esquina:

Código :


moz-border-radius:1em 1em 1em 1em;

ó bien:

moz-border-radius-toright:1em;
moz-border-radius-topleft:1em;
moz-border-radius-bottomright:1em;
moz-border-radius-bottomleft:1em;


Un saludito
Por: Silvestre_
PD:Ah!! se me olvidaba este efecto tampoco se ve con MIE. Sobran comentarios. Je jejeje.
Por: Silvestre_
A mi me gusta el efecto,, puro css
Por: wilssonly
creo que aca hay uno casi igual http://www.alistapart.com/articles/cssdropshadows/
Por: elguru_blog
Me gusto... y la verdad si que te saca de apuros... no soy muy habil con photoshop
Por: Jaivo_blog
Hola, me parece algo muy interesante lograr este efecto con CSS, muchas Gracias por el tutorial.

Saludos desde Cuba
Por: paluh
Pero Esa imagen no podriamos colocarla en el CSS como Background ?
Por: Equix_blog
bien bien, una imagen vale mas que mil palabras!

felicidades
Por: 1001010_blog
Esta interesante, pero tengo un problemilla jeje, quiero colocar esta sombra desfasada en todo el marco de la pagina, pero al intentarlo, se mueve todo el marco un caos completo.
Por: emacdesign_blog
Muy bueno...estaba buscando algo asi de fácil.

Salu2
Por: JD_blog
esta ineresante, pero quisiera saber como cambio un menu, a otra posicion.
Por: cary_blog
Awful...
Por: frenadoll
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.