Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
2
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
CSS3 es la tercera versión y la más actual de las hojas de estilo. Es una modificación
de la versión anterior CSS2.1, así que sería conveniente que la persona que quiera
seguir este manual conozca previamente la versión 2 de CSS.
CSS3 ha intentado dar solución a muchos de esos detalles que algunas veces se
volvían tan complejos como poner los bordes redondeados a una caja y una simple
sombra.
Nuevas propiedades
3
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
-moz-border-top-colors
-moz-border-right-colors
-moz-border-bottom-colors
-moz-border-left-colors
En cada uno de los atributos se define un color, pudiendo especificar una lista de
colores separado por espacios que se aplicará a cada una de las partes del borde de
dentro a fuera.
Para definir más de un color, el borde tiene que tener un grosor en píxeles como
mínimo equivalente al número de colores, es decir, si quieres dos colores tendremos
un borde de dos píxeles, si queremos 3, de tres píxeles y así sucesivamente.
Lo mejor será ver un ejemplo para saber cómo funciona y cuál es el resultado.
Ejemplo
#caja1{
width: 300px;
height: 200px;
border-style: solid;
border-width: 10px;
-moz-border-top-colors: #ffcc99 #ffbb88 #ffaa77 #ff9966 #ff8855 #ff7744 #ff6633 #ff5522
#ff4411 #ff3300;
-moz-border-right-colors: #ffcc99 #ffbb88 #ffaa77 #ff9966 #ff8855 #ff7744 #ff6633 #ff5522
#ff4411 #ff3300;
-moz-border-bottom-colors: #ffcc99 #ffbb88 #ffaa77 #ff9966 #ff8855 #ff7744 #ff6633 #ff5522
#ff4411 #ff3300;
-moz-border-left-colors: #ffcc99 #ffbb88 #ffaa77 #ff9966 #ff8855 #ff7744 #ff6633 #ff5522
#ff4411#ff3300;
}
4
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
Resultado
5
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
3. Bordes redondeados
border-radius: 5px;
Con lo que le daríamos 5 píxeles de radio a la curva de todas las esquinas del
elemento en cuestión.
Con este atributo nos ahorramos los enrevesados recursos que teníamos que usar en
CSS2 para poner bordes redondeados a las cajas usando imágenes y que en la mayoría
de los casos no daba un resultado del todo elegante.
Ejemplo
#caja1{
width: 300px;
height: 200px;
border-style: solid;
border-width: 10px;
border-radius: 5px 70px 20px 60px;
background: #A775A3;
}
Resultado
6
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
Las distintas imágenes de fondo se tienen que escribir separadas por comas.
Las imágenes van colocadas de modo que la primera aparece sobre las siguientes.
Ejemplo
#caja1{
width: 500px;
height: 500px;
border-style: solid;
border-width: 10px;
background: url(css3.png) center no-repeat,
url(html5.png) bottom right no-repeat,
url(jquery.png) top left no-repeat;
}
Resultado
7
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
5. Colores RGBA
Como conocemos, tanto en HTML como en las versiones anteriores de CSS los colores
se expresan en valores RGB.
CSS3, además de los tres colores primarios Rojo, Verde y Azul, ha añadido cuarto
parámetro que es el Canal Álfa para darle transparencia al elemento coloreado.
Ejemplo
#caja2{
width: 200px;
height: 250px;
position: relative;
top: 100px;
left: 100px;
border-style: solid;
border-width: 10px;
border-color: RGBA(255, 200, 0, 0.8);
background-color: RGBA(0, 250, 52, 0.5);
}
Resultado
Se le puede aplicar color RGBA a todo lo que se pueda colorear con CSS3, así que
puede ser un muy buen recurso para sombras, texto, etc.
8
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
word-wrap: normal;
El valor normal hace que las palabras no se corten siendo este el valor por defecto
word-wrap: break-word;
El valor break-word hace que la palabra se corte para que quepa en el ancho del
contenedor que hayamos definido
Ejemplo
#caja1{
width: 100px;
height: 200px;
border-style: solid;
border-width: 1px;
background: #CCC;
word-wrap: break-word;
}
Resultado
9
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
7. Texto multicolumna
En algunos medios encontramos el texto dividido en columnas para facilitar su
lectura, muy especialmente en periódicos. La nueva versión de CSS también
incorpora esta opción.
Estas etiquetas, a día de hoy (mayo de 2012), no la soporta tal cual ningún
navegador, aunque aparecen en la especificación de la W3C. Sin embargo Safari,
Google Chrome y Firefox ya la implementa con la condición de que usemos el prefijo
–webkit- para Chome y Safari o el prefijo –moz- para Firefox. Así que si queremos
poner un texto en columnas, de momento lo tendremos que hacer como veremos en
el ejemplo y teniendo en cuenta en los usuarios de Internet Explorer no podrán verlo
igual.
Ejemplo
#caja1 .texto{
-webkit-column-count: 4;
-webkit-column-width: 10em;
-webkit-column-gap: 20px;
-webkit-column-rule: 1px solid #888;
-moz-column-count: 4;
-moz-column-width: 10em;
-moz-column-gap: 20px;
-moz-column-rule: 1px solid #888;
text-align: justify;
}
Resultado
10
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
8. Sombras (box-shadow)
Hasta ahora, para conseguir poner una sombra a un elemento web teníamos que
recurrir a elementos externos tales como imágenes, javascript, etc. Con el atributo
box-shadow, además de facilitarnos la taréa de poner sombra a los elementos,
agiliza la carga de nuestras webs, ya que no tenemos que recurrir a imágenes que
tardan más en cargar.
Difuminado: El tercer valor indica cuanto queremos que esté de difuminado el borde
de la sombra. Si el valor fuera 0, la sombra aparecería totalmente definida. En el
ejemplo anterior, la sombra tendrá 3px de difuminado.
Ejemplo
#caja1 {
width: 200px;
height: 200px;
border: solid 3px #000;
box-shadow: 5px -9px 3px RGBA(85, 85, 85, 0.8);
}
11
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
Resultado
Una utilidad muy buena de las sombras es el crear el efecto de movilidad. Es decir,
que las cosas “salgan” de la pantalla en determinados caso, por ejemplo, al pasar el
ratón por encima.
Para ello pondremos la sombra a más distancia del elemento, tanto en horizontal
como en vertical y le añadiremos el difuminado.
Ejemplo
#caja1 {
width: 200px;
height: 200px;
border: solid 3px #000;
background-color: #DDD;
box-shadow: 3px 3px 3px RGBA(85, 85, 85, 0.8);
}
#caja1:hover{
box-shadow: 10px 10px 10px RGBA(85, 85, 85, 0.8);
}
Resultado
Normal :Hover
12
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
9. Resplandor interior
Existe una propiedad de las sombras que no la he nombrado antes pero no porque se
me haya escapado, sino porque a mi parecer no es una sombra sino algo así como un
resplandor interior (o al menos así se llama el efecto en photoshop que hace esto
mismo).
Para dar efecto de resplandor, le tendremos que dar colores claros y a ser posible un
fondo oscuro.
Ejemplo
#caja1 {
width: 200px;
height: 200px;
border: solid 3px #000;
background-color: #333;
box-shadow: inset 10px 10px 15px RGBA(200, 200, 200, 0.8);
}
Resultado
13
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
En CSS3, además han añadido la opción de definir el origen de las coordenadas sobre
el que se va a colocar la imagen de fondo para que sea el borde del elemento, su
padding o su contenido. Los posibles valores son:
Border-box;
Significa que el origen de las coordenadas de las imágenes será el borde del
elemento.
Padding-box;
Content-box;
Sirve para que el origen de las coordenadas sea el lugar donde empieza el contenido
del elemento, es decir, sin incluir sus posibles bordes y padding.
Resultado
14
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
Las propiedades que puede aceptar estos atributos son las mismas que las del
atributo overflow, es decir, Visible, Hidden, Scroll, Auto, No-display (aunque este
comportamiento no esté implementado a día de hoy en los navegadores) y No-
content.
Resultado
Overflow-x Overflow-y
15
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
La W3C ha querido subsanar ese problema con regla @font-face, que nos permite
definir en nuestra hoja de estilo cualquier fuente independientemente de si el
usuario la tiene instalada o no. Lo único que nos tiene que preocupar es saber si la
fuente está o no en nuestro servidor.
@font-face{
font-family:<nombre_fuente>;
src: <source>[,<source>]*;
[font-weight:<weigth>];
[font-style:<style>];
}
Con esto definimos el tipo de letra y su ubicación en nuestro servidor. Si queremos
usar este tipo de fuente tan solo tenemos que llamarla con Font-family como lo
hacíamos antiguamente.
Ejemplo
@font-face{
Font-family: Vivaldi;
Font-style: normal;
Font-weight: normal;
Src: url(VIVALDI.eot);
}
#caja1 {
Font-family: Vivaldi;
}
Resultado
16
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
Veamos un ejemplo muy completo para que nos quede más claro.
Ejemplo
#caja1 h1{
font-family: 'Cuprum', serif;
color: #fff;
text-shadow: 0px 1px 0px #999, 0px 2px 0px #888, 0px 3px 0px #777, 0px 4px 0px #666, 0px
5px 0px #555, 0px 6px 0px #444, 0px 7px 0px #333, 0px 8px 7px #001135;
}
En este ejemplo, a la letra le ponemos color blanco. Como primera sombra le damos
desplazamiento horizontal 0px, vertical 1px, difuminado 0px y color #999. La
segunda sombra tendrá un desplazamiento horizontal de 0px, vertical de 2px,
difuminado de 0px y color #777. Así sucesivamente.
Resultado
Para conseguir más efecto del mismo tipo tenemos una herramienta en internet muy
fácil y que genera un código que podremos usar en nuestra web.
http://www.wordpressthemeshock.com/css-text-shadow/
17
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
14. Animaciones
14.1 Introducción
Una de las características más impresionantes de CSS3 es la posibilidad de crear
animaciones de los elementos de página. Todo esto nos abre infinitas posibilidades
que antes solo estaban disponibles para programadores javascript o diseñadores con
flash.
Algunas de las opciones de las animaciones pueden ser las rotaciones de los
elementos, ampliaciones y reducciones de tamaño, desplazamiento, etc.
Pero no esto no queda ahí, también han implementado una serie de interacciones
con el usuario que solo se pueden hacer con CSS3. Además, todo ello sin tener que
programar, lo que resulta mucho más agradable y al alcance de desarrolladores
menos técnicos.
Ojo!: A día de hoy (mayo de 2012), los navegadores no aceptan como deberían las
animaciones así que a todos los atributos y claves hay que añadirles el prefijo para el
navegador en concreto (-moz-, -webkit-, -o-).
Para este manual los pondremos según indica la especificación, pero tendremos que
tener eso en cuenta a la hora de usarlos.
Fotograma clave
Son los valores iniciales y finales que tiene que tener una animación CSS.
@keyframes 'nombre_fotograma_clave' {
0% { left: 100px; }
40% { left: 150px; }
60% { left: 75px; }
100% { left: 100px; }
}
Esta animación estaría compuesta de 4 fotogramas clave. El porcentaje es en el
momento en el que va a producirse ese fotograma y los px son la longitud donde se
colocaría el fotograma dentro del DIV en el que se encaje.
También podemos definir un fotograma clave indicándole, en vez de los tantos por
ciento, from para indicarle donde empieza la animación y to para indicarle donde
termina.
18
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
#caja1 {
animation-name: 'nombre-fotograma-clave';
animation-duration: 45s;
animation-iteration-count: 10;
}
Además de las propiedades que hemos usado, en el ejemplo anterior tenemos otra
serie de atributos que se pueden aplicar a la animación y que se colocan en el DIV.
Estas propiedades serían las siguientes:
19
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
A diferencia del atributo animation, este nos permite crear efectos de aumento o
reducción de la caja, nos cambia el color, nos permite rotarla, etc.
Al igual que al atributo animation, a este también hay que ponerle los prefijos para
los distintos navegadores ya que aun no se han adaptado a los estándares de la W3C.
No está reñido con el atributo visto anteriormente, es decir, los dos se pueden usar
por igual en una caja dándonos infinitas posibilidades. Además, cuando usamos el
transition con el selector ::hover nos dará un efecto de realidad que nunca antes
habríamos conseguido con CSS.
Las transiciones también se pueden resumir en una sola propiedad que tendría la
siguiente sintaxis:
Evidentemente solo puedo poner el código, ya que no puedo poner una animación en
el documento. Si queremos ver algunos posibles efectos podemos entrar en la web
http://ksesocss.blogspot.com/2012/03/transitions-css3-guia-de-aproximacion-y.html
20
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
Ejemplo
#caja1 {
transition:box-shadow, transform 2s;
-webkit-transition:-webkit-box-shadow, -webkit-transform 2s, background 2s;
-moz-transition:-moz-box-shadow, -moz-transform 2s, background 2s;
transform: scale(1,1);
-webkit-transform: scale(1,1);
-moz-transform: scale(1,1);
}
#caja1:hover {
transition:transform 3s, box-shadow 3s;
-webkit-transition:-webkit-transform 3s, background 3s, -webkit-box-shadow 3s;
-moz-transition:-moz-transform 3s, background 3s, -moz-box-shadow 3s;
box-shadow: 10px 10px 10px #555;
transform: scale(1.3,1.3);
-webkit-transform: scale(1.3,1.3);
-moz-transform: scale(1.3,1.3);
z-index:9999;
}
Este ejemplo nos mostrará la #caja1 a escala 1,1 (su tamaño normal) y cuando
pongamos el ratón encima aumentará su tamaño un 30% y le aparecerá una sombra
que se desplazará 10px a la derecha y 10px hacia abajo. Esto nos dará el efecto de
que la caja se aproxima a nosotros.
21
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
15. Selectores
La nueva versión de CSS3 incluye todos los selectores de CSS2 y añade otra decena de
selectores, pseudo-clases y pseudo-elementos que podremos encontrar ampliadas en
la recomendación de la W3C http://www.w3.org/TR/2011/REC-css3-selectors-
20110929/
Selectores de atributos
Selector de hermanos
Ejemplo
h1 + h2 { ... } /* selector adyacente */
h1 ~ h2 { ... } /* selector general de hermanos */
<h1>...</h1>
<h2>...</h2>
<p>...</p>
<div>
<h2>...</h2>
</div>
<h2>...</h2>
El primer selector (h1 + h2) sólo selecciona el primer elemento h2, mientras que el
segundo selector (h1 ~ h2) seleccionará todos los h2 menos el segundo, ya que no es
hermano.
22
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
Pseudo-elementos
Nuevo pseudo-elemento
Pseudo-clases
Veamos ahora un ejemplo más completo y que nos puede resultar muy útil.
Ejemplo
/* Las siguientes reglas alternan cuatro estilos diferentes para los párrafos */
p:nth-child(4n+1) { ... }
p:nth-child(4n+2) { ... }
p:nth-child(4n+3) { ... }
p:nth-child(4n+4) { ... }
23
Jose Manuel Guisado Hormigo
1º DAW - IES Julio Verne
Pseudo-elemento :not
Este pseudo-elemento nos permitirá seleccionar todos los elementos que NO cumplen
con la condición del selector. Por ejemplo
16. Documentación
Este manual se ha basado principalmente en la información recogida en:
24
Jose Manuel Guisado Hormigo