HTML y CSS | Programcion y desarrollo web

 Indice:

  1. Primeras Especificaiones de html
  2. Etiquetas
  3. editores de texto
  4. Colores web
  5. CSS 
  6. Sintaxis
  7. Ventajas
  8. frameworks

HTML

Acrónimo en inglés de HyperText Markup Language ('lenguaje de marcado de hipertexto'), hace referencia al lenguaje de marcado utilizado en la creación de páginas web. Este estándar que sirve de referencia del software que interactúa con la elaboración de páginas web en sus diferentes versiones. Define una estructura básica y un código (denominado código HTML) para la presentación de contenido de una página web, que incluye texto, imágenes, videos, juegos, entre otros elementos. Este estándar es gestionado por el World Wide Web Consortium (W3C) o Consorcio WWW, una organización dedicada a la estandarización de la mayoría de las tecnologías asociadas a la web, especialmente en lo relacionado con su escritura e interpretación. HTML se considera el lenguaje web más importante y su invención crucial para el surgimiento, desarrollo y expansión de la World Wide Web (WWW). Es el estándar que prevalece en la visualización de páginas web y es adoptado por todos los navegadores actuales.1​ El lenguaje HTML se fundamenta en la diferenciación como filosofía de desarrollo. Para añadir elementos externos a una página como imágenes, vídeos o scripts, no se incrustan directamente en el código de la página. En su lugar, se realiza una referencia a la ubicación de cada elemento mediante texto. De este modo, la página web contiene solamente texto, dejando al navegador web (intérprete del código) la labor de unir todos los elementos y visualizar la página final.

 

Primeras especificaciones de HTML

Tim Berners-Lee, en 1991,23​ describe 18 elementos que conformaban el diseño inicial y relativamente simple de HTML. Trece de estos elementos aún perduran en HTML 4.4

Berners-Lee consideraba el HTML una ampliación de SGML, pero no fue formalmente reconocida como tal hasta la publicación a mediados de 1993, cuando la IETF (en español: Grupo de Trabajo de Ingeniería de Internet)5​ publicó una primera propuesta para la especificación de HTML: el borrador del Hypertext Markup Language de Berners-Lee y Dan Connolly. Esta propuesta incluía una Definición de Tipo de Documento SGML para establecer la sintaxis.6​A pesar de que el borrador expiró a los seis meses, fue notable por reconocer la etiqueta específica del navegador Mosaic usada para insertar imágenes sin cambiar la línea. Esto reflejaba la filosofía del IETF de basar los estándares en prototipos con éxito.7​De manera similar, el borrador competidor de Dave Raggett HTML+ (Hypertext Markup Format) (Formato de Marcaje de Hipertexto), de finales de 1993, sugería estandarizar características ya implementadas, como las tablas.

El HTML se escribe utilizando «etiquetas», encerradas por corchetes angulares (<,>,/). Además de describir la estructura de un documento, el HTML puede, hasta cierto punto, definir su apariencia y hacer referencia a un tipo de programa llamado script, el cual puede influir en el comportamiento de navegadores web y otros procesadores de HTML.9

El término HTML, también se refiere al contenido del tipo de MIME text/html o de manera más amplia, como un término genérico para el HTML. Esto puede ser en forma derivada del XML (como XHTML 1.0 y versiones posteriores) o directamente derivado de SGML (como HTML 4.01 y versiones anteriores). El HTML consta de varios componentes esenciales, incluyendo elementos y sus atributos, tipos de datos y la declaración de tipo de documento.[cita requerida]

Elementos

HTML element content categories

Los elementos son la estructura básica de HTML. Los elementos tienen dos propiedades básicas: atributos y contenido. Tanto los atributos como los contenidos tiene ciertas restricciones para que el documento HTML se considere válido. Generalmente, un elemento se compone de una etiqueta de apertura (por ejemplo, <nombre-de-elemento>) y una etiqueta de cierre correspondiente (por ejemplo, </nombre-de-elemento>). Los atributos del elemento se especifican dentro de la etiqueta de apertura, mientras que el contenido se sitúa entre ambas etiquetas (por ejemplo, <nombre-de-elemento atributo="valor">Contenido</nombre-de-elemento>). Algunos elementos, como <br>, carecen de contenido y no requieren una etiqueta de cierre. Debajo se listan varios tipos de elementos de marcado usados en HTML.

Estructura general de una línea de código en el lenguaje de etiquetas HTML.

El marcado estructural describe el propósito del texto. Por ejemplo, <h2>Golf</h2> establece «Golf» como un encabezado de segundo nivel, el cual se mostraría en un navegador de una manera similar al título «Marcador HTML» al inicio de esta sección. El marcado estructural no determina cómo se verá el elemento, pero la mayoría de los navegadores web han estandarizado el formato de los elementos. Se puede aplicar un formato específico al texto por medio de hojas de estilo en cascada.

El marcado presentacional se encarga de definir la apariencia del texto, independientemente de su función. Por ejemplo, <b>negrita</b> indica que los navegadores web deben mostrar el texto en negrita, pero no específica como deben interpretarlo los navegadores que presentan el contenido de otra manera distinta (como aquellos que leen el texto en voz alta). En contraste, en el caso de <b>negrita</b> e <i>itálica</i>, existen elementos con una naturaleza más semántica: <strong>énfasis fuerte</strong> y <em>énfasis</em>. Es evidente cómo un lector de pantalla debería interpretar estos dos últimos elementos. Sin embargo, a pesar de su similitud visual, son diferentes a equivalentes en presentación: un lector de pantalla no debería acentuar más el nombre de un libro, aunque este el nombre en itálicas en la pantalla. La mayoría del marcado en presentación ha sido desechado desde la versión 4.01, en favor de las hojas de estilo en cascada.

El marcado hipertextual se emplea para enlazar partes del documento con otros documentos o con otras secciones del mismo documento. Para crear un enlace es necesario utilizar la etiqueta de ancla <a> junto con el atributo href, que establecerá la dirección URL a la que apunta el enlace. Por ejemplo, un enlace que muestre el texto de la dirección y se dirija hacia la Wikipedia podría tener esta forma <a href=”https://www.wikipedia.org”>https://www.wikipedia.org</a>. También es posible crear enlaces con otros objetos, como imágenes <a href=”enlace”><img src=”imagen” /></a>.

Atributos

En su mayoría, los atributos de un elemento son pares nombre-valor, separados por un signo de igual «=» y escritos dentro de la etiqueta de inicio de un elemento, después del nombre del elemento. El valor puede estar encerrado por comillas dobles o simples, aunque ciertos tipos de valores pueden carecer de comillas en HTML (pero no en XHTML).1011​ De todas maneras, dejar los valores sin comillas se considera poco seguro.12​ Por otro lado, en contraste con los pares nombre-elemento, hay algunos atributos que afectan al elemento simplemente por su presencia,13​como el atributo ismap para el elemento img.14

Etiquetas HTML básicas

Un ejemplo de código HTML con coloreado de sintaxis.

Las etiquetas HTML básicas15​ son fundamentales para estructurar contenido web. Incluyen elementos como <html>, que marca el inicio y el final del documento; <head>, que contiene información meta y enlaces a recursos; y <body>, donde reside el contenido visible. Estas etiquetas proporcionan un marco sólido para la creación y el diseño de páginas web.

  • <html>: define el inicio del documento HTML, le indica al navegador que lo que viene a continuación debe ser interpretado como código HTML. Esto es así de facto, ya que en teoría lo que define el tipo de documento es el DOCTYPE, que significa la palabra justo tras DOCTYPE el tag de raíz.
  • <script>: incrusta un script en una web, o llama a uno mediante src="url del script". Se recomienda incluir el tipo MIME en el atributo type, en el caso de JavaScript text/javascript.
  • <head>: define la cabecera del documento HTML; esta cabecera suele contener información sobre el documento que no se muestra directamente al usuario como, por ejemplo, el título de la ventana del navegador. Dentro de la cabecera <head> es posible encontrar:
    • <title>: define el título de la página. Por lo general, el título aparece en la barra de título encima de la ventana.
    • <link>: para vincular el sitio a hojas de estilo o iconos. Por ejemplo:<link rel="stylesheet" href="/style.css" type="text/css">.
    • <style>: para colocar el estilo interno de la página; ya sea usando CSS u otros lenguajes similares. No es necesario colocarlo si se va a vincular a un archivo externo usando la etiqueta <link>.
    • <meta>: para metadatos como la autoría o la licencia, incluso para indicar parámetros http (mediante http-equiv="") cuando no se pueden modificar por no estar disponible la configuración o por dificultades con server-side scripting.
  • <body>: define el contenido principal o cuerpo del documento. Esta es la parte del documento html que se muestra en el navegador; dentro de esta etiqueta pueden definirse propiedades comunes a toda la página, como color de fondo y márgenes. Dentro del cuerpo <body> es posible encontrar numerosas etiquetas. A continuación se indican algunas a modo de ejemplo:
    • <article>: Representa una composición auto-contenida en un documento, página, una aplicación o en el sitio, que se destina a distribuir de forma independiente o re-utilizable.
    • <h1> a <h6>: encabezados o títulos del documento con diferente relevancia.
    • <table>: define una tabla.
      • <tr>: fila de una tabla.
      • <td>: celda de una tabla (debe estar dentro de una fila).
    • <footer> : representa el pie de un documento o sección. La información que se suele añadir en este bloque es el autor del documento, enlaces a contenido relacionado, información de copyright, avisos legales, etc.
    • <a>: hipervínculo o enlace, dentro o fuera del sitio web. Debe definirse el parámetro de pasada por medio del atributo href. Por ejemplo: <a href="http://www.example.com" title="Ejemplo" target="_blank" tabindex="1">Ejemplo</a> se representa como ejemplo.16
    • <div>: división de la página. Se recomienda, junto con css, en vez de <table> cuando se desea alinear contenido.
    • <img>: imagen. Requiere del atributo src, que indica la ruta en la que se encuentra la imagen. Por ejemplo: <img src="./imágenes/mifoto.jpg" />. Es conveniente, por accesibilidad, poner un atributo alt="texto alternativo".
    • <ol>: etiqueta para listas ordenadas.
    • <ul>: etiqueta para listas desordenadas.
    • <li>: etiqueta elementos de una lista.
    • <b>: texto en negrita (etiqueta desaprobada. Se recomienda usar la etiqueta <strong>).
    • <i>: texto en cursiva (etiqueta desaprobada. Se recomienda usar la etiqueta <em>).
    • <s>: texto tachado (etiqueta desaprobada. Se recomienda usar la etiqueta <del>).
    • <u>: Antes texto subrayado. A partir de HTML 5 define porciones de texto diferenciadas o destacadas del resto, para indicar correcciones por ejemplo (etiqueta desaprobada en HTML 4.01 y redefinida en HTML 5).1718
    • <main>: división estructural de la página que engloba el contenido principal de la misma. Dentro de esta etiqueta, por ejemplo, encontramos los <article>.
    • <span>: Sirve para diferenciar un texto de otro.
    • <br>: Sirve para provocar un salto de línea. Esta etiqueta no se cierra.
    • <hr>: Sirve para provocar un cambio de tema entre párrafos. Esta etiqueta no se cierra.
    • <details> : Sirve para crear una sección desplegable
    • <summary> : Sirve para crear el título de la sección desplegable

La mayoría de etiquetas deben cerrarse como se abren, pero con una barra ( / ) tal como se muestra en los siguientes ejemplos:

  • <table><tr><td>Contenido de una celda</td></tr></table>.
  • <script>Código de un script integrado en la página</script>.
  • <header>División estructural en la parte del contenido.</header>

 

Editores de textos

Para el desarrollo web los programadores se auxilian de un editor de texto. Estos normalmente están hechos con el fin de facilitar la programación. Existen actualmente muchos, como son estos: Notepad++, Adobe Dreamweaver, Sublime text, entre otros.

Colores web 

Los colores web son aquellos colores que aparecen en una página web. Se pueden basar sobre los sistemas de color RGB o HSL. En el código CSS (y antiguamente en HTML) son especificados como valores numéricos, aunque hay colores que también pueden utilizarse por sus nombres en inglés.

RGBA

Fundamento teórico

Un triplete hexadecimal es un número hexadecimal de seis dígitos y tres bytes que se utiliza en HTML, CSS, SVG y otras aplicaciones informáticas para representar colores.

La paleta de colores RGB (RVA en español) consta, básicamente, de tres colores primarios aditivos:      Rojo,      Verde,      Azul.

Estos colores primarios aditivos, en HTML, están representados por tres pares hexadecimales del tipo RR-GG-BB según el siguiente formato:

Los valores que puede adaptar cada uno de los tres pares hexadecimales van del 00 (0 decimal) al FF (255 decimal). Cuanto mayor sea el valor del par, tanto mayor será también la intensidad (matiz, brillo o claridad) del color correspondiente a ese par (y viceversa). Esto implica que el extremo inferior de la escala cromática parte de una intensidad de color mínima (nulo = par 00), pasa por una intensidad de color media (mediano = par 80 [128 decimal]) hasta llegar a una intensidad de color máxima (máximo = par FF). El grado de más alta pureza (absoluto) de un color primario aditivo estará determinado por la presencia del mismo junto con la ausencia total (nulidad = 00) de los otros dos colores primarios aditivos.

Además de estos tres colores primarios aditivos (RGB), existen tres colores primarios sustractivos o CMY (CMA en español):      Cian,      Magenta,      Amarillo. Estos colores surgen de la siguiente combinación (mezcla) de los primarios aditivos:

Cian = Verde + Azul
Magenta = Azul + Rojo
Amarillo = Rojo + Verde

En cuanto a su grado de pureza, ocurre algo inverso a los colores primarios aditivos, ya que su pureza absoluta estará determinada por la nulidad de uno de sus componentes y la presencia en la misma proporción de los otros dos. Los colores complementarios de los primarios, tanto aditivos como sustractivos, serán recíprocamente:

Rojo ↔ Cian
Verde ↔ Magenta
Azul ↔ Amarillo

La combinación simultánea de los tres primarios aditivos en su máxima intensidad produce el blanco (#FFFFFF). Contrariamente, la combinación simultánea de los tres primarios sustractivos nulos produce el negro (#000000). La combinación de dos colores mutuamente complementarios producirá el blanco en la síntesis aditiva (con luz), de igual modo que la sustracción (absorción) (con tintas o filtros) de ambos dará lugar al negro (ausencia total de luz). Así, p. ej., el rojo (#FF0000) más su complemetario que es el cian (#00FFFF), generan el blanco al ser mezclados aditivamente, y el negro al ser mezclados sustractivamente. De hecho, el cian no es otra cosa que la sustracción del rojo al blanco. Obsérvese el siguiente gráfico:

Por su parte, el gris medio (#808080), que es el exacto término medio entre el negro y el blanco, se obtendrá a partir de la combinación simultánea de los tres primarios aditivos en mediana proporción. Análogamente, el gris claro (entre el gris medio y el blanco) se obtendrá a partir de la combinación #C0C0C0, mientras que el gris oscuro (entre el gris medio y el negro) mediante #404040. De este modo, tenemos que el resto de los colores, que están comprendidos entre el negro (#000000) y el blanco (#FFFFFF), surgen de la combinación de los tres primarios aditivos en distintos grados. En otras palabras: bastará con reemplazar cada uno de los pares RR-GG-BB por un valor comprendido entre 00 y FF para obtener cualquiera de los colores posibles.

Existen 16 777 216 combinaciones distintas en el sistema RGB de 24 bits y, por lo tanto, 16 777 216 colores: 256 × 256 × 256 = 16 777 216. En la práctica, sin embargo, puede haber algunas combinaciones que no sean válidas. Eso pasaba antiguamente, cuando la paleta de colores más grande tenía 256 colores (8 bits). Por eso, existen 216 colores seguros, que serán visibles en cualquier dispositivo sin necesidad de tramado.

HSL

En el sistema de colores HSL los colores se miden por tres parámetros: hue (matiz o tono), saturation (saturación), y lightness (luminosidad), que determinan la posición de cualquier color en el cilindro de colores HSL. El primer parámetro (matiz) es el ángulo del color alrededor del eje del cilindro, con origen en el rojo, y aumentando en el orden: rojo (0º) en el origen, amarillo (60º) a un sexto, verde (120º) a un tercio, cian (180º) a un medio, azul (240º) a dos tercios, magenta (300º) a cinco sextos, finalizandose el ciclo con rojo de nuevo, a los 360º (orden R, G, B). El segundo parámetro (saturación) es la distancia horizontal desde el color hasta el eje (o lo que es lo mismo, la distancia desde un color hasta un punto en el eje con su misma luminosidad), y describe que tan "fuerte" o "intenso" un color es independientemente de su luminosidad, y el tercer parámetro (luminosidad) es la distancia vertical (altura) desde la base del cilindro hasta un color dado, y describe que tan claro u oscuro un color es (menor luminosidad = color más oscuro, mayor luminosidad = color más claro). El eje del cilindro es la escala de grises o escala acromática, que va del negro al blanco inclusive. En este sistema, todos los colores que se encuentren en el mismo plano perpendicular al eje del cilindro tendrán una misma luminosidad. Además, todos los colores con luminosidad = 0 % son equivalentes al negro, y todos los colores con luminosidad = 100 % son equivalentes al blanco, independientemente de su matiz o saturación. 

 

 CSS

Es un lenguaje informático especializado en definir y cohesionar la presentación de un documento escrito en un lenguaje de marcado como HTML o XML; por ello, puede ser aplicado a cualquier documento etiquetado en XHTML, SVG, XUL, RSS, etcétera.2​ Junto con el propio HTML y JavaScript, CSS está en la base de la tecnología usada por muchos sitios web para crear páginas visualmente atractivas, interfaces de usuario para aplicaciones web y GUIs para aplicaciones móviles.3

CSS está diseñado principalmente para marcar la separación del contenido del documento y la forma de presentación de este, características tales como las capas o layouts, los colores y las fuentes.4​ Esta separación busca mejorar la accesibilidad del documento, proveer más flexibilidad y control en la especificación de características presentacionales, permitir que varios documentos HTML compartan un mismo estilo usando una sola hoja de estilos separada en un archivo .css, y reducir la complejidad y la repetición de código en la estructura del documento.

 CSS fue propuesto por primera vez por Håkon Wium Lie el 10 de octubre de 1994.9​ Al mismo tiempo, Lie trabajaba con Tim Berners-Lee en el CERN.10​ Muchos otros lenguajes de hojas de estilos fueron propuestos al mismo tiempo, y las discusiones en las listas de correo públicas dentro del W3C dieron lugar a la primera Recomendación CSS por el W3C (CSS1)11​ en 1996. En particular, la propuesta de Bert Bos fue influyente; él fue el coautor de CSS1 y es reconocido como el cocreador de CSS.
   

Sintaxis

CSS tiene una sintaxis simple y usa un conjunto de palabras clave en inglés para especificar los nombres de varias propiedades de estilo. Una hoja de estilos consiste en una serie de reglas. Cada regla, o conjunto de reglas consisten en uno o más selectores, y un bloque de declaración.

Selectores

Los selectores declaran qué etiquetas se aplican a los estilos que coincidan con la etiqueta o atributo señalados en la regla.

Los selectores pueden aplicarse a:

  • Todos los elementos de un tipo, como los párrafos <p>.
  • Elementos seguidos de un atributo, en particular:
    • id: identificador, un identificador único para la etiqueta.
    • class: clase, un identificador para anotar múltiples elementos.

Las clases y los identificadores son sensibles a las mayúsculas, comienzan con letras, y pueden incluir caracteres alfanuméricos y guiones bajos. Una clase se aplica a cualquier número de elementos. Un identificador se aplica a un solo elemento.

Las pseudoclases son usadas en los selectores CSS para permitir el formateo usando información que no está incluida en el documento. Un ejemplo de una pseudoclase muy usada es :hover, que identifica el contenido que está siendo apuntado por un puntero, como el cursor del ratón. Este nombre se añade al selector, de esta manera: a:hover o #elementid:hover. Una pseudoclase clasifica elementos, como :link o :visited, mientras que un pseudoelemento hace una selección de elementos parciales, como ::first-line o ::first-letter.

Los selectores pueden ser combinados de muchas maneras para obtener una mayor flexibilidad y precisión. Múltiples selectores pueden ser unidos en una misma línea para especificar elementos por su ubicación, tipo de elemento, identificador, clase, o cualquier combinación de estos. El orden de los selectores es importante. Por ejemplo, div.myClass {color: red;} aplica a todos los elementos <div> con la clase myClass, mientras que.myClass div {color: red;} aplica a todos los elementos <div> que estén dentro de cualquier elemento con la clase myClass.

La tabla siguiente proporciona un resumen de la sintaxis de los diversos selectores, indicando su forma de uso y la versión de CSS en la que fueron introducidos:

Patrón Significado Nivel CSS
de aparición
E un elemento de tipo E 1
E:link un elemento E que es un enlace que no ha sido visitado (:link) o ya fue visitado (:visited) 1
E:active un elemento E que está realizando cierta acción por parte del usuario 1
E::first-line la primera línea formateada de un elemento E 1
E::first-letter la primera letra formateada de un elemento E 1
.c todos los elementos con class="c" 1
#myid el elemento con id="myid" 1
E.warning un elemento E que pertenece a la clase "warning" 1
E#myid un elemento E cuyo id sea "myid" 1
E F un elemento F descendiente de un elemento E 1
* cualquier elemento 2
E[foo] un elemento E con un atributo "foo" 2
E[foo="bar"] un elemento E cuyo atributo "foo" tiene un valor exacto de "bar" 2
E[foo~="bar"] un elemento E cuyo atributo "foo" tiene una lista de valores separados por espacios, y uno de ellos es "bar" 2
E:first-child el primer hijo de un elemento E 2
E:lang(eo) un elemento E cuyo idioma esté especificado en "eo" 2
E::before contenido generado antes del contenido del elemento E 2
E::after contenido generado después del contenido del elemento E 2
E > F un elemento F hijo de un elemento E 2
E + F un elemento E inmediatamente sucedido de un elemento F 2
E[foo^="bar"] un elemento E cuyo atributo "foo" tenga un valor que comience exactamente con la cadena "bar" 3
E[foo$="bar"] un elemento E cuyo atributo "foo" tenga un valor que finalice exactamente con la cadena "bar" 3
E[foo*="bar"] un elemento E cuyo atributo "foo" tenga un valor que contenga la subcadena "bar" 3
E:root un elemento E en la raíz del documento 3
E:nth-child(n) un elemento E, el n-esimo hijo de este 3
E:nth-last-child(n) un elemento E, el n-esimo hijo de este, contando desde el último hijo 3
E:nth-of-type(n) un elemento E, el n-esimo hijo de este, contando solo los del mismo tipo que el padre 3
E:nth-last-of-type(n) un elemento E, el n-esimo hijo de este, contando solo los del mismo tipo que el padre, y desde el último hijo 3
E:last-child el último hijo de un elemento E 3
E:first-of-type un elemento E, los primeros hermanos de su tipo 3
E:last-of-type un elemento E, los últimos hermanos de su tipo 3
E:only-child el único hijo del elemento E 3
E:only-of-type el único hermano del elemento E 3
E:empty un elemento E que no posea hijos (incluyendo nodos de texto) 3
E:target un elemento E de enlace siendo pulsado 3
E:enabled un elemento E de interfaz de usuario habilitado 3
E:disabled un elemento E de interfaz de usuario deshabilitado 3
E:checked un elemento E de interfaz de usuario marcado (válido para los checkboxs y los radiobuttons) 3
E:not(s) un elemento E que no coincide con el selector simple s 3
E ~ F un elemento E sucedido de un elemento F 3

Bloque de declaraciones

Un bloque de declaraciones consiste en una lista de declaraciones unidas. Cada declaración consiste en una propiedad, dos puntos (:), y un valor. Si hay muchas declaraciones en un bloque, un punto y coma (;) es insertado para separar cada declaración.

Las propiedades son insertadas en el estándar CSS. Cada propiedad tiene un conjunto de posibles valores. Algunas propiedades afectan a cualquier elemento, otras solo a un grupo particular de elementos. Los valores pueden ser palabras clave, como "center" o "inherit", o valores numéricos, como 200px (200 píxeles) o 80% (80 por ciento del ancho de la ventana). Los valores de colores son especificados por medio de una palabra clave (ej. "red"), de valores hexadecimales (ej. #FF0000, pudiéndose abreviar como #F00), valores RGB en una escala del 0 al 255 (ej. rgb(255, 0, 0)), valores RGBA igual que los valores RGB pero con soporte para el canal alfa de transparencias (ej. rgba(255, 0, 0, 0.8)), y valores HSL o HSLA (ej. hsl(000, 100%, 50%), hsla(000, 100%, 50%, 80%)).

Uso

Antes del desarrollo de CSS, toda la información presentacional de los documentos HTML era incluida en el código HTML. Los colores de las fuentes, los estilos de fondo, la alineación de los elementos, los bordes y tamaños eran descritos explícitamente, a veces de manera redundante, dentro del HTML. CSS permite a los diseñadores mover toda la información presentacional a otro archivo, la hoja de estilos, resultando en un código HTML notablemente más simple.

Por ejemplo, las cabeceras (h1), sub-cabeceras (h2 ej. red), sub-sub-cabeceras (h3), etc., son definidas estructuralmente usando HTML. En la impresión y las pantallas, la elección de la fuente, tamaño, color y énfasis para esos elementos es presentacional.

Antes de CSS, los diseñadores que deseaban asignar características tipográficas, por ejemplo, a todos los elementos h2 tenían que repetir el código presentacional HTML por cada elemento al que se le deseaba aplicar ese estilo. Esto creaba documentos más complejos, largos, más propensos a errores y difíciles de mantener. CSS permite la separación entre la presentación y la estructura. CSS puede definir el color, fuente, alineación del texto, tamaño, bordes, espaciado, capas y muchas otras características tipográficas, y pueden aplicarse distintos estilos de impresión y de pantalla. CSS también define estilos no visuales, como la velocidad de lectura y énfasis en los lectores de textos aurales. El W3C ha declarado obsoleto el uso de las etiquetas presentacionales HTML.

Por ejemplo, aplicando estilos mediante etiquetas presentacionales HTML, un elemento h1 definido con texto rojo se puede representar como:

<h1><span style="color:blue;"> Capítulo 1. </span></h1>

Usando CSS, el mismo elemento puede escribirse usando propiedades de estilo inline en vez de atributos y etiquetas de presentación:

<h1 style="color: red;"> Capítulo 1. </h1>

Una hoja de estilos CSS externa, descrita abajo, puede enlazarse con un documento HTML usando la sintaxis siguiente:

<link href="hojadeestilos.css" rel="stylesheet" type="text/css" />

El código CSS se puede incluir en el código HTML en la etiqueta <style> dentro de la etiqueta <head> del documento:

<style>
  h1 {color: red}
</style>

Fuentes

Los estilos CSS puede ser provistos desde varias fuentes. Esas fuentes pueden ser el navegador web, el usuario y el diseñador. La información del diseñador puede ser clasificada de las siguientes formas: inline, media type, importancia, especificidad del selector, orden de reglas, herencia y definición de propiedades. La información de los estilos CSS puede estar en un documento separado o puede estar embebido dentro de un documento HTML. Múltiples hojas de estilos pueden ser importadas al mismo tiempo. Los diferentes estilos pueden ser aplicados dependiendo de la salida del dispositivo usado en ese momento; por ejemplo, la versión para monitores puede ser diferente de la versión impresa, así que los diseñadores pueden aplicar diferentes estilos dependiendo del dispositivo usado.

La hoja de estilos con la máxima prioridad controla la visualización del contenido. Las declaraciones no establecidas en la fuente con máxima prioridad son sobrescritas, como las hojas de estilos del agente de usuario. Este proceso es llamado cascading, o cascada.6

Una de las metas de CSS es permitir a los usuarios un mayor control sobre la presentación. Algunas personas que encuentran a los encabezados rojos en itálicas difíciles de leer pueden aplicar una hoja de estilos diferente. Dependiendo del navegador y del sitio web, un usuario puede escoger entre varias hojas de estilo provistas por los diseñadores, o pueden remover todas las hojas de estilos añadidas y ver el sitio usando los estilos por defecto del navegador, o pueden sobrescribir solo el estilo de los encabezados rojos en itálica sin alterar otros atributos. 

Herencia

La herencia es una característica clave en CSS; basada en la relación ancestro-descendiente para operar. La herencia es el mecanismo por el cual las propiedades no solo se aplican a un solo elemento, sino también a sus descendientes. La herencia se basa en el árbol del documento, el cual es la jerarquía de los elementos XHTML en una página basada en el anidamiento. Los elementos descendientes pueden heredar los valores de las propiedades CSS de un elemento ancestro. En general, los elementos descendientes heredan las propiedades relacionadas al texto, pero las propiedades relacionadas con la caja no.

 Concepto: cascada y herencia CSS. Estilos de usuario. Importancia  !important. Ejemplos prácticos (CU01017D)

Ventajas

Por otro lado, algunas ventajas de utilizar CSS son:

Separación del contenido y la presentación
CSS facilita la publicación de contenido en múltiples formatos de presentación basado en parámetros nominales. Estos incluyen preferencias explícitas del usuario, diferentes navegadores web, el tipo de dispositivo usado para ver el contenido (una PC o un teléfono inteligente), la localización geográfica u otras variables.
Consistencia del sitio
Cuando CSS es usado efectivamente, en términos de herencia y "cascading", una hoja de estilos global puede ser usado para aplicar estilos a todo un sitio. Si más adelante estos estilos deben ser cambiados, los cambios pueden ser hechos solo con cambiar las reglas en la hoja de estilos global. Antes de CSS, esto era mucho más difícil, caro y más tardado.
Ancho de banda
Una hoja de estilos interna o externa, especifica el estilo para un conjunto de elementos HTML seleccionados por clase, tipo, o herencia. Esto es más eficiente que repetir información para cada ocurrencia del elemento. Una hoja de estilos externa usualmente es guardada en la caché del navegador, y puede ser usada en múltiples páginas sin ser cargada de nuevo, reduciendo la transferencia de datos a través de la red.
Formateo de página
Con un cambio simple en una sola línea, puede cambiarse la hoja de estilos para la misma página. Esto trae ventajas para la accesibilidad, además de que posibilita adaptar el sitio a diferentes dispositivos.
Accesibilidad
Sin CSS, los diseñadores web típicamente diseñaban sus páginas con elementos como tablas que dificultaban la accesibilidad para otros usuarios, y que iban en perjuicio de ciertos usos de los documentos, por parte de navegadores orientados a personas con algunas limitaciones sensoriales.

Frameworks de CSS

Los frameworks de CSS son bibliotecas preparadas para simplificar y mejorar el cumplimiento de los estándares en el diseño de páginas web mediante el uso del lenguaje CSS. Algunos de los frameworks de CSS más comunes son Tailwind, Foundation, Blueprint, Bootstrap, Cascade Framework y Materialize. Como ocurre en la programación con bibliotecas en los lenguajes de script, los frameworks de CSS se suelen incorporar como hojas de estilo CSS externas referenciadas a través la etiqueta <link>. Esto ofrece numerosas opciones listas para el diseño y la maquetación de una página web. Aunque muchos frameworks ya han sido publicados, algunos diseñadores los emplean principalmente para desarrollar prototipos rápidos, o con fines de aprendizaje, mientras que prefieren crear su propio código CSS de forma manual.
 

Comentarios