1 CSS3 Introducción
1 CSS3 Introducción
1 CSS3 Introducción
1. Introducción
Historia
El organismo W3C (World Wide Web Consortium), encargado de crear todos los
estándares relacionados con la web, propuso la creación de un lenguaje de hojas de
estilos específico para el lenguaje HTML y se presentaron nueve propuestas. Las dos
propuestas que se tuvieron en cuenta fueron la CHSS (Cascading HTML Style Sheets) y
la SSP (Stream-based Style Sheet Proposal). La información de nuestros sitios WEB
tienen que estar almacenadas en páginas (X)HTML sin incluir ningún tipo de
información a cerca de su estilo.
A principios de 1997, el W3C decide separar los trabajos del grupo de HTML en tres
secciones: el grupo de trabajo de HTML, el grupo de trabajo de DOM y el grupo de
trabajo de CSS.
Introducción
La principal ventaja de las unidades absolutas es que su valor es directamente el valor que
se debe utilizar, sin necesidad de realizar cálculos intermedios. Su principal desventaja es
que son muy poco flexibles y no se adaptan fácilmente a los diferentes medios.
De todas las unidades absolutas, la única que suele utilizarse es el punto (pt). Se trata de la
unidad de medida preferida para establecer el tamaño del texto en los documentos que se
van a imprimir, es decir, para el medio print de CSS.
Unidades de medida
Relativas:
La unidades relativas, a diferencia de las absolutas, no están completamente definidas, ya
que su valor siempre está referenciado respecto a otro valor. A pesar de su aparente
dificultad, son las más utilizadas en el diseño web por la flexibilidad con la que se adaptan
a los diferentes medios.
A continuación se muestran las tres unidades de medida relativas definidas por CSS y la
referencia que toma cada una para determinar su valor real:
• em, (no confundir con la etiqueta <em> de HTML) relativa respecto del tamaño de
letra del elemento.
• ex, relativa respecto de la altura de la letra x ("equis minúscula") del tipo y tamaño de
letra del elemento.
• px, (píxel) relativa respecto de la resolución de la pantalla del dispositivo en el que se
visualiza la página HTML.
Las unidades em y ex no han sido creadas por CSS, sino que llevan décadas utilizándose en
el campo de la tipografía. Aunque no es una definición exacta, la unidad 1em equivale a la
anchura de la letra M ("eme mayúscula") del tipo y tamaño de letra del elemento.
La regla CSS anterior indica que los párrafos deben mostrar un margen de anchura igual a
1em. Como se trata de una unidad de medida relativa, es necesario realizar un cálculo
matemático para determinar la anchura real de ese margen.
La unidad de medida em siempre hace referencia al tamaño de letra del elemento. Por otra
parte, todos los navegadores muestran por defecto el texto de los párrafos con un tamaño
de letra de 16 píxel. Por tanto, en este caso el margen de 1em equivale a un margen de
anchura 16px.
A continuación se modifica el ejemplo anterior para cambiar el tamaño de letra de los
párrafos:
El valor del margen sigue siendo el mismo en unidades relativas (1em) pero su valor real ha
variado porque el tamaño de letra de los párrafos ha variado. En este caso, el margen
tendrá una anchura de 32px, ya que 1em siempre equivale al tamaño de letra del
elemento.
Si se quiere reducir la anchura del margen a 16px pero manteniendo el tamaño de letra de
los párrafos en 32px, se debe utilizar la siguiente regla CSS:
Unidades de medida
El valor 0.5em se interpreta como "la mitad del tamaño de letra del elemento", ya
que se debe multiplicar por 0.5 su tamaño de letra (32px x 0.5 = 16px). De la misma
forma, si se quiere mostrar un margen de 8px de anchura, se debería utilizar el valor
0.25em, ya que 32px x 0.25 = 8px.
La gran ventaja de las unidades relativas es que siempre mantienen las proporciones
del diseño de la página. Establecer el margen de un elemento con el valor 1em
equivale a indicar que "el margen del elemento debe ser del mismo tamaño que su
letra y debe cambiar proporcionalmente".
En efecto, si el tamaño de letra de un elemento aumenta hasta un valor enorme, su
margen de 1em también será enorme. Si su tamaño de letra se reduce hasta un valor
diminuto, el margen de 1em también será diminuto. El uso de unidades relativas
permite mantener las proporciones del diseño cuando se modifica el tamaño de letra
de la página.
El funcionamiento de la unidad ex es idéntico a em, salvo que en este caso, la
referencia es la altura de la letra x minúscula, por lo que su valor es
aproximadamente la mitad que el de la unidad em.
Por último, las medidas indicadas en píxel también se consideran relativas, ya que el
aspecto de los elementos dependerá de la resolución del dispositivo en el que se
visualiza la página HTML. Si un elemento tiene una anchura de 400px, ocupará la
mitad de una pantalla con una resolución de 800x600, pero ocupará menos de la
tercera parte en una pantalla con resolución de 1440x900.
Unidades de medida
Las unidades de medida se pueden mezclar en los diferentes elementos de una
misma página, como en el siguiente ejemplo:
En primer lugar, se establece un tamaño de letra base de 10 píxel para toda la página.
A continuación, se asigna un tamaño de 2.5em al elemento <h1>, por lo que su
tamaño de letra real será de 2.5 x 10px = 25px.
Como se vio en los capítulos anteriores, el valor de la mayoría de propiedades CSS se
hereda de padres a hijos. Así por ejemplo, si se establece el tamaño de letra al
elemento <body>, todos los elementos de la página tendrán el mismo tamaño de
letra, salvo que indiquen otro valor.
Sin embargo, el valor de las medidas relativas no se hereda directamente, sino que se
hereda su valor real una vez calculado. El siguiente ejemplo muestra este
comportamiento: La propiedad text-indent, se utiliza para tabular la primera línea de un texto. El
elemento <body> define un valor para esta propiedad, pero el elemento <h1> no lo
hace, por lo que heredará el valor de su elemento padre. Sin embargo, el valor heredado
no es 3em, sino 36px.
Si se heredara el valor 3em, al multiplicarlo por el valor de font-size del elemento <h1>
(que vale 15px) el resultado sería 3em x 15px = 45px. No obstante, como se ha
comentado, los valores que se heredan no son los relativos, sino los valores ya
calculados.
Por lo tanto, en primer lugar se calcula el valor real de 3em para el elemento <body>:
3em x 12px = 36px. Una vez calculado el valor real, este es el valor que se hereda para el
resto de elementos.
Unidades de medida
Las unidades relativas expresan tamaños en función de otros.
unidad relativa a
La ventaja de utilizar estas unidades es que se adaptan muy bien a distintos tipos y
tamaños de pantalla.
Unidad 'em'
Esta unidad hace referencia al tamaño de letra calculado heredado por el elemento.
Por tanto, para calcular el valor real aplicado habrá que determinar los valores que se
van heredando de los elementos contenedores.
Unidad 'rem'
Esta unidad tiene una referencia fija, que es el tamaño de letra definido en el
elemento raíz. Por tanto, para calcular el valor real aplicado simplemente hay que
mirar el elemento raíz.
No puede dejarse un espacio entre el valor y la unidad. Si se deja algún espacio entre el
valor y la unidad, la hoja de estilo no se acepta y, por lo tanto, no se muestra.
Las unidades 'em'y 'ex'son relativas al tamaño de letra dentro del propio elemento,
excepto para la propiedad "font-size" para la que se toma el tamaño de letra del padre.
Por lo general, se recomienda utilizar la unidad em para describir el tamaño del tipo de
letra y así lograr una estabilidad mayor entre los distintos sistemas operativos y
navegadores.
Unidades de medida
Los porcentajes:
Sintaxis
Un selector en CSS es la herramienta que nos sirve para seleccionar
uno o varios elementos de los que tenemos en nuestro HTML.
Cuando decimos seleccionar nos referimos a referenciar ese elemento
para aplicarle el estilo.
selector {propiedad: valor}
Normalmente el selector es el elemento al que se aplica el estilo.
selector declaración
h2 { color : purple; }
propiedad valor
Propiedades
Propiedades "resumidas"
Propiedades de texto
h1 {
font-weight:
bold; font-size:
12pt; line-
height: 14pt;
font-family:
Helvetica; font-
variant: normal; font-
style: normal;
}Propiedad resumido
• Los elementos que tienen el mismo padre son "hermanos". Por ejemplo: un elemento
p puede ser hermano de otro elemento p si ambos son hijos directos del
elementobody.
Este principio por el que algunas reglas se ignoran y otras se heredan nos introducen un
concepto muy importante: "la cascada".
Cascada y Herencia
Fragmento de documento
<h1>un documento con titulo con palabra
<em>enfatizada</em><h1>
En estos casos se hereda el "valor efectivo" (el valor calculado) para dicha
propiedad.
Cuando una hoja de estilo contiene varias reglas en conflicto de igual peso, sólo
se tendrá en cuenta la que está en último lugar. En el siguiente ejemplo, todas las
cabeceras de primer nivel del documento serían rojas porque se impone siempre
la última regla:
Resolución de conflictos
Si tenemos varias reglas que afectan a los mismos elementos, para resolver
los conflictos asignamos un peso a dichas reglas gana la que tiene mayor
peso.
Declaraciones !important
Como hemos visto, sirven para aumentar la prioridad de una regla sobre otra
para asignar el valor de un atributo particular.
Sintaxis
selector { atributo:valor ! important ; atributo: valor ; }
Cascada y Herencia
Ejemplo:
En el ejemplo, el párrafo tendrá color verde, ya que el valor de su peso "a" es 1. Como
el peso "a" es el más importante, es el que se impone a los demás.
Tipos de etiquetas
Una etiqueta
p {text-align: center; color: red}c
Se pueden agrupar varias etiquetas a las que se les aplica el mismo estilo
Clase
ID
Pseudo clase
Pseudo elemento
Contextual
Tipos de dispositivo
Regla @import
<style type="text/css">
@import url(http://style.com/basic); H1 {
color: blue }
...
</style>
Las hojas de estilo importadas, también se ven afectadas por las reglas de
la cascada.
Las reglas @import deben ir al comienzo de la hoja de estilo, antes de
definir ninguna regla con atributos
Especificando tipos de medio en las CSS
@media print {
body { font-size: 10pt }
}
@media screen {
body { font-size: 13px }
}
@media screen, print {
body { line-height: 1.2 }
}
Minimización de las hojas de estilo
La minimización de código tiene como objetivo reducir el tamaño del archivo eliminando
caracteres innecesarios. Se utiliza en diseño web para reducir el tamaño de los archivos
CSS y JavaScript y así reducir el tiempo de carga del sitio web.
Existen varias herramientas para minimizar código. En concreto, para CSS podemos utilizar
algunos de los siguientes servicios online:
http://cssminifier.com/
http://csscompressor.com/
http://gpbmike.github.io/refresh-sf/
1
Recursos en la WEB sobre CSS
http://www.w3schools.com/css
http://www.devguru.com/Technologies/css/quickref/css_intro.html
http://www.brainjar.com/css/positioning/default.asp
http://www.htmlhelp.com/reference/css/
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtm
l/dhtml_node_entry.asp
http://www.westciv.com/style_master/academy/browser_support/index.h
tml
http://www.w3.org/TR/CSS1
http://www.w3.org/TR/CSS21
Bibliografía