Mostrando entradas con la etiqueta TML5 y CSS3 - Autor: Christophe Aubry. Mostrar todas las entradas
Mostrando entradas con la etiqueta TML5 y CSS3 - Autor: Christophe Aubry. Mostrar todas las entradas

jueves, 8 de mayo de 2014

Ejemplo de sombra para una página



Este es un truco muy sencillo que le permitirá aportar profundidad a sus páginas web: http://playground.genelocklin.com/depth/

La técnica consiste en aplicar la pseudo-clase :before a body.

El estilo CSS:

body:before {
/* Contenido vacío*/
content: "";
/* Posición*/
position: fixed;
z-index: 100;
top: -10px;
left: -10px;
/* Ancho y alto */
width: 110%;
height: 10px;
/* Sombra */
-webkit-box-shadow: 0px 0px 10px rgba(0,0,0,.8);
-moz-box-shadow: 0px 0px 10px rgba(0,0,0,.8);
-ms-box-shadow: 0px 0px 10px rgba(0,0,0,.8);
-o-box-shadow: 0px 0px 10px rgba(0,0,0,.8);
box-shadow: 0px 0px 10px rgba(0,0,0,.8);
}

No hay ningún contenido: content: "", pero para el navegador, sí que hay un elemento, aunque esté vacío. Por lo tanto, no hay nada que mostrar.

Ese contenido vacío está colado en una posición fija, para que no sea desplazado cuando se use la barra de desplazamiento. Se ha colocado a -10 píxeles, que será el tamaño del difuminado.

position: fixed;
z-index: 100;
top: -10px;
left: -10px;

El ancho es mayor que el de la página y la altura es de 10 píxeles.

width: 110%;
height: 10px;

La sombra se ha colocado a 0 píxeles horizontal y verticalmente, el tamaño del difuminado es de 10 píxeles y se ha usado el color negro, con una ligera transparencia:

box-shadow: 0px 10px rgba(0,0,0,.8);

Así se visualizará sobre el fondo blanco de la página:


Espero haber ayudado en algo. Hasta la próxima oportunidad!



Ejemplo de una tabla con bordes redondeados



1. Funcionalidad

Vamos a estudiar cómo se ha creado la tabla con bordes redondeados que propone Red Team Design: http://www.red-team-design.com/practical-css3-tables-with-rounded-corners



2. La estructura de la tabla

La tabla (que utiliza una clase llamada .bordered) está estructurada de una manera muy clásica con <table>, <thead>, <tr>, <th> y <td>.

<table class="bordered">
<thead>
<tr>
<th>#</th>
<th>IMDB Top 10 Movies</th>
<th>Year</th>
</tr>
</thead>
<tr>
<td>1</td>
<td>The Shawshank Redemption</td>
<td>1994</td>
</tr>
<tr>
<td>2</td>
<td>The Godfather</td>
<td>1972</td>
</tr>
...
</table>

Así se visualizará inicialmente:



3. El diseño de la tabla

La tabla no deberá presentar espacios vacíos entre las celdas con borde:

table {
border-spacing: 0;
width: 500px;
}

La clase .bordered permite aplicar bordes redondeados y una ligera sombra:

.bordered {
border: solid #ccc 1px;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 20px;
-webkit-box-shadow: 0 3px 3px #ccc;
-moz-box-shadow: 0 3px 3px #ccc;
box-shadow: 0 3px 3px #ccc;
}

El resultado visual:



4. Las celdas de la tabla

Todas las celdas de la tabla (<th> y <td>) tienen un borde en los lados izquierdo y superior:

.bordered td, .bordered th {
border-left: 1px solid #ccc;
border-top: 1px solid #ccc;
padding: 10px;
text-align: left;
}


5. Las celdas del encabezado

Las celdas del encabezado <th> de la primera línea presentan un degradado de fondo y una sombra, al igual que el texto:

.bordered th {
background-color: #dce9f9;
background-image: -webkit-gradient(linear, left top, left
bottom, from(#ebf3fc), to(#dce9f9));
background-image: -webkit-linear-gradient(top, #ebf3fc, #dce9f9);
background-image: -moz-linear-gradient(top, #ebf3fc, #dce9f9);
background-image: -ms-linear-gradient(top, #ebf3fc, #dce9f9);
background-image: -o-linear-gradient(top, #ebf3fc, #dce9f9);
background-image: linear-gradient(top, #ebf3fc, #dce9f9);
-webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
-moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
border-top: none;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
}


El resultado visual:


El degradado de la primera línea aún no aparece redondeado y quedan restos del borde en el lado izquierdo.


6. Celdas redondeadas

Para la primera línea de la tabla, no queremos que aparezca el borde de la primera celda <td> y la primera celda <th>.

.bordered td:first-child, .bordered th:first-child {
border-left: none;
}


Ahora queremos que aparezcan redondeadas las primeras y las últimas celdas de la primera y la última línea. Utilizaremos las pseudo-clases :first-child y :last-child para las celdas del encabezado <th>, las líneas <tr> y las celdas <td>.

.bordered th:first-child {
-moz-border-radius: 20px 0 0 0;
-webkit-border-radius: 20px 0 0 0;
border-radius: 20px 0 0 0;
}
.bordered th:last-child {
-moz-border-radius: 0 20px 0 0;
-webkit-border-radius: 0 20px 0 0;
border-radius: 0 20px 0 0;
}
.bordered tr:last-child td:first-child {
-moz-border-radius: 0 0 0 20px;
-webkit-border-radius: 0 0 0 20px;
border-radius: 0 0 0 20px;
}
.bordered tr:last-child td:last-child {
-moz-border-radius: 0 0 20px 0;
-webkit-border-radius: 0 0 20px 0;
border-radius: 0 0 20px 0;
}




7. La activación de las líneas

Al pasar el ratón sobre las líneas, cambiará el color del fondo. Esta propiedad se consigue con la pseudo-clase :hover.

.bordered tr:hover {
background: #fbf8e9;
}

Este sería el resultado:



Espero haber ayudado en algo. Hasta la próxima oportunidad!

DESCARGAR PUBLICACIÓN











  

martes, 6 de mayo de 2014

Los generadores CSS3 en línea



1. Funcionalidad

Ya hemos visto algunos generadores en línea para las nuevas propiedades de CSS3. Voy a presentarle ahora algunas herramientas "todo en uno", en las que encontrará prácticamente todas las propiedades que necesite.


2. WestCIV

Este sitio web (http://www.westciv.com/tools/box-properties/index.html) permite trabajar, en una única interfaz, con: 
  • degradados lineales y radiales, 
  • texto (sombra y columnas), 
  • cajas (color de fondo, bordes redondeados, columnas y sombras), 
  • transformaciones (que veremos en un próximo capítulo).



3. CSS 3.0 Maker

Este sitio web (http://www.css3maker.com/index.html), con una interfaz muy oscura, le permite trabajar con: 
  • bordes redondeados, 
  • degradados, 
  • transformaciones, animaciones y transiciones (que veremos en un próximo capítulo), 
  • el color del fondo en rgba(), 
  • la sombra del texto, 
  • la sombra de las cajas, 
  • la rotación del texto, 
  • la gestión de las fuentes incorporadas con @font-face.



4. CSS3 Generator

Este sitio web (http://www.css3.me/), con una interfaz bien diseñada, permite trabajar con: 
  • bordes, 
  • sombras de cajas,
  • degradados, 
  • transparencia.



5. CSS3 Playground

Este sitio web (http://css3.mikeplate.com/) con una interfaz minimalista permite trabajar con: 
  • bordes redondeados, 
  • sombras de cajas, 
  • sombras de texto, 
  • transformaciones, 
  • columnas de cajas, 
  • degradados, 
  • bordes y subrayado (outline), 
  • color y transparencia del fondo, 
  • texto (fuente, tamaño, alineación...).



6. CSS3 Generator

Este sitio web (http://css3generator.com/) permite trabajar con: 
  • bordes redondeados, 
  • sombras de cajas, 
  • sombras de texto, 
  • el color del fondo en rgba(), 
  • las fuentes con la regla @font-face, 
  • las columnas de las cajas, 
  • la redimensión de las cajas (resize), 
  • el modo de cálculo del tamaño de las cajas (box-sizing), 
  • el subrayado (outline), 
  • transiciones y transformaciones (que veremos en un próximo capítulo).



7. Layer Style

Este sitio web (http://layerstyles.org/builder.html), con una interfaz sobria pero desbordante de interactividad (podríamos creer que nos encontramos en Photoshop para Mac), nos permite trabajar con: 
  • sombras de cajas, externas e internas, 
  • degradados y transparencia, 
  • bordes, 
  • bordes redondeados.


Espero haber ayudado en algo. Hasta la próxima oportunidad!




Otras propiedades del fondo



1. Los navegadores

Las nuevas propiedades (background-origin, background-clip y background-size) del fondo (http://www.w3.org/TR/css3-background/#background) son sólo parcialmente reconocidas por los navegadores. Por lo tanto, y como es habitual, resulta conveniente comprobarlas con y sin prefijo.



2. La posición inicial de una imagen

La propiedad background-origin permite definir la posición inicial de una imagen de fondo de una caja. Esta propiedad admite tres valores: 
  • padding-box: la imagen se situará en el límite del margen de la caja. Se trata del valor por defecto. 
  • border-box: la imagen se situará en el límite del borde de la caja. 
  • content-box: la imagen se situará en el límite del contenido de la caja.

Por el momento deberá usar los prefijos propietarios y los valores propietarios (border, padding y content).

Veamos un ejemplo:

#posicion-inicial {
width: 250px;
height: 150px;
border: 10px dotted; #333;
padding: 10px;
background: url("suricata.jpg")no-repeat;
-webkit-background-origin: border;
-moz-background-origin: border;
background-clip: border-box;
}

Así se visualizará con el valor border-box:


Así se visualizará con el valor padding-box:


Así se visualizará con el valor content-box:


Fíjese que la imagen aparece recortada.


3. Recortar una imagen

La propiedad background-clip permite recortar una imagen de fondo. Esta propiedad utiliza los mismo valores de la propiedad background-origin, con las mismas especificaciones.

Veamos un ejemplo con un fondo de color:

#recortar {
width: 250px;
height: 150px;
border: 10px dotted; #333;
padding: 10px;
background-color: lightblue;
-webkit-background-clip: border;
-moz-background-clip: border;
background-clip: border-box;
}

Así se visualizará con el valor border-box. Se puede ver el fondo azul en el borde.


Así se visualizará con el valor padding-box. El fondo azul se aplica al contenido y al espaciado (padding), pero no al borde.


Así se visualizará con la valor content-box. El fondo azul se aplica solamente al contenido (width).



4. El tamaño del fondo

La propiedad background-size permite definir el tamaño de la imagen de fondo en función del elemento que la contenga. Los valores posibles son: 
  • Un porcentaje del tamaño del elemento "contenedor": un único valor indicará el mismo tamaño para el lado horizontal y el vertical. Dos valores indicarán el tamaño horizontal, con el primer valor, y el tamaño vertical, con el segundo. 
  • Un valor: un único valor indicará el tamaño horizontal, y el tamaño vertical se calculará proporcionalmente. 
  • Dos valores indicarán el tamaño horizontal, con el primer valor, y el tamaño vertical, con el segundo. 
  • La palabra clave cover permite redimensionar la imagen todo lo posible, contain redimensiona conservando las proporciones.

En el ejemplo se ha reducido la imagen al 50% del tamaño de la caja que la contiene:

#tamaño {
width: 150px;
height: 100px;
border: 1px solid; #333;
background: url("suricata.jpg") no-repeat;
background-size: 50%;
}

Así se verá en la pantalla:


En este ejemplo, el tamaño es del 100% para las dos dimensiones, la imagen aparece deformada:

#tamaño{
width: 150px;
height: 50px;
border: 1px solid; #333;
background: url("suricata.jpg") no-repeat;
background-size: 100% 100%;
}

Así se verá en la pantalla:


En este ejemplo, la imagen tiene un tamaño fijo, no proporcional:

#tamaño {
width: 150px;
height: 50px;
border: 1px solid; #333;
background: url("suricata.jpg") no-repeat;
background-size: 100px 30px;
}

Así se verá en la pantalla:


En este ejemplo, el valor cover permite redimensionar proporcionalmente la imagen en un sentido. En este caso se trata de una redimensión horizontal. La imagen aparece cortada verticalmente.

#tamaño{
width: 150px;
height: 50px;
border: 1px solid; #333;
background: url("suricata.jpg") no-repeat;
background-size: cover;
}

Así se verá en la pantalla:


En este último ejemplo, el valor contain permite redimensionar proporcionalmente la imagen en un sentido que permita su publicación sin que aparezca cortada. En este caso se trata de una redimensión vertical. De este modo queda espacio libre horizontalmente.

#tamaño{
width: 150px;
height: 50px;
border: 1px solid; #333;
background: url("suricata.jpg") no-repeat;
background-size: contain;
}

Así se verá en la pantalla:



Espero haber ayudado en algo. Hasta la próxima oportunidad!




Los fondos múltiples



1. Funcionalidad

Con CSS2.1 solamente podemos aplicar una imagen como fondo de un elemento. Con CSS3 es posible aplicar varias imágenes, lo que nos ofrece posibilidades muy interesantes (http://www.w3.org/TR/css3-background/#layering).


2. Un ejemplo sencillo

Vamos a usar la propiedad background. La diferencia es simple: las distintas imágenes de fondo estarán separadas mediante una coma. En el ejemplo, he insertado un salto de línea tras cada imagen, para facilitar la lectura del código. Cada imagen corresponde a una cifra.

#imagenesMultiples {
position: absolute;
top: 10px;
left: 10px;
width: 150px;
height: 80px;
border: 1px solid #333;
background: url("uno.png") top left no-repeat,
url("dos.png") top right no-repeat,
url("tres.png") bottom left no-repeat,
url("cuatro.png") bottom right no-repeat;
}

Y el resultado visual:


Esta forma abreviada de la propiedad background es un "condensado" del uso de las propiedades: 
  • background-image: ruta de acceso, URL de la imagen. 
  • background-position: posición de la imagen indicada con palabras clave o con una unidad. 
  • background-repeat: repetición de la imagen.

Este sería el equivalente en sintaxis "larga":

#imagenesMultiples2 {
position: absolute;
top: 10px;
left: 200px;
width: 150px;
height: 80px;
border: 1px solid #333;
background-image:url("uno.png"),
url("dos.png"),
url("tres.png"),
url("cuatro.png");
background-position: top left,
top right,
bottom left,
bottom right;
background-repeat: no-repeat;
}

Preste mucha atención, el orden de declaración de las imágenes indica su orden de aparición, independientemente de la posición. Analicemos la siguiente sintaxis para ilustrar ese orden de declaración y de visualización:

#imagenesMultiples3 {
position: absolute;
top: 10px;
left: 380px;
width: 150px;
height: 80px;
border: 1px solid #333;
background: url("uno.png") top left no-repeat,
url("tigre.jpg") top right no-repeat,
url("tres.png") bottom left no-repeat,
url("cuatro.png") bottom right no-repeat;
}

En el ejemplo, la fotografía del tigre se ha declarado en segundo lugar, tras la imagen del número 1. Esa fotografía (que tiene las mismas dimensiones que la caja) va a ocultar las imágenes de las cifras 3 y 4.



Espero haber ayudado en algo. Hasta la próxima oportunidad!





Los degradados



1. Situación actual

El módulo CSS3 para las imágenes y los degradados se encuentra todavía en fase de Candidate Recommendation a 17 de abril de 2012: http://www.w3.org/TR/css3-images/

El reconocimiento de los degradados por parte de los navegadores es bastante bueno, pero resulta conveniente utilizar prefijos en algunos de ellos, sobre todo en Safari 6.


Observe que la tabla muestra que Firefox 23 reconoce los degradados, pero tras llevar a cabo una serie de test he podido comprobar que su grado de reconocimiento no es tan alto. Por tanto, le aconsejo que pruebe los degradados con Firefox, con y sin prefijo.


2. Los degradados de Mozilla Firefox

Se trata de la propiedad -moz-linear-gradient() la que permite realizar degradados lineales. Esta propiedad admite diversos argumentos. 
  • El primer argumento es la posición inicial, que puede tomar una palabra clave como valor (top, right, bottom o left), o bien un valor en píxeles. Si usted indica top left, el punto de partida será el borde superior izquierdo, equivalente a 0 0. Dispone de un segundo valor facultativo, se trata del ángulo del degradado expresado en grados (deg), en gradiantes (grads) o en radianes (rad). Ejemplo: 23deg. 
  • El segundo argumento es el color de partida, que puede ir seguido de la posición de partida expresada en %, en una escala de 0 a 100%. 
  • El tercer argumento es el color de llegada, que puede ir seguido de la posición de llegada expresada en %, en una escala de 0 a 100%.


Veamos un ejemplo (fíjese que en el ejemplo he insertado un salto de línea tras cada argumento para facilitar la lectura):

#degradado1 {
position: absolute;
top: 10px;
left: 10px;
width: 200px;
height: 90px;
background: -moz-linear-gradient(
top left -23deg,
rgb(30,87,153) 13%,
rgb(237,230,40) 88%
);

  • el degradado comienza en la parte superior izquierda: top left. 
  • con un ángulo de -23 grados: -23deg. 
  • el primer color es un azul que ocupa el 13% de la totalidad del degradado: rgb(30,87,153) 13%. 
  • el color final es un amarillo que ocupa el 88 % de la totalidad del degradado: rgb(237,230,40) 88%).

Así se visualiza en Firefox:


Veamos ahora un degradado con cuatro colores:

#degradado2 {
position: absolute;
top: 130px;
left: 10px;
width: 200px;
height: 90px;
background: -moz-linear-gradient(top,
rgb(30,87,153) 0%,
rgb(237,230,40) 30%,
rgb(31,186,77) 55%,
rgb(239,40,143) 100%);
}

Este sería el resultado visual:


Los degradados radiales siguen el mismo principio, con la propiedad-moz-linear-gradient(). Dispone además de un nuevo argumento para indicar la forma del degradado radial: circle o ellipse.

Veamos un ejemplo:

background: -moz-radial-gradient(100px 45px, ellipse, rgb(30,87,153), rgb(237,230,40));

Y la visualización en pantalla:



3. Les degradados para WebKit

Recordemos que los navegadores Safari y Chrome comparten el mismo motor de renderizado: webkit.

Esta sería la sintaxis para un degradado lineal:

background: -webkit-gradient(linear, left top, left bottom,
color-stop(0%,rgb(30,87,153)), color-stop(100%,rgb(237,230,40))); 
  • -webkit-gradient(): indica que se trata de un degradado. 
  • linear: un degradado lineal. 
  • left top: el punto de partida. 
  • left bottom: el punto de llegada. 
  • color-stop(0%,rgb(30,87,153)): primer color que comenzará a 0% del degradado y su descripción en rgb (azul). 
  • color-stop(100%,rgb(237,230,40)): primer color que comenzará a 0% del degradado y su descripción en rgb (amarillo).

Y el resultado visual:



4. Los degradados según el W3C

Los degradados del W3C (http://www.w3.org/TR/css3-images/#gradients) utilizan una sintaxis "oficial" que los navegadores aún no reconocen.

Ejemplo de un degradado lineal:

linear-gradient (to top right, red, white, blue)

Esto significa que queremos crear un degradado que vaya hacia arriba y hacia la derecha (to top right), con un primer color rojo (red), un segundo color blanco (white) y un último color azul (blue).

Este sería el resultado esperado:



5. Los generadores en línea

Como ha podido constatar, la situación actual es complicada. Existen multitud de sintaxis, una para cada navegador. Si desea crear degradados rápidamente, es preferible que use un generador en línea. Existen muchos. Veamos algunos de ellos.

WESTCIV (http://www.westciv.com/tools/gradients/) pone a su disposición una interfaz simple en la que podrá generar degradados optimizados para WebKit y Firefox.


El sitio web Display-inline (http://www.display-inline.fr/projects/css-gradient/) presenta una interfaz muy completa.


A continuación podrá seleccionar la compatibilidad con los navegadores y se generará un código CSS bastante completo.


Y en último lugar, probablemente el generador preferido de los grafistas, Ultimate CSS Gradient Generator (http://www.colorzilla.com/gradient-editor/) que reutiliza la interfaz de Adobe Photoshop. ¡Una auténtica maravilla!



¡Y existen muchos más!


Espero haber ayudado en algo. Hasta la próxima oportunidad!




lunes, 5 de mayo de 2014

Las sombras



1. Situación actual

El módulo del CSS3 para el fondo y los bordes (http://www.w3.org/TR/css3-background) se encuentra, a 24 de julio de 2012, en fase de Candidate Recommendation, así que ya está casi terminado.

Actualmente, todos los navegadores reconocen la propiedad CSS3 box-shadow.



2. Crear una sombra

Se trata de la propiedad box-shadow la que permite aplicar una sombra a un elemento, a una caja <div>. Los atributos son: 
  • la distancia horizontal de la sombra. 
  • la distancia vertical de la sombra. 
  • el valor de difuminado de la sombra. Este atribulo es facultativo, si no lo especifica se usará el valor 0. 
  • el valor de extensión de la sombra. Este valor permite situar el "punto medio" del degradado, es decir, el punto a partir del cual la sombra comienza a desvanecerse. Un valor positivo alargará la sombra, un valor negativo la comprimirá. Este atribulo es facultativo, si no lo especifica se usará el valor 0. 
  • el color de la sombra. 
  • la posición de la sombra (inset, hacia el interior, o outset, hacia el exterior, que es el valor predeterminado).



Veamos un ejemplo sencillo:

#miCaja{
position: absolute;
top: 10px;
left: 10px;
width: 300px;
height: 100px;
background-color: lightyellow;
box-shadow: 10px 15px 8px 2px rgb(12,34,56);
}

Esta sombra presenta un desplazamiento horizontal de 10 píxeles, un desplazamiento vertical de 15 píxeles, un difuminado de 8 píxeles, una extensión de 2 píxeles y es de color gris oscuro.

Y el resultado visual:



3. Varios ejemplos de sombras

La primera sombra no presenta ni difuminado, ni extensión.

#miCaja4 {
...
box-shadow: 10px 15px 0 0 grey;
}

En este ejemplo podría haber omitido perfectamente los parámetros de difuminado y de extensión. He preferido dejarlos para visualizar mejor todos los parámetros.

En el siguiente ejemplo hemos desplazado y difuminado la sombra, pero no se le ha aplicado ninguna extensión:

#miCaja4 {
...
box-shadow: 10px 10px 5px 0 grey;
}


Apliquemos ahora los mismos parámetros, pero con una extensión positiva: la sombra se agrandará en ese número de píxeles.

#miCaja4 {
...
box-shadow: 10px 10px 5px 5px grey;
}


Y si aplicamos los mismos parámetros, pero con una extensión negativa, la sombra se reducirá de ese número de píxeles.

#miCaja4 {
...
box-shadow: 10px 10px 5px -5px grey;
}


Un último ejemplo, sin desplazamiento, solamente con difuminado. De este modo la sombra aparecerá en los cuatro lados de la caja.

#miCaja4 {
...
box-shadow: 0 0 20px 0 grey;
}


4. Aplicar varias sombras

Podemos aplicar varias sombras a un mismo elemento, separándolas mediante una coma. Tenga cuidado, el orden indicado es importante. La primera sombra indicada se colocará en primer lugar, y así sucesivamente. Comience por la sombra que se encuentre a menor distancia, de lo contrario quedará oculta detrás de las demás sombras que presenten una distancia mayor.

#miCaja2 {
position: absolute;
top: 10px;
left: 10px;
width: 300px;
height: 100px;
background-color: lightyellow;
box-shadow: 5px 5px 3px 2px #ccc,
10px 15px 8px 2px rgb(12,34,56);
}

Y el resultado visual:


Veamos una última caja con dos sombras desplazadas, una de las cuales hacia el interior de la caja (inset):

#miCaja2 {
position: absolute;
top: 150px;
left: 10px;
width: 300px;
height: 100px;
background-color: lightyellow;
box-shadow: 5px 3px 2px #ccc inset,
10px 15px 8px 2px rgb(12,34,56);
}

Y el resultado visual:



5. Los generadores en línea

Existen multitud de generadores de sombras en línea.

CSS3Gen (http://css3gen.com/box-shadow/) pone a su disposición una interfaz simple en la que podrá usar un ángulo para indicar el desplazamiento horizontal y vertical.


CSS3 Generator (http://css3generator.com/) también presenta una interfaz simple, pero un poco más completa.


El sitio web WestCIV propone un generador muy completo para trabajar con las distintas propiedades de las cajas (http://westciv.com/tools/box-properties/index.html). La ventaja de esta interfaz es que le permite insertar varias sombras.

En la zona Box Shadow, el botón Add Shadow le permite añadir las sombras. En el ejemplo, he creado tres sombras (cuidado, la captura de pantalla es un montaje, porque la ventana original era demasiado grande).



Espero haber ayudado en algo. Hasta la próxima oportunidad!



       
free counters

Páginas vistas en total según Google