Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenidos:
1. Introducción al CSS
2. Reglas de estilos
3. Introducir estilos
4. Herencia y tipos de selectores
5. Propiedades más comunes
6. Clases, pseudo-clases y pseudo-elementos
7. Transformaciones y transiciones
8. Resumen
Actividad
El diseño de la página es una parte muy importante en el desarrollo web, por eso es muy importante el estilo que
apliquemos a nuestra web.
El Jardín Zen CSS es un recurso Web de diseño. El objetivo del sitio es mostrar las posibilidades del diseño basado
en CSS. Se utilizan hojas de estilo contribuidas por diseñadores gráficos de todo el mundo para cambiar la
presentación visual de un único archivo HTML, produciendo cientos de diseños diferentes. Aparte de la referencia
a un archivo CSS externo, el código HTML en sí mismo nunca cambia. Todas las diferencias visuales son el
resultado del CSS y el conjunto de imágenes que soportan el diseño.
Visita la página http://csszengarden.com y observa cómo cambia el diseño de las distintas páginas simplemente
por modificar los estilos
1. Introducción a las hojas de estilos CSS.
Las siglas CSS provienen del inglés Cascading Style Sheets (Hojas de estilo en cascada). CSS es un lenguaje que se utiliza
junto a HTML, para añadir a éste la parte de diseño (colores, tipografías, tamaños, posicionamiento,… etc) liberando a HTML de
estas funciones.
Existen distintas versiones de CSS y si bien la última es la versión 3, la más extendida y más utilizada hasta el
momento es la versión 2.1
Antes de comenzar a utilizar CSS, los desarrolladores web se encontraban con los siguientes problemas:
• En un principio, cada etiqueta de HTML podía incorporar atributos para introducir los estilos. Esto hacía que
el código HTML, fuese farragoso y difícil de comprender.
• Otro problema era que si por ejemplo, quería añadir un color de fondo a las tablas, en cada etiqueta <table>,
tenía que añadir el atributo correspondiente. Por lo que había que escribir varias veces el mismo código.
• Si decidíamos cambiar todos los colores de fondo de las tablas por otro color, teníamos que modificarlo en
cada una de ellas, lo que hacía que el código fuese más difícil de mantener.
• Debido a que muchos de los atributos no eran estándar en un principio, había problema a la hora de que el
navegador pudiese representar de la misma forma los estilos.
Evolución histórica
Para solucionar todos los problemas anteriores, el W3C(World Wide Web Consortium), propuso la creación de un
lenguaje de hojas de estilos específico para el lenguaje HTML y surgieron dos propuestas principales que acabaron
conviertiéndose en una sola.
• En 1996 publicó la primera recomendación oficial, conocida como "CSS nivel 1".
• En 1998, el grupo de trabajo de CSS publicó su segunda recomendación oficial, conocida como "CSS nivel
2".( La versión de CSS que utilizan todos los navegadores de hoy en día es CSS 2.1)
• Desde 1998 hasta ahora, se ha trabajado en la versión “CSS 3”, que se presenta como la más adecuada
para HTML 5. A pesar de que aún hay algún navegador que presenta problemas de compatibilidad con esta
versión cada vez son menos.
2. Reglas de estilos
Una misma regla puede tener varias declaraciones separadas por punto y coma.
Cada propiedad CSS tiene distintas reglas sobre los valores que puede tomar. Algunas propiedades sólo aceptan
un valor de una lista de valores predefinidos, otras valores en píxeles para tamaños, porcentajes, etc.
Comentarios.
Conviene añadir comentarios a las hojas de estilo para recordar qué hacen las reglas de estilo, sobre todo aquellas
que sean más complejas.
Para añadir comentarios, se comienza con los caracteres /* y todo lo escrito a continuación se considerará
comentario hasta que aparezcan los caracteres */
Ejemplo:
3. Introducir estilos.
Existen varias formas de añadir estilos al documento web.
Consiste el atributo style dentro de las etiquetas a las que quieren que se apliquen dichos estilos. El conjunto de las
parejas propiedad:valor va entre comillas. Y todas ellas van separadas por punto y coma.
Ejemplo:
background-color : blue; ► Con esta propiedad establecemos un color de fondo, en este caso azul.
Todos estos estilos aplicados se aplican al párrafo al que se ha asignado ese atributo. Si posteriormente en la página
apareciera otro párrafo no tendría los mismos estilos.
Por lo tanto, si deseamos aplicar los mismos estilos a todos los párrafos de la página, esta forma de aplicar estilos
no sería una buena elección.
• CSS interno.
Consiste en incluir en la cabecera del documento el código css. Dicho código se asignará a todas las etiquetas de
la página a la que hagan referencia.
Ejemplo:
Y el resultado será
Como vemos, sólo definiendo una vez los estilos en la cabecera, cada vez que en el cuerpo aparezca el selector
definido en los estilos se le aplicarán los estilos correspondientes, sin tener que escribirlo cada vez que aparece.
Si tuviésemos varias páginas en nuestro sitio web, y quisiésemos que todas las páginas tuviesen los mismos estilos.
Utilizando esta forma de añadirlos, tendríamos que repetir en todas las páginas el trozo de código referente a estilos.
• CSS externo.
En este caso, se genera un documento específico para la definición de los estilos. La extensión de estos documentos
es .css.
Al construir el documento, hay que tener en cuenta que no es un documento html, por lo que en él no habrá ninguna
etiqueta html, sólo código css.
Donde type=”text/css” indica que el lenguaje utilizado es css, y href indica la ruta y el nombre de la hoja de
estilos.
Y en el navegador a pesar de no haber escrito ningún estilo directamente en la página veremos:
- Importarlas a través de la etiqueta <style>
A través de la etiqueta style, y la regla @import, obtendremos exactamente el mismo resultado que en el
ejemplo anterior.
Dentro de una página de estilos externa, también podemos importar otra página .css.ç
Ejemplo:
Supongamos que tenemos dos páginas de estilos que deseamos utilizar (estilos.css y estilos2.css).
Podríamos enlazar la página html con la página estilos.css
estilos2.css
Actividad.
Utiliza dos hojas de estilo estilos.css y estilos2.css y asegúrate que aparezcan en ambas propiedades con valores
diferentes para la etiqueta el selector h1 ¿Cuál tiene preferencia?
4. Herencia y tipos de selectores.
Herencia
Una de las características principales de CSS es la herencia de los estilos definidos para los elementos. Cuando se
establece el valor de una propiedad CSS en un elemento, sus elementos descendientes heredan de forma
automática el valor de esa propiedad.
Ejemplo:
A pesar de no haber definido un estilo para los párrafos, a través de la etiqueta <p>, al ir dentro de <body> se
considera descendiente de ésta y existen muchas propiedades, como el color que se heredan. Por lo tanto el texto
en el navegador se presentará de color rojo.
Existen algunas propiedades que no se heredan, por ejemplo la propiedad borde. Si se aplica un estilo al borde de
un elemento y dentro de dicho elemento existe otro que deseamos que herede dicha propiedad, tendremos que
utilizar en el segundo el valor inherit para forzar la herencia.
Ejemplo:
En el siguiente código se ha asignado estilos a un <div>, como la propiedad borde no se hereda, el párrafo, que
está dentro del div no tendrá borde:
Si aplicamos la propiedad inherit al borde del párrafo, se heredarán las propiedades del borde del div.
i0619
Debido a la herencia, puede ocurrir que un elemento tenga más de una regla aplicada. CSS utiliza el principio de
cascada para aplicar las propiedades de los estilos, la más específica será la que se aplique.
Así, aunque la herencia de estilos se aplica automáticamente, se puede anular su efecto estableciendo de forma
explícita otro valor para la propiedad que se hereda.
Ejemplo:
Si se aplica una propiedad color a body, como la propiedad color se hereda, todo elemento que se introduzca en
body tendrá color rojo, sin embargo al indicar de forma explícita que el texto de los párrafos será azul, será esta
regla la que se aplique, mientras que para la cabecera si se heredará la del body.
Selectores.
En CSS 2.1 existen distintos tipos de selectores:
• Selector universal.
Ejemplo:
* {color: red}
• Selector de tipo.
Ejemplo:
• Listas de selectores.
Si queremos aplicar el mismo estilo a dos selectores diferentes, no tenemos porqué escribir los estilos más de
una vez. Podemos agrupar los selectores separándolos por comas.
Ejemplo:
• Selector descendiente.
Ejemplo:
Se considera descendiente aunque no esté justo debajo del segundo y haya más niveles entre ellos.
Es un selector descendiente, pero en este caso sólo el que está justo un nivel por debajo.
Ejemplo:
Ejemplo:
<div><p><a>texto2</a></div>
Si lo que queremos es descartar a los selectores hijos y que los estilos funcionen en el resto de
descendientes, lo haríamos:
Dos selectores son hermanos si tienen el mismo padre. Son inmediatos si aparece uno justo al lado del otro.
Para acceder al hermano inmediato se usa el símbolo +
Ejemplo: h1+h2 {color:blue} (Los h2 que vayan justo a continuación de h1 será azules)
• Selector de id
El id, es un atributo que identifica a un elemento de forma única. El selector de id, por tanto, será un selector
que haga referencia a dicho elemento y sirve sólo una vez.
Ejemplo:
Puede ser que deseemos dar estilos a un selector de id que es hijo de otro elemento.
Ejemplo
Ejemplo:
[atributo |=”valor”]► Selecciona los elementos cuyo atributo comience por el valor indicado.
Supón que en una página tienes varios párrafos marcados con sus respectivas etiquetas <p>. Deseas que los
párrafos tengan estilos diferentes, los pares un estilo y los impares otro estilo ¿Cómo podrías resolverlo?
Las clases nos permiten solucionarlo asignando un identificador de clase a la etiqueta concreta a la que
deseamos aplicar dicho estilo.
Las clases nos permiten identificar con un “identificador de clase”, a las etiquetas que vamos a aplicar los estilos
de dicha clase.
Cuando queremos indicar qué etiqueta utilizará dicha clase añadimos a la etiqueta el atributo
class=”nombreclase”, y luego en la hoja de estilos, para indicar que es una clase, se utiliza el selector, seguido
de un punto seguido del nombre de dicha clase.
Ejemplo:
No es obligatorio poner el selector antes del nombre de la clase, pero el punto sí, por lo que en el ejercicio
anterior, los estilos podríamos haberlos escrito directamente:
La principal diferencia entre los estilos de id y los de clase, es que los de id se utilizan exclusivamente para un
único elemento y los de clase para cuando necesitamos poner el mismo estilo a más de uno.
Actividad
Estudia el siguiente código e indica si las afirmaciones expuestas son verdaderas o falsas
Verdadero Falso
2. El estilo #película no está correctamente escrito. Siempre se ha de colocar antes del selector de ID, el
elemento al que hace referencia. En este caso sería correcto p#pelicula
Verdadero Falso
Verdadero Falso
4. Todos los párrafos son de color de fondo rosa ya que hay un selector específico para los párrafos.
Verdadero Falso
Verdadero Falso
6. Los nombres de los actores son de color negro, porque existe un selector específico por ID, que tiene prioridad
a la herencia de body.
Verdadero Falso
7. Los elementos de los nombres de los actores son grises porque heredan el color de body.
Verdadero Falso
Para ver un listado de todas las propiedades y sus respectivos valores puedes consultar el enlace publicado por el
organismo W3C
http://www.w3.org/TR/CSS2/propidx.html
Tamaños y medidas:
Cuando la propiedad conlleva una medida (altura, anchura, separación de márgenes…etc),
a. Medidas absolutas.
b. Medidas relativas
Para indicar la anchura y height de un elemento se utilizan las propiedades width y height respectivamente.
Propiedad widht
Valores <absoluto px> | <relative %> |auto
Descripción Establece el ancho del elemento
Propiedad height
Valores <absoluto px> | <relative %> | auto
Descripción Establece el alto del elemento
Ejemplo:
En este ejemplo veremos la diferencia de utilizar una unidad de medida u otra. En el primer ejemplo se muestran
medidas absolutas, puntos.
En el siguiente se muestran medidas relativas, píxeles.
En el siguiente ejemplo se muestra la misma imagen con porcentajes. El porcentaje se muestra al objeto que
contiene a la imagen, en este caso, como no hay ningún div, ni otro elemento, el porcentaje se muestra respecto a
la ventana del navegador.
Colores:
Para aplicar colores a los elementos html utilizamos la propiedad color.
Propiedad color
Valores nombre color | código RGB
Descripción Establece el color del texto
Los colores para las propiedades CSS se pueden definir de 4 formas diferentes en un documento web:
Ejemplo: h1 { color:blue}
Ejemplo:
Los tres códigos siguientes representan el mismo color. En este caso, el color rojo.
Actividad
Propiedad font-family
Valores <fuente> Ej: Arial, Verdana, Times New Roman, …
Propiedad font-style
Valores normal| italic | oblique
Propiedad font-size
<valores absolutos> Ej: 12ppt, 3mm
Valores <valores relativos> Ej: 20px, 3em
<%> Ej: 200%
Propiedad font-weight
normal| bold | bolder | lighter
Valores
100 | 200 | 300 | 400| 500 | 600 | 700 | 800 | 900
Propiedad font-variant
Valores normal| small-caps | inherit
Para no tener que escribir todos los estilos de fuentes, podemos utilizar el método shorthand. El método
shorthand consiste en escribir el nombre común de la propiedad (en este caso Font), y a continuación todos los
valores en orden estricto.
Ejemplo:
Texto
Propiedad text-align
Valores left | right | center | justify
Establece la alineación del contenido del
Descripción
elemento
Propiedad line-height
Valores normal | numero | unidad de medida | porcentaje
Permite establecer la altura de línea de los
Descripción
elementos
Propiedad text-decoration
Propiedad text-transform
Propiedad text-shadow
Propiedad text-indent
Propiedad letter-spacing
Valores normal | unidad de medida
Propiedad word-spacing
Valores normal | unidad de medida
Permite establecer el espacio entre las palabras
Descripción
que forman el texto
Propiedad white-space
Valores normal | nowrap |pre| pre-line| pre-wrap
En este ejemplo se han aplicado varias de las propiedades vistas en este apartado:
Como se puede observar, en el tipo de letra, se han añadido 3 tipografías distintas, el navegador intentará cargar la
primera, pero si no la tiene instalada, probará con la segunda, etc.
5. Si queremos que el texto esté resaltado en negrita utilizamos ________ , y si queremos que esté
subrayado ________
text-decoration, 6-text-index.
1-font-style ,2-font-size, 3-text-align , 4-font-family, 5-font-weight
Soluciones:
Actividad
Realiza este ejercicio aplicando estilos a un texto para que sea lo más parecido al siguiente.
Nota: El texto no tiene que ser el mismo puede ser cualquier texto, pero intenta que visualmente sea lo
más parecido posible.
Fuentes externas
Fuentes descargadas
Los navegadores, sólo interpretan los estilos de texto instalados. Hay que poner varios por si el primero no lo
encuentra.
Se ha utilizado mucho la creación de texto con imágenes, no es recomendable a no ser que forme parte del diseño
como logotipo etc y sin abusar.
CSS3 permite incluir tipografía a través de una URL
Actividad
Fuentes de Google
Las fuentes son muy importantes para conseguir un diseño atractivo en nuestras páginas web. Por defecto
podemos utilizar fuentes como Arial, ComicSans, Verdana… pero son poco atractivas desde el punto de vista del
diseño. Por eso podemos descargarnos fuentes como las anteriores, o usar enlaces a fuentes como las de
Google, que además de ser gratuítas ofrecen una enorme variedad de fuentes de todos los tamaños y estilos para
nuestros sitios web.
Para seleccionar un afuente de Google tendremos que ir a la página de Google fonts. Una vez allí podremos ver
todas las fuentes y seleccionar la que más nos guste.
La selección la haremos pulsando sobre el símbolo + que aparece en la parte superior derecha de la fuente.
Una vez seleccionada la fuente veremos lo siguiente:
Propiedad list-style-type
Propiedad list-style-position
Propiedad list-style-image
Escribe el código html y los estilos correspondientes para obtener un resultado en el navegador lo más parecido
posible a la siguiente imagen:
Fondos
Propiedad background-color
Valores nombre color | código RGB| transparent
Descripción Establece el color de fondo del elemento
Propiedad background-image
Valores url(“ruta de la imagen”) | none
Descripción Establece una imagen de fondo
Propiedad background-repeat
Valores Repeat | no-repeat | repeat-x| repeat-y
Repite la imagen de fondo hasta completar el
Descripción
elemento.
Propiedad background-position
<%> | <medida>| left | center | right
Valores
<%> | <medida>|top | center | bottom
Indica el desplazamiento de la imagen desde la
esquina superior izquierda dando el valor del
Descripción
desplazamiento horizontal y el de
desplazamiento vertical.
Estas propiedades admiten el método shorthand, tienen que aparecer las propiedades en orden pero no
estrictamente.
Ejemplo:
El CCS3 no es reconocido en navegadores antiguos. Lo mejor es que se actualice el navegador. Pero para
asegurarnos de la compatibilidad con los navegadores que tienen más tiempo, se suele seguir añadiendo la
propiedad correspondiente para cada navegador.
linear-gradient (top, orange, blue) linear-gradient (45deg, orange, blue) radial-gradient (circle, orange, blue)
Ejemplo:
background: #ff920a;
background: -moz-linear-gradient(left, #ff920a 0%, #0000ff 100%);
/*Firefox*/
background: -webkit-linear-gradient(left, #ff920a 0%, #0000ff 100%);
/*Chrome, Opera, Safari*/
background: -ms-linear-gradient(left, #ff920a 0%, #0000ff 100%);
/*IE10*/
background: linear-gradient(to right, #ff920a 0%, #0000ff 100%);
/*CSS3*/
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff920a',
endColorstr='#0000ff', GradientType=1 );
/*IE9 y 10*/
https://www.cssmatic.com/es/gradient-generator#
Degradados con transparencia
background: rgba(255,146,10,1);
background: -moz-linear-gradient(left, rgba(255,146,10,1) 0%, rgba(255,146,10,0) 100%);
background: -webkit-linear-gradient(left, rgba(255,146,10,1) 0%, rgba(255,146,10,0)
100%);
background: -ms-linear-gradient(left, rgba(255,146,10,1) 0%, rgba(255,146,10,0) 100%);
background: linear-gradient(to right, rgba(255,146,10,1) 0%, rgba(255,146,10,0) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff920a',
endColorstr='#ff920a', GradientType=1 );
Fondos con varias imágenes
Ahora que ya hemos visto cómo trabajar los fondos con html, podemos ver que se pueden crear fondos con más
de una imagen. ¿Pero cómo es posible? ¿Una no se superpondría a la otra? Sí, el truco es que las imágenes no
tengan fondo, así pueden verse las distintas capas.
Ejemplo:
Imagen1: f01.png
Imagen2: f02.png
Imagen3: f03.png
Ejemplo:
https://www.cssmatic.com/es/border-radius#
Actividad
Escribe el código html y una hoja externa de estilos para conseguir un resultado como el siguiente:
Bordes sombreados
https://www.cssmatic.com/es/border-radius#
Tablas
Ejemplo:
El resultado será:
Reflexión.
Supón que en una página tienes varios párrafos marcados con sus respectivas etiquetas <p>. Deseas que los
párrafos tengan estilos diferentes, los pares un estilo y los impares otro estilo ¿Cómo podrías resolverlo?
Clases.
Como ya adelantamos antes, las clases nos permiten identificar con un “identificador de clase”, a las etiquetas que
vamos a aplicar los estilos de dicha clase.
Cuando queremos indicar qué etiqueta utilizará dicha clase añadimos a la etiqueta el atributo class=”nombreclase”,
y luego en la hoja de estilos, para indicar que es una clase, se utiliza el selector, seguido de un punto seguido del
nombre de dicha clase.
Ejemplo
:
El resultado en el navegador será:
.En el código del ejercicio anterior, en la definición de los estilos, no es obligatorio el selector antes del nombre de
la clase en la parte de estilos, por lo que también podría aparecer de la siguiente forma:
Actividad.
Crea una tabla como la de la imagen siguiente, en que haya una clase de nombre “especial”, que será la celda
roja de cada fila.
Dicha celda tendrá el fondo rojo, el texto blanco y en cursiva y el borde blanco y punteado.
Solución
Pseudoclases.
CSS permite definir estilos a un elemento según su estado.
Un ejemplo muy significativo son los distintos estados de un enlace. Un enlace puede estar en uno de estos
estados:
o Normal, no visitado
o Situados con el ratón por encima
o Haciendo click, sobre el enlace
o Visitado
Ejemplos:
o Normal, no visitado
Se le ha asignado el color naranja
o Visitado
Color gris.
Ejemplo:
En este ejemplo vamos a ver cómo podemos realizar un menú más profesional, cambiando el color de fondo del
elemento sobre el que estamos con el ratón.
Puede que aún no conozcas alguna de las propiedades como float, no te preocupes, las veremos más adelante.
Pseudo-elementos.
elemento:pseudoelemento
Ejemplos:
• p.first-line {color=”red” }
• p.first-letter { font-size=”30px”}
Ejemplo:
Ejemplo. first-line
Actividad.
Realiza una caja en html como la siguiente, y utiliza la propiedad after y before, para que se añada una
línea delante y atrás del texto.
Solución
7. Transformaciones y transiciones
CSS3 también permite realizar efectos visuales muy interesantes en 2D y 3D, Todos estos tipos de efectos, antes
tenían que realizarse con javascript o flash. Con CCS3 podemos realizarlos de forma nativa directamente con las
propiedades que vamos a ver a continuación.
Transformaciones
El método scale()
100px
50px
En este tema. Las transiciones son animaciones, o modificación en alguna propiedad que se realizan en el tiempo
determinado de forma gradual y no de golpe.
http://www.w3.org/TR/CSS2/propidx.html