# Lenguaje HTML/El código

Como su nombre indica el HTML es un lenguaje de "marcado". Si tenemos un texto y queremos convertirlo en una página web hemos de ir añadiéndole marcas que identifiquen que es cada cosa y como debe ser mostrada.
Para esto el HTML nos proporciona tres conceptos: elemento, atributo y valor. Para representarlos usaremos las etiquetas.

## El elemento y sus etiquetas

Los tags o etiquetas tienen gran importancia en un documento HTML ya que brindan información especial que es utilizada para determinar la representación final del documento. Esto significa que donde se define una etiqueta en el código, algo sucederá en la representación del documento, algunas veces visualmente y otras de manera oculta.
Todas las etiquetas comparten el mismo formato: empiezan con el signo menor que "<" y terminan con el signo mayor que ">".
Por ejemplo: el elemento html tiene dos etiquetas:
La etiqueta de inicio <html> define el inicio del documento HTML.
La etiqueta de cierre </html> define el final del documento HTML.
    Estas etiquetas le indican al navegador que todo lo hay entre ellas debe ser interpretado como un documento HTML.
    La etiqueta final se diferencia de la inicial por el signo: /. Si no, no se podría saber cuándo empieza y termina un elemento <div>, ya que se pueden contener unos dentro de otros.
¡OJO! Elementos y etiquetas no son la misma cosa, las etiquetas son una plasmación textual de los elementos. Por ejemplo: el elemento html siempre esta presente en un documento HTML, sin embargo sus etiquetas son opcionales, pueden omitirse, aunque no es recomendable hacerlo.
También es necesario tener una lista impresa cuando se inicia el trabajo con html

## Los atributos y sus valores

Son las propiedades que se le pueden asignar a los elementos.
Por ejemplo, a html se le puede asignar un atributo para indicar en qué idioma está escrito el documento (lang) y podemos asignarle como valor un código de idioma ("es" para el español, "en" para el ingles...)
<html lang='es'>...</html>
O sea: <elemento atributo='valor'> ... </elemento>
Por supuesto un elemento puede tener varios atributos:
<elemento atributo='valor' atributo='valor'> ... </elemento>
   * Los atributos deben estar en la etiqueta inicial, nunca en la final.
   * El orden de los atributos dentro de la etiqueta es indiferente.
   * Deben separarse con un espacio en blanco del nombre del elemento y de otros atributos.
   * Atributo y valor deben estar unidos por el signo: =
   * Los valores deben estar encerrados con comillas, dobles o simples. Esto no es totalmente cierto pero actúa como si lo fuera.

## Explícito e implícito

El autor (tú, por ejemplo) puede asignarle atributos a un elemento de manera explícita, o puede no hacerlo. Si no lo hace, esto no significa necesariamente que el elemento no tenga atributos asignados. Es decir, el elemento puede tener atributos implícitos obedeciendo a la especificación del W3C, o más comúnmente, puede que la especificación otorgue libertad a las aplicaciones de usuario (navegadores, por ejemplo) para que le asignen atributos a los elementos según el criterio de la aplicación, siempre y cuando el autor no lo haya hecho. Lo dicho también es de aplicación a los valores: el autor puede asignar explícitamente valores a los atributos, si no lo hace...
Por ejemplo: cuando escribimos un texto, puede que necesitemos resaltar alguna frase o palabra importante. Para ello, HTML nos proporciona el elemento em para enfatizar texto, pero la especificación no indica la manera concreta de hacerlo; si el autor tampoco lo hace, la aplicación de usuario es libre de actuar. La mayoría de los navegadores muestran en cursiva el texto marcado con la etiqueta em, pero esto es sólo una elección de los navegadores, no una característica de em. Sucede lo mismo con la etiqueta strong, que normalmente se representa en negrita.
HTML se ha constituido en un OPC