Ejemplos de Practica CSS3 PDF
Ejemplos de Practica CSS3 PDF
Ejemplos de Practica CSS3 PDF
CSS3
La especificación de CSS3 viene con interesantes novedades que permitirán hacer webs
más elaboradas y más dinámicas, con mayor separación entre estilos y contenidos. Dará
soporte a muchas necesidades de las webs actuales, sin tener que recurrir a trucos de
diseñadores o lenguajes de programación.
18
HTML5 y CSS3
<h1>Título</h1>
<h2>Subtítulo adyacente</h2>
<h1>Título</h1>
<p> párrafo de separación</p>
<h2>Subtítulo con selector general de hermanos</h2>
19
input[type="text"] {
background: #eee;
}
tr:nth-child(even) {
20
HTML5 y CSS3
background: silver;
}
tr:nth-child(odd) {
background: white;
}
p:lang(en) {
color: gray;
font-style: italic;
}
Formularios
Además también se han añadido nuevas pseudo-clases que podemos usar en los
formularios para aplicar un formato según el estado de un campo. Estas propiedades van
en concordancia con los nuevos campos introducidos en HTML5 (ver la sección de
formularios de HTML5). estas son:
• :valid - campo válido (dependerá del tipo de campo).
• :invalid - campo inválido (dependerá del tipo de campo).
• :required - campo requerido (marcado con el atributo “required”).
• :optional - campo opcional (campo no marcado con el atributo “required”).
• :checked - elemento marcado (o checked, válido para radio button o checkbox).
• :in-range - valor dentro del rango indicado (para campos numéricos o de rango).
• :out-of-range - valor fuera de rango (para campos numéricos o de rango).
• :read-only - campo de solo lectura.
• :read-write - campo de lectura / escritura.
Algunos ejemplos de uso:
<head>
<style>
#form1 input:valid { background:lightgreen; }
#form1 input:invalid { border-color:red; }
#form1 specialInput input:valid { background:green; }
</style>
</head>
<body>
<form id="form1" name="form1" method="post" action="formaction.php">
<p>Nombre:
<input type="text" name="nombre" id="nombre" required/>
<p/>
<p>Usuario:
<specialInput>
<input type="text" name="usuario" id="usuario" required/>
</specialInput>
<p/>
</form>
</body>
input:focus:required:invalid {
21
background: pink url(ico_validation.png) 379px 3px no-repeat;
}
input:required:valid {
background-color: #fff; background-position: 379px -61px;
}
2.3. Color
2.4. Bordes
En CSS3 se han incorporado cuatro nuevas propiedades para dar formato a los bordes de
una caja. Estas propiedades no están todavía plenamente soportadas en todos los
navegadores, por lo que para que funcione en la mayoría de ellos tendremos que usar
también las propiedades nativas del navegador (simplemente añadiremos los prefijos
-webkit- y -moz-). Las nuevas propiedades son:
• border-radius: permite crear cajas con esquinas redondeadas. Hasta ahora esto solo
se podía hacer insertando imágenes que simularan esta característica. Ahora lo
podemos hacer de una forma mucho más sencilla:
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
Además también podemos indicar cada uno de los bordes por separado:
-moz-border-radius-topleft: 10px;
-moz-border-radius-topright: 20px;
22
HTML5 y CSS3
-moz-border-radius-bottomright: 30px;
-moz-border-radius-bottomleft: 40px;
-webkit-border-radius: 10px 20px 30px 40px;
border-radius: 10px 20px 30px 40px;
• border-image: este nuevo estilo nos permite usar una imagen como borde de una
caja. Tenemos que indicar tres atributos: la imagen a utilizar, el grosor y la forma de
aplicar la imagen (stretch, repeat, round, none). Ejemplo de uso:
23
2.5. Fondos
CSS3 también ha introducido nuevas propiedades para definir el estilo de las imágenes de
fondo:
• background-origin: border-box | padding-box | content-box - permite definir el
origen de coordenadas sobre el que se va a colocar la imagen de fondo. Acepta tres
posible valores: “border-box” para que el fondo empiece desde el mismo borde del
elemento, “padding-box” para que la imagen de fondo se coloque a partir del
espaciado de padding, y por último “content-box” para que la imagen de fondo se
coloque donde empieza el contenido del elemento, sin tener en cuenta el borde ni el
padding.
• background-clip: border-box | padding-box | content-box - define el área sobre la
que se extiende la imagen de fondo, puede tomar tres valores: “border-box” se
extiende por toda el área dentro de la zona definida a partir del borde, “padding-box”
se extiende a partir del espaciado de padding y “content-box” el fondo se extiende
solo dentro del área de contenido.
• background-size: Permite indicar el tamaño de la imagen de fondo. Acepta diferentes
atributos:
• background-size: 200px; // especifica ancho y alto a la vez
• background-size: 200px 100px; // 200px de ancho y 100px de alto
• background-size: auto 200px; // ajustar la anchura automáticamente
• background-size: 50% 25%; // También podemos indicar el tamaño con
porcentajes
• background-size: contain; // Escalar la imagen al tamaño máximo posible
(conservando las proporciones originales) para que quepa dentro del área
asignada.
• background-size: cover; // Escalar la imagen para que cubra completamente el
área asignada (conservando las proporciones originales).
• Capas con múltiples imágenes de fondo: Con la propiedad background ahora
podemos indicar varias imágenes de fondo, simplemente separándolas con comas.
Para cada propiedad background debemos definir cuatro valores: imagen de fondo,
posición vertical, posición horizontal, modo de repetición (repeat, repeat-x, repeat-y,
no-repeat). Ejemplo:
Dado que estas propiedades no son soportadas todavía en todos los navegadores,
deberemos de definirlas también añadiendo los prefijos “-webkit-” y “-moz-” para dar un
mayor soporte.
24
HTML5 y CSS3
2.6. Texto
@font-face{
font-family:<nombre_fuente>;
src: <source>;
[font-weight:<weigth>];
[font-style:<style>];
}
Con “font-family” indicamos el nombre que le damos a la fuente, y “src” nos permite
seleccionar el fichero a cargar. Los otros dos parámetros son opcionales y tendrán
valor “normal” por defecto. Por ejemplo:
@font-face {
font-family: ’LeagueGothic’;
src: url(LeagueGothic.otf);
}
25
// Ahora ya podemos usar esta fuente:
p {
font-family: ’LeagueGothic’;
}
2.7. Columnas
Se han añadido nuevas propiedades que nos permiten crear columnas directamente a
partir de un texto, estas son:
• column-count: Define el número de columnas en el que se va a dividir el texto. El
texto será dividido de la mejor forma posible para que ocupe todo el espacio.
• column-width: Define el ancho de la columna (en unidades CSS).
• column-gap: Define el espacio entre las columnas (en unidades CSS).
• column-rule: Mediante esta propiedad podemos añadir una línea separadora entre las
columnas, si no especificamos esta propiedad no se añadirá ninguna línea. Debemos
de indicarle tres valores: ancho de la línea (en unidades CSS), estilo de la línea (solid,
dotted, double, etc.) y color de la línea.
Para dar un mayor soporte antepondremos los prefijos -webkit- y -moz-, de la forma:
-webkit-column-count: 3;
-webkit-column-rule: 1px solid silver;
-webkit-column-gap: 10px;
-moz-column-count: 3;
-moz-column-rule: 1px solid silver;
-moz-column-gap: 10px;
column-count: 3;
column-rule: 1px solid silver;
column-gap: 10px;
Se han añadido nuevas propiedades para la disposición de elementos dentro de una caja:
• overflow: visible | hidden | scroll | auto; - permite indicar que ocurrirá si el
contenido excede el área de un elemento, acepta cuatro posibles valores:
• visible: No se recorta el contenido, la parte que quede fuera será visible. Es el
valor por defecto.
26
HTML5 y CSS3
resize:both;
overflow:auto;
2.9. Transiciones
Una de las propiedades más novedosas que incorpora CSS3 es la posibilidad de crear
animaciones mediante transiciones y transformaciones. Se pueden aplicar transiciones a
la mayoría de propiedades (posiciones, fondo, color, tamaño, etc.). Desafortunadamente,
no todos los navegadores usan los nombres estándares, por lo que tendremos que añadir
los prefijos “-webkit-”, “-moz-” y “-o-” para dar un mayor soporte. La buena noticia es
que la sintaxis para los valores en todos ellos es consistente:
• transition-property: propertyName; - Indica la propiedad sobre la que se aplicará la
transición. Se puede aplicar sobre casi todas las propiedades: background, color,
height, width, border, etc. Además también podemos usar el valor “all” para que se
aplique sobre todas las propiedades disponibles, por ejemplo:
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
transition-property: all;
• transition-duration: duration; - Indica el tiempo que debe durar la transición en
segundos (0.5s) o en milisegundos (500ms):
-webkit-transition-duration: 1s;
-moz-transition-duration: 1s;
-o-transition-duration: 1s;
transition-duration: 1s;
• transition-timing-function: timingFunction; - Es la función de tiempo que seguirá
la transición, indica los cambios de velocidad a lo largo de la animación. Puede tomar
cinco valores diferentes: ease (valor por defecto), linear, ease-in, ease-out, ease-in-out
y cubic-bezier(cp1x, cp1y, cp2x, cp2y). Por ejemplo:
27
-webkit-transition-timing-function: linear;
-moz-transition-timing-function: linear;
-o-transition-timing-function: linear;
transition-timing-function: linear;
• transition-delay: delay; - Permite establecer un retraso inicial antes de ejecutar la
transición. El tiempo de retraso se debe de indicar en segundos (0.5s) o en
milisegundos (500ms):
-webkit-transition-delay: 0.2s;
-moz-transition-delay: 0.2s;
-o-transition-delay: 0.2s;
transition-delay: 0.2s;
• transition: propertyName duration timingFunction delay; - También podemos
indicar las cuatro propiedades explicadas en una sola línea:
.btn1 {
background: #9c3;
-webkit-transition: background 0.3s ease;
-moz-transition: background 0.3s ease;
-o-transition: background 0.3s ease;
transition: background 0.3s ease;
}
.btn1:hover {
background: #690;
}
2.10. Transformaciones
28
HTML5 y CSS3
#myDIV {
-moz-transform: scale(1.2) rotate(9deg) translate(5px, 2px) skew(5deg,
5deg);
-webkit-transform: scale(1.2) rotate(9deg) translate(5px, 2px)
skew(5deg, 5deg);
-o-transform: scale(1.2) rotate(9deg) translate(5px, 2px) skew(5deg,
5deg);
-ms-transform: scale(1.2) rotate(9deg) translate(5px, 2px) skew(5deg,
5deg);
transform: scale(1.2) rotate(9deg) translate(5px, 2px) skew(5deg,
5deg);
}
Hay muchos más tipos de transformaciones, aunque algunas de ellos no son funcionales
todavía (sobre todo las funciones 3D), para más información consulta:
“http://www.w3schools.com/cssref/css3_pr_transform.asp”.
Existen algunas páginas Web que proporcionan “generadores de estilos CSS”, facilitando
en ocasiones este tipo de tareas:
• http://css3generator.com/
• http://www.colorzilla.com/gradient-editor/
Además, para obtener mucha más información sobre CSS3 podemos consultar:
• http://www.w3schools.com/css3/default.asp
• http://www.w3.org/TR/2001/WD-css3-roadmap-20010523/
29