Archivo de la categoría: Html

HTML es un lenguaje usado en la codificación de páginas web basado en etiquetas (tags)

Html

Html

El lenguaje HTML (hypertext markup language) describe el contenido de una página web, incluyendo el texto, las imágenes, los vídeos, etc

Las especificaciones sobre el funcionamiento de la web las hace el W3C (World Wide Web Consortium). En su página web podemos encontrar toda la documentación sobre HTML y otros estándares de la red

Para la edición de páginas web podemos usar cualquier editor de texto

En windows el Bloc de notas o el Wordpad, en linux vi, joe, mcedit, etc

En ellos aprovecharemos las capacidades de cada uno de copiar y pegar. Existen multitud de editores web que nos facilitan la inserción de código HTML

Unos freeware, otros shareware y otros comerciales como Adobe Dreamweaver con el que se obtienen unas páginas más profesionales ya que cuentan con plantillas predefinidas que agilizan nuestra labor

Para desarrolladores avanzados tenemos Sublime Text, aunque puede ser poco amigable para el resto de desarrolladores

Entre los más amigables tenemos Brackets, que permite visualizar el código HTML automáticamente

Y Atom, como otra alternativa más, que ahora se está poniendo de moda

Hay que tener muy en cuenta el tipo de codificación que usemos con este lenguaje, ya que si al escribir nuestra página web usamos una codificación distinta a la del navegador web, podemos obtener una página con caracteres extraños o ilegibles

La opción más usada es la codificación UTF-8, que es el estándar para Internet y para sistemas Linux

Los sistemas Windows y MacOS utilizan otros tipos de codificación por lo que deberemos hacer coincidir la codificación en la cabecera del documento, con la que será mostrada en el navegador web

Estándares

HTML 1.0

Tim Berners-Lee en 1991 describe 18 elementos que incluyen el diseño inicial y relativamente simple de HTML. Trece de estos elementos todavía existen 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, por el IETF (Internet Engineering Task Force), de una primera proposición para una especificación del HTML: el borrador del Hypertext Markup Language de Berners-Lee y Dan Connolly, que incluía una Definición de Tipo de Documento SGML para definir la gramática

El borrador expiró a los seis meses, pero fue notable por su reconocimiento de la etiqueta propia del navegador Mosaic usada para insertar imágenes sin cambio de línea, que reflejaba la filosofía del IETF de basar estándares en prototipos con éxito. De la misma manera, el borrador competidor de Dave Raggett HTML+ (Hypertext Markup Format), de finales de 1993, sugería estandarizar características ya implementadas, como las tablas

HTML 2.0

La versión oficial para HTML fue hasta hace pocos años la HTML 2.0, denominado HTML+, comenzó a desarrollarse a finales de 1993. Se diseñó originalmente para ser un superconjunto del HTML que permitiera evolucionar gradualmente desde el formato HTML anterior

A la primera especificación formal de HTML+ se le dio, por lo tanto, el número de versión 2.0 para distinguirla de las propuestas no oficiales previas. Los trabajos sobre HTML+ continuaron, pero nunca se convirtió en un estándar, a pesar de ser la base formalmente más parecida al aspecto compositivo de las especificaciones actuales

Cumplía su función perfectamente, pero muchos usuarios del HTML querían tener un control mayor sobre sus documentos, tanto en el formateo del texto como en la apariencia de la página

HTML 3.0

Mientras tanto, Netscape, que era en esa época el líder indiscutible de los navegadores, introducía con cada nueva versión etiquetas y atributos no contemplados en el estándar oficial, creando descontento entre algunos desarrolladores

Debido a su amplia difusión y aceptación, otros navegadores intentaban copiar esas innovaciones, pero debido a que Netscape no especificaba completamente sus nuevas etiquetas, los resultados no eran distintos de los deseados. Lo que provocaba una gran confusión y numerosos problemas, cuando los desarrolladores utilizaban estos elementos y comprobaban que no funcionaba como querían en otros navegadores

El borrador del estándar HTML 3.0 fue propuesto por el recién formado W3C en marzo de 1995. Con él se introdujeron muchas nuevas capacidades; por ejemplo, facilidades para crear tablas, hacer que el texto fluyese alrededor de las figuras y mostrar elementos matemáticos complejos. Aunque se diseñó para ser compatible con HTML 2.0, era demasiado complejo para ser implementado con la tecnología de la época, y cuando el borrador del estándar expiró en septiembre de 1995, se abandonó debido a la carencia de apoyos de los fabricantes de navegadores web

HTML 3.2

El HTML 3.1 nunca llegó a ser propuesto oficialmente, y el estándar siguiente fue el HTML 3.2, que abandonaba la mayoría de las nuevas características del HTML 3.0 y, a cambio, adoptaba muchos elementos desarrollados inicialmente por los navegadores web Netscape y Mosaic. La posibilidad de trabajar con fórmulas matemáticas que se había propuesto en el HTML 3.0 pasó a quedar integrada en un estándar distinto llamado MathML

Cada vez era más evidente la necesidad de un nuevo estándar que fuera aceptado por todos. Se formó otro comité, el W3C, apoyado por los principales vendedores de software (entre ellos, IBM, Microsoft, Novell, Netscape, Sun, etc). El nuevo estándar fue desarrollado durante todo el año 1996 por el W3C con el sobrenombre de Wilbur, y finalmente, en Enero de 1997 fue aprobado como el HTML 3.2

El HTML 3.2 era totalmente compatible con el estándar anterior, pero incorpora muchas de las innovaciones de los navegadores comerciales (Netscape e Internet Explorer principalmente), tales como tablas, applets, texto que bordea las imágenes, entre otras, aunque no todas, como por ejemplo los frames

HTML 4.0

En Julio de 1997 se presentó el primer borrador público del estándar oficial HTML 4.0 (que tiene el nombre clave de Cougar). En él se incorporan las especificaciones sobre tablas, frames, scripts, hojas de estilo, accesibilidad por distintos medios, e internacionalización (incluyendo el uso de Unicode, en lugar del Latin-1)

En 1997, HTML 4.0 (que tiene el nombre clave de Cougar) se publicó como una recomendación del W3C. HTML 4.0 adoptó muchos elementos específicos desarrollados inicialmente para un navegador web concreto, pero al mismo tiempo comenzó a limpiar el HTML señalando algunos de ellos como deprecated (desaprobados)

HTML 4.0 implementa características como XForms 1.0 que no necesitan implementar motores de navegación que eran incompatibles con algunas páginas web HTML. En él se incorporan las especificaciones sobre tablas, frames, scripts, hojas de estilo, accesibilidad por distintos medios, e internacionalización (incluyendo el uso de Unicode, en lugar del Latin-1)

HTML 5.0

HTML5 especifica dos variantes de sintaxis para HTML: una «clásica», HTML (text/html), conocida como HTML5, y una variante XHTML conocida como sintaxis XHTML5 que deberá servirse con sintaxis XML (application/xhtml+xml). Esta es la primera vez que HTML y XHTML se han desarrollado en paralelo

En 2004 la W3C reabrió el debate de la evolución del HTML, y se dieron a conocer las bases para la versión HTML5. No obstante, este trabajo fue rechazado por los miembros del W3C y se daría preferencia al desarrollo del XML

Apple, Mozilla y Opera anunciaron su interés en seguir trabajando en el proyecto bajo el nombre de WHATWG, que se basa en la compatibilidad con tecnologías anteriores

En 2006, el W3C se interesó en el desarrollo de HTML5, y en 2007 se unió al grupo de trabajo del WHATWG para unificar el proyecto

La versión definitiva de la quinta revisión del estándar se publicó en octubre de 2014

Al no ser reconocido en viejas versiones de navegadores por sus nuevas etiquetas, se recomienda al usuario común actualizar su navegador a la versión más nueva, para poder disfrutar de todo el potencial que provee HTML5

Formato de una página Html

Formato de una página HTML

Su principio esencial es el uso de etiquetas (tags). Las etiquetas son palabras reservadas del lenguaje encerradas entre < >

Tipos de etiquetas

Hay tres tipos de etiquetas:

  • Pareadas
    cuando aparece una etiqueta de inicio y otra de final, los bloques contenidos entre el inicio y el cierre son elementos, que su vez pueden contener otros elementos

  • Sin parear
    cuando la etiqueta representa la inserción de un elemento, estas etiquetas terminan con una barra inclinada

  • Con final opcional
    son etiquetas pareadas en la cuales no es obligatorio emplear la etiqueta final

Las etiquetas pueden incluir atributos que modifican su comportamiento, especificando alguna característica singular del elemento o incluyendo información adicional

Los atributos se especifican como pares atributo=’valor’, separados por espacios dentro de la etiqueta de inicio

No es obligatorio que los valores estén encerrados entre comillas, pero sí es recomendable

Pueden utilizarse comillas simples o dobles indistintamente, siempre que coincidan su apertura y cierre

En el ejemplo se ha utilizado el atributo id, el cuál es genérico para cualquier etiqueta y que nos será de utilidad cuando usemos CSS y Javascript, ya que nos permite distinguir de forma única el elemento al que pertenece esa etiqueta concreta

Existen más atributos genéricos, como por ejemplo class, title o style, todos ellos muy útiles cuando queramos dar formato o mejorar la accesibilidad a nuestros elementos

Cuando introducimos una etiqueta que no existe, esta será ignorada, debemos prestar atención a este asunto porque dificulta la detección de errores

Las etiquetas pueden escribirse en mayúsculas o en minúsculas

No se consideran los saltos de línea ni los espacios en blanco extras. Esto último permite indentar el código para hacerlo más legible

Comentarios dentro del HTML

A veces es muy útil escribir comentarios en el documento HTML sobre el código que escribimos, nos pueden servir para recordar posteriormente lo que fue hecho, y que no queremos que se vea en pantalla

Esto se consigue encerrando dichos comentarios entre estos dos símbolos:

Los comentarios se pueden utilizar en cualquier parte del documento HTML, pero no se verá en pantalla

Caracteres especiales

Hay ciertos caracteres que un navegador no es capaz de reconocer a pesar de utilizar la codificación correcta

Imaginemos que queremos escribir el texto x > y dentro de nuestro HTML, sin embargo, el carácter > no será reconocido por el navegador o nos mostrará uno erróneo

Esto ocurre con un conjunto de caracteres que son especiales y que el navegador reconocerá utilizando la etiqueta específica de ese carácter con el siguiente formato &etiqueta;

En el ejemplo anterior, la etiqueta para el carácter > es gt, empezando por & y terminando por ;

En la siguiente web podremos consultar la lista completa de los 256 caracteres universales HTML

Cabecera de una página Html

Cabecera de una página Html

La cabecera está delimitada por el elemento head (que a su vez está contenido dentro del elemento html), en ella se describe información del documento (titulo, configuración, scripts y estilos)

Se coloca información del documento, que no se verá en la pantalla principal y puede ser:

  • Título del documento
  • Metadatos
  • Enlaces a otros archivos
  • Scripts
  • Estilos

Título del documento

El título debe ser breve y descriptivo de su contenido, pues será lo que vean los demás cuando añadan nuestra página a su agenda de direcciones (bookmark)

Esta etiqueta es obligatoria y que debe aparecer sólo una vez en nuestro documento

El navegador la visualizará en la barra de título de su ventana

En el ejemplo se ha introducido la palabra página acentuada y como todavía no se ha introducido el código de caracteres podría mostrar caracteres extraños, asegúrese introducir la etiqueta de caracteres especiales para evitarlo

Metadatos

Los metadatos son elementos introducidos con la etiqueta meta, el tipo de metadato se define mediante sus atributos, algunos de los más habituales son:

  • charset

    indica la codificación en la cual está escrito el documento

    Es importante que introduzcamos la codificación correcta para que el navegador visualice el documento correctamente

    En este ejemplo se ha usado la codificación UTF-8 que es la estándar para internet

  • author

    indica quien es el autor de la página, se especifica con los atributos name y content

  • keywords y description

    Ambas hacen referencia al contenido de la página y suelen ser usadas por los motores de búsqueda para indexar las páginas web

    Gracias a estos campos, que se especifican con los atributos name y content, los buscadores saben que términos de búsqueda describen mejor nuestra página web para mostrarsela al resto de usuarios

Enlaces a otros archivos

En la cabecera podemos indicar enlaces a otros archivos que queremos cargar junto con nuestra página web, para ello utilizamos la etiqueta link

Generalmente serán hojas de estilo CSS, archivos JavaScript, librerias adicionales en otros lenguajes o nuestros propios archivos

En el ejemplo se ha incluido la hoja de estilo CSS del tema twentyfourteen de wordpress, para ello se han usado los atributos:

  • rel

    para indicar que tipo de documento es, en este caso una hoja de estilo

  • id

    para asignarle un identificador único

  • type

    para indicar el tipo de texto que el navegador recibirá, en este caso una hoja de estilo CSS

  • href

    es la ruta relativa del documento o su ruta absoluta

En el ejemplo también se ha incluido una especificación para definir varios idiomas, los cuales utilizará el buscador para indexar usando correctamente el idioma en el que está escrita la página, para ello se han usado los atributos:

  • rel

    para indicar que tipo de documento es, en este caso una referencia para multisitio en varios idiomas

  • hreflang

    para asignarle un idioma, en este caso es para español en para ingles y x-default para el idioma por defecto para la página de inicio

  • href

    es la ruta relativa del documento o su ruta absoluta, en este caso se le añade el parámetro lang, empezando por ? para indicar las siglas del idioma

Scripts

El elemento script permite incluir código ejecutable en nuestra página web

Por defecto, el navegador tomará JavaScript como el lenguaje por defecto a ejecutar, si no especificamos otro

En el ejemplo se ha tenido en cuenta el caso de que el navegador no pueda usar scripts, ya sea por ser antiguo o que el usuario lo haya bloqueado en su configuración

Para ello hemos usado el elemento noscript, que en este caso mostrará el texto en el navegador en vez de ejecutar el script

En el ejemplo se ha utilizado un fichero externo para incluir el código ejecutable, utilizando la ruta absoluta o relativa en el atributo src

En muchas páginas web no se realiza la inclusión de los scripts en el head, sino en el body

La razón para acelerar la carga del HTML, ya que al encontrar un fichero externo tiene que leerlo y ejecutarlo, deteniendo el proceso de carga del resto del HTML

Imaginemos que tenemos el servidor saturado por la carga de los scripts, el usuario no recibiría nada del HTML y por tanto no vería la página, sólo una página en blanco

Por esta razón, algunos desarrolladores incluyen los scripts al final del documento, al final del elemento body

Como normalmente los scripts se encargan de la interacción con el usario, no es demasiado grave que haya una pequeña demora para empezar a ver las animaciones, enviar formularios, etc

Es más fácil para los usuarios si pueden ver el contenido y luego pueden interactuar con él

Estilos

El elemento style permite definir propiedades de estilos que se aplicarán a lo largo del documento

Como se puede ver en el ejemplo, con este elemento generalmente se indica lo que se espera aplicar, aunque también podremos incrustarlos dentro del propio HTML

También es posible utilizar una hoja de estilo externa, en este caso hemos utilizado la CSS del tema twentyfourteen de wordpress, especificando la ruta relativa o absoluta del archivo, en el atributo href

Cuerpo de una página Html

Cuerpo de una página Html

El cuerpo de una página HTML incluye los contenidos de la propia página web y se define con el elemento body

Existen gran cantidad de etiquetas que podemos usar en el body, a modo de consulta podemos usar este listado completo

Vamos a agrupar algunas de su etiquetas por:

  • Estructura del documento

    cabecera, sección, navegación

  • Estructura del texto

    títulos, parrafos, …

  • Caracterización del texto

    texto enfatizado, fragmentos de código, …

Estructura del documento

Normalmente toda página web tiene una cabecera de título, algún tipo de barra lateral de navegación, un contenido principal y quizás un pie de página

Para conseguir esta estructuración se puede utilizar el elemento div mediante divisiones

Una división no puede insertarse dentro de una etiqueta de nivel inferior, como las de estructuración y caracterización de texto, pero sí que puede insertarse dentro de otro elemento div

Gracias a las hojas de estilo y a los atributos genéricos id y class daremos formato a esas agrupaciones

La estructura de la web de ejemplo es bastante estándar y las divisiones que acabamos de ver se repiten constantemente

Por eso a partir de HTML5 se añadieron una serie de divisiones con significado para poder indicar más fácilmente como estructuramos la web

Elementos de estructura semántica

Estos elementos son análogos a las divisiones, pero además llevan asociado un significado relacionado con la estructura

En el ejemplo podemos ver que hemos podido sustituir algunas divisiones por una etiqueta equivalente

Algunas de las etiquetas de estructuración semántica más importantes son:

  • header

    representa la cabecera de un documento o sección

    Debe usarse para contener información introductoria

    Puede haber más de uno en el documento

  • footer

    representa el cierre de un documento o sección

    Suele contener información sobre el autor, copyright, términos de uso, información de contacto, etc

  • nav

    representa la sección que contiene los enlaces de navegación por el sitio web

  • section

    define una sección del documento

  • article

    representa un contenido independiente y autocontenido

    Por ejemplo los post de un blog, noticias, comentarios, etc

  • aside

    define contenido que se encuentra fuera de lugar en el que está contenido

    Como por ejemplo una barra lateral

    Suele estar relacionado con el elemento que contiene

  • figure

    define un elemento independiente como una imagen, un fragmento de código, un diagrama, etc

    Suele estar relacionado con el elemento que contiene, pero su posición es independiente del mismo

  • figcaption

    es el título o leyendo de un elemento figure

    Se suele poner como primer o último elemento del mismo

  • details

    representa una serie de detalles adicionales que el usuario puede ocultar

Elementos de estructuración del texto

Las etiquetas de estructuración del texto sirven para definir los encabezados de las secciones y los parrafos

Entre las etiquetas de bloque destacamos las siguientes:

  • p

    contiene el texto de un párrafo

    El navegador no muestra los espacios en blanco ni los saltos de línea adicionales que escribamos dentro del párrafo

  • hN

    define los encabezados de las secciones (hay 6 niveles, dónde N es de 1 a 6)

    Pueden configurarse cómo se visualizan los encabezados a través de CSS

    Normalmente se utiliza una fuente mayor cuanto más alto sea el nivel, siendo h1 el de mayor nivel

    Cambiando el número se pueden conseguir distintos efectos visuales al cambiar el tamaño de la letra

    Estos elementos se usan para estructurar el documento en secciones, subsecciones, etc

  • pre

    contiene un párrafo con texto preformateado, es decir, que aparecerá como si hubiera sido escrito con una máquina de escribir, con una fuente de espaciado fijo (Courier)

    Tiene en cuenta los espacios en blanco y los saltos de línea adicionales

    Puede ser útil para escribir párrafos con ejemplos de código fuente

    En el ejemplo hemos simulado una tabla, aunque para esa tarea es aconsejable usar mejor la etiqueta para tablas

    Se pueden simular otros tipos de elementos, ya que el texto se tomará de forma literal, pero es recomendable usar sus etiquetas específicas, siempre que estas existan

    Con lo que obtendremos:

    Texto
         Texto con tabulación
    
    Simulación de tabla
    
    columna1    columna2    columna3   columna4
    fila11       fila12     fila13     fila14
    fila21       fila22     fila23     fila24
    

  • blockquote

    se usa para incluir citas, que pueden contener varios párrafos u otros elementos

    Genera márgenes a izquierda y derecha, aunque se recomienda definir el formato deseado mediante una hoja de estilo

    En el ejemplo se ha utilizado el atributo cite para indicar el origen de la cita, en este caso la novela de Don Quijote de la Mancha, ya que hemos citado un párrafo del principio de la novela

    Con lo que obtendremos:

    En un lugar de la mancha de cuyo nombre no quiero acordarme…

  • tt

    conseguimos que el texto tenga un tamaño menor y la apariencia de los caracteres de una máquina de escribir (typewriter)

    No preformatea el texto, sino que únicamente cambia su apariencia

    En el ejemplo se ha escrito un párrafo y le hemos dado el aspecto de los caracteres de una máquina de escribir

    Con lo que obtendremos:
    A veces... veo muertos

Elementos de caracterización del texto

Se utilizan generalmente dentro de los párrafos

Sirven para definir el formato del texto, aunque gracias a las hojas de estilo, cada vez se utilizan menos

Se mantienen por compatibilidad con versiones antiguas de HTML, entre las más importantes destacamos:

  • br

    añade un salto de línea sin cambiar de párrafo

    No tiene etiqueta de cierre

    En el ejemplo se ha escrito un párrafo y dentro del mismo hemos usado el salto de línea

    Con lo que obtendremos:

    A veces…
    veo muertos

  • nbsp

    no es una etiqueta, sino más bien una forma de añadir espacios en blanco adicionales para que el navegador los reconozca

    Si queremos forzarle a que lo haga, debemos poner el código nbsp (non-breaking space)

    En el ejemplo se ha escrito un párrafo y dentro del mismo hemos añadido un espacio en blanco, pero hemos forzado la aparición de otro adicional

    Con lo que obtendremos:

    A veces…  veo muertos

  • center

    permite centrar un elemento, ya sea un párrafo, un texto, una imagen, etc

    Algunos navegadores más antiguos no lo soportaban, aunque actualmente se usa poco ya que muchos elementos incluyen un atributo similar que lo sustituye

    Otra causa de su desuso es porque es posible simularlo mediante hojas de estilo

    En el ejemplo se ha escrito un párrafo y hemos forzado su centrado

    Con lo que obtendremos:

    A veces… veo muertos

  • hr

    se obtiene una raya horizontal tan ancha como la pantalla, y con la apariencia de estar embutida sobre el fondo

    No tiene etiqueta de cierre

    En el ejemplo se ha escrito un párrafo y hemos añadido una raya horizontal para separarlo para simular que hay dos párrafos

    Con lo que obtendremos:

    A veces… veo muertos


    En un lugar de la mancha de cuyo nombre no quiero acordarme…

  • sup

    sirve para obtener una fórmula matemática que incluya un índice

    En el ejemplo se ha escrito un texto con una fórmula matemática en la cual le hemos asignado el índice 2

    Con lo que obtendremos:
    m2

  • sub

    sirve para obtener una fórmula matemática que incluya un subíndice

    En el ejemplo se ha escrito un texto con una fórmula matemática en la cual le hemos asignado el subíndice 2

    Con lo que obtendremos:
    m2

  • italic

    pone el texto en cursiva

    Se puede usar su forma corta i, ya que es equivalente

    En el ejemplo se ha escrito un texto en cursiva

    Con lo que obtendremos:
    A veces… veo muertos

  • em

    indica que se va a enfacitar el texto, normalmente se pone el texto en cursiva, aunque si usamos una hoja de estilo podemos elegir de qué forma será enfacitado

    En el ejemplo se ha escrito un texto enfacitado

    Con lo que obtendremos:
    A veces… veo muertos

  • bold

    pone el texto en negrita

    Se puede usar su forma corta b, ya que es equivalente

    En el ejemplo se ha escrito un texto en negrita

    Con lo que obtendremos:
    A veces… veo muertos

  • strong

    indica que se va a enfacitar más el texto, normalmente se pone el texto en negrita, aunque si usamos una hoja de estilo podemos elegir de qué forma será enfacitado

    En el ejemplo se ha escrito un texto con mayor énfasis

    Con lo que obtendremos:
    A veces… veo muertos

  • code

    incrusta código en medio de un párrafo de manera similar a pre, pero sin crear margenes a izquierda y derecha

    En el ejemplo se ha escrito un párrafo con el carácter especial de espacio en blanco, pero al incrustarlo como código, en la página se visualizará de forma literal

    Con lo que obtendremos:

    A veces…&nbsp;veo muertos

Listas en Html

Listas en Html

A menudo nos interesará presentar las cosas en forma de listas, ya que permiten hacer enumeraciones de elementos, usando una numeración o no, también crear definiciones de términos

Podemos escoger entre tres tipos distintos:

  • Listas numeradas

    sirven para crear una lista con números

  • Listas con viñetas

    sirven para crear una lista con símbolos o viñetas, no están numeradas

  • Listas de definiciones

    sirven para crear definiciones de términos, no están numeradas y pueden usarse para simular diccionarios

Listas numeradas

Las listas numeradas (ordered lists) sirven para presentar cosas en un orden determinado

En la lista resultante aparecerá automáticamente un número correlativo para cada elemento:

En el ejemplo se puede ver que la lista ordenada empieza con el elemento ol incluidos en su interior la lista de elementos li

Se ha usado el atributo type para especificar qué tipo de numeración queremos usar:

  • 1

    utiliza valores numéricos

  • a

    utiliza letras en minúscula

  • A

    utiliza letras en mayúscula

  • i

    utiliza números romanos en minúscula

  • I

    utiliza números romanos en mayúscula

Si no se especifica, el valor por defecto es 1

Se ha usado el atributo start para especificar a partir de qué número empieza la numeración, en este caso empieza a partir del número 3

Se ha usado el atributo value para especificar un valor concreto para ese elemento, en este caso el número 8

En el ejemplo también podemos observar que listas con numeradas pueden anidarse

Quedando como resultado:

  1. Mamíferos
  2. Peces
    1. Sardina
    2. Bacalao
  3. Aves

Listas con viñetas

Las listas con viñetas (unordered lists) sirven para presentar cosas que, por no tener un orden determinado, no necesitan ir precedidas por un número

En la lista resultante aparecerá automáticamente el símbolo o viñeta elegidos con el atributo:

En el ejemplo se puede ver que la lista ordenada empieza con el elemento ul incluidos en su interior la lista de elementos li

Se ha usado el atributo type para especificar qué tipo de viñeta queremos usar:

  • circle

    utiliza un círculo

  • disc

    utiliza un círculo con el interior hueco

  • square

    utiliza un cuadrado

Si no se especifica, el valor por defecto es circle

En el ejemplo también podemos observar que listas con viñetas pueden anidarse y además se han usado distintos tipos de viñetas para distinguir entre ellas

Quedando como resultado:

  • Mamíferos
  • Peces
    • Sardina
    • Bacalao
  • Aves

Listas de definiciones

Las listas de definición son apropiadas para glosarios (o definiciones de términos)

Gracias a este tipo de lista, pueden construirse sencillos diccionarios

En el ejemplo se puede ver que la lista de definiciones que empieza con el elemento dl incluidos en su interior la lista de elementos dt que representan la cosa a definir y los elementos dd que representan la definición de la cosa a definir

En el ejemplo no se ha incluido, pero también podemos anidar listas de definiciones

Quedando como resultado:

Sardina

Pez osteíctio del orden clupeiformes (Sardina pilchardus) del Mediterráneo y del océano Atlántico

De unos 25 cm. de longitud, verde azulado en el dorso, plateado en los flancos y en el vientre

Se consume fresco o en conserva

Bacalao

Pez marino osteíctio del orden gadiformes (Gadius callarias) que alcanza más de un metro de longitud

Enlaces

Enlaces

Los enlaces, hipervínculos o hiperenlaces permiten al usuario explorar de manera no secuencial, otras páginas web externas repartidas por todo el mundo por medio de enlaces hipertexto o partes de la misma web

Para ello utilizamos el elemento a que es un ancla (anchor)

En ejemplo se ha enlazado con la página inicial de esta web dónde el atributo href es el destino del enlace (es aconsejable usar las comillas (simples o dobles) para que el navegador entienda que es de tipo texto) y el texto dentro del elemento es el texto indicativo que aparecerá en la pantalla del enlace (con un color especial y generalmente subrayado)

Quedando como resultado:

Página de inicio

Se pueden distinguir tres tipos de enlaces:

  • Con dirección absoluta
  • Con dirección relativa
    • Dentro de la misma página
    • Dentro de nuestra web
    • Fuera de nuestra web
  • Correo electrónico

Con dirección absoluta

Si queremos enlazar con nuestra página u una página que esté fuera de la nuestra (es decir, que esté en un servidor distinto del que la tenemos alojada)

Es necesario conocer su dirección completa, o URL (Uniform Resource Locator)

El URL podría ser, además de la dirección de una página de Internet, una dirección de ftp, gopher u otro servicio de internet

El destino del enlace será en estos casos la página inicial o por defecto de esa página web, que normalmente será por defecto index.html, index.htm, index.php o index.asp, dependerá del lenguaje utilizado al escribir la página web

Por esa razón podremos omitir esa página de inicio y depende cómo esté configurado el servidor obtendremos la respuesta deseada o un error de tipo 404 de dirección incorrecta

En el ejemplo se ha enlazado con la página inicial de Microsoft mediante el URL de web segura HTTPS y se ha usado el atributo target con el valor _blank para indicarle al navegador que nos abra una nueva ventana con la página enlazada, así podremos ver ambas páginas sin perder el contenido que estábamos visualizando previamente

Es muy importante copiar estas direcciones correctamente (respetando las mayúsculas y minúsculas, pues los servidores son capaces de distinguirlas y pueden no reconocer la dirección que hemos escrito, devolviendonos el ya citado error 404 de dirección incorrecta)

También se ha utilizado el atributo rel con los valores noopener y noreferrer para que no sea guardada en la caché del navegador

Quedando como resultado:

Página inicial de Microsoft

Con dirección relativa

Puede ser que tengamos una sola página. Pero lo más frecuente es que tengamos varias páginas, una inicial (o principal) y otras conectadas a ella, entre ellas mismas o con otras externas que a su vez están conectadas consigo mismas y con otras externas

Dentro de la misma página

A veces, en el caso de páginas muy extensas, nos puede interesar dar un salto desde una posición a otra determinada

El destino del enlace, en este caso el sitio dentro de la página a donde queremos saltar, se sustituye por una marca (la palabra marca puede ser cualquier palabra que queramos, pero precedida del símbolo #)

Esta palabra (o palabras, ya que podemos utilizar más de una separadas con _) aparecerán en pantalla coloreada (en forma de hipertexto y si usamos una hoja de estilo CSS puede ser modificada según nuestras necesidades)

En el ejemplo se ha creado un enlace al final de esta misma página, al cuál podremos saltar hasta la etiqueta que hemos llamado final si pulsamos en el enlace

Para que funcione correctamente, también debe existir el enlace final, sino el navegador ignorará el enlace porque no sabrá a donde saltar

En el ejemplo tenemos el enlace que deberemos incluir, en la posición que queremos que se salte, para ello se ha utilizado el atributo name, con el valor elegido pero sin usar el símbolo #

Quedando como resultado:

Pulsa para ir al final

Dentro de nuestra web

También podemos ir a otra página de nuestra web alojada a nuestro servidor

En el ejemplo se ha enlazado con la página dentro de esta web que habla de la listas, hemos incluido en el atributo href la dirección relativa y unos parámetros, que van precedidos del símbolo ? y tienen el formato de variable=’valor’ y si tenemos más de uno, se separan con el símbolo &

Quedando como resultado:

Listas

En el ejemplo se ha enlazado con un lugar concreto de la página de listas, en concreto la que habla del listado con viñetas

Para ello, se ha utilizado el sistema de marcas explicado anteriormente

Quedando como resultado:

Listas con viñetas

En los ejemplos anteriores estábamos suponiendo que la página en la que escribimos la etiqueta y la página a la que queremos saltar estaban en el mismo directorio

Ya que pudiera ocurrir que hemos organizado el sitio Web con un directorio principal y subdirectorios auxiliares que cuelgan del mismo

Si la página a la que quiero saltar está en el subdirectorio subdir, entonces en el atributo href deberíamos haber escrito /subdir/pagina.html, indicando la ruta completa desde el directorio raíz hasta la página pagina.html

Y a la inversa, si queremos saltar desde una página a otra que está en un directorio anterior, en el atributo href deberíamos haber escrito ../pagina.html

En este caso, los dos puntos indican al navegador que se dirija al directorio anterior

Se debe utilizar el símbolo / para indicar los subdirectorios si se está trabajando con un servidor Unix, y el símbolo \, si se está trabajando con un servidor Windows, ya que el sistema de directorios se trata de distinta forma

Si queremos evitarnos las complicaciones derivadas de tener tanto subdirectorio, podemos guardarlo todo en el directorio raíz o en un único directorio

Sin embargo, esta práctica tiene el inconveniente de que todo esté más desordenado y si en un futuro queremos realizar modificaciones sea más complicado de encontrar los contenidos, que si lo hubiéramos ordenado por subdirectorios específicos con un nombre que sea descriptivo sobre su contenido

Fuera de nuestra web

Se aplica lo explicado anteriormente para las direcciones absolutas y dentro de nuestra web, pero esta vez los enlaces no estarán alojados en nuestro servidor, sino en uno externo

Correo electrónico

Si queremos que nuestros usuarios se pongan en contacto con nosotros podemos incluir nuestra dirección de correo electrónico en un enlace

En el ejemplo se ha incluido dentro del atributo href la palabra reservada mailto seguida de dos punto junto con la dirección de correo electrónico del administrador de esta web

También se ha repetido la misma dentro de la etiqueta para que el usuario sepa que el enlace pertenece a un correo electrónico, de este modo reconocerlo fácilmente, aunque podría haberse usado un mensaje descriptivo o la imagen de un buzón (una metáfora que el usuario podría relacionar con el correo), por ejemplo

Quedando como resultado:

edrunner1@hotmail.com

Al pinchar el enlace veremos que el navegador intentará abrir el programa que tenga asociado para la gestión del correo, con la dirección del destinatario ya rellenada, que es la que aparecía en el enlace

También podemos añadir otros valores que serán usados por el gestor de correo utilizando palabras reservadas que van precedidas del símbolo ? y tienen el formato de variable=’valor’ y si tenemos más de uno, se separan con el símbolo &

Entre las más destacadas tenemos:

  • subject

    es el usuario destinatario del correo, por defecto será Feedback

  • cc

    simula una copia en carboncillo (Carbon Copy) se utiliza en caso de haber más de un destinatario, deberíamos indicarlos aquí separándolos con el símbolo ;

    Los destinatarios serán capaces de ver quienes son el resto de destinatarios

  • bcc es similar a la copia en carboncillo (Carbon Copy)

    En este caso la copia está oculta y los destinatarios no serán capaces de ver quienes son el resto de destinatarios

  • body

    es el texto del correo en sí, el gestor de correo podría ignorarlo o añadirle algo, como un mensaje de despedida o una firma, así que no siempre será igual al que nosotros hayamos escrito en el enlace

Final

Esta es la marca de final (no contiene un enlace real ya que es una referencia de enlace, pero como tiene texto, aparecerá subrayado como si lo fuera) para el ejemplo anterior del sistema de marcas explicado anteriormente

Imágenes en Html

Imágenes en Html

Las imágenes de una página web son conocidas como mapas de bits y pueden representar iconos, botones, imágenes con zonas transparentes o fotografías

Dependiendo del nivel de compresión utilizado perderemos calidad, por eso debemos saber elegir el formato más adecuado a nuestras necesidades:

  • png

    es un formato de compresión sin pérdida que además soporta transparencias

    Podemos representar iconos o imágenes con zonas transparentes por lo que es una buena alternativa para cualquier tipo de imagen que no sea una fotografía

  • jpg o jpeg

    es un formato de compresión con pérdida que no soporta transparencias

    Se usa normalmente para fotografías

  • gif

    es un formato de compresión sin pérdida, pero está limitado a 256 colores

    Ocupa muy poco espacio y es idóneo para imágenes con poca calidad, como por ejemplo los iconos o botones

    Soporta transparencias y animaciones

Al igual que ocurre con la edición del HTML, necesitamos de un editor de imágenes para su manipulación

Existen editores comerciales y muy potentes como Photoshop, pero tambien podemos utilizar editores con una calidad similiar y de código libre como GIMP

Tambien tenemos la posibilidad de usar alguna herramienta que permita convertir entre los distintos formatos, como ImageMagick

El elemento para incluir imágenes en nuestra página web es img al cuál deberemos incluirle al menos el atributo src al que le indicaremos al navegador, mediante la ruta relativa o absoluta, el nombre de la imagen y mediante su extensión, el formato de la misma

En el ejemplo podemos ver que además del atributo src hemos utilizado width que nos permite especificar el ancho de la imagen

El atributo height que permite especificar la altura de la imagen

Y el atributo alt que introduce una descripción (una palabra o una frase breve) sobre la imagen

En principio se puede omitir, pero es beneficioso para aquellos que accedan a la página con un navegador en forma de sólo texto, ya que no serán capaces de ver la imagen, pero al menos podrán hacerse una idea sobre ella gracias a esa descripción

Quedando como resultado:

Web sobre Informática de Secarcam

Se pueden capturar las imágenes que nos muestra el navegador, con objeto de guardarlas permanentemente en nuestro disco duro

Desde el navegador, pulsamos sobre la imagen con la tecla derecha del ratón, nos aparecerá un menú en el que está la posibilidad de guardar la imagen en el directorio del disco duro que le indiquemos

En caso de que no nos interese que los usuarios puedan guardar las imágenes de nuestra web deberemos utilizar alguna técnica para evitar la pulsación de la tecla derecha del ratón mediante Javascript

Imagen usada como enlace

En algunos casos, también se utiliza una imagen como enlace a otra página

Con respecto a la localización del fichero de la imagen, se usa igual que como un enlace. Si no se indica nada especial, quiere decir que el fichero está en el mismo directorio que el documento HTML que estamos escribiendo

Se puede cargar una imagen que no esté en nuestro sistema siguiendo el mismo método que con los enlaces, se indica en la etiqueta el URL completo de la imagen. Aunque esto no es muy aconsejable, pues alargaría innecesariamente el tiempo de carga de nuestra página

Un aspecto muy importante a tener en cuenta es el tamaño de las imágenes, pues una imagen grande supone un fichero grande, y esto puede ocasionar un tiempo excesivo de carga, con el consiguiente riesgo de que quien esté intentando cargar nuestra página se canse de esperar, y desista de ello

En el ejemplo se ha usado un thumbnail (reproducción en miniatura de la imagen), que hace de enlace a la imagen en su verdadero tamaño

De esta manera no recargamos demasiado una página, y el usuario será quien decida qué imágenes desea cargar

Otra manera de conseguirlo es reducirla con un editor de imágenes a 150×75, guardarla con otro nombre, y luego hacer que la pequeña sea el enlace de la grande

Esta sería una solución si utilizamos una versión muy antigua de Netscape, ya que no reconocía los atributos width y height

Quedando como resultado:

En el ejemplo se ha usado la imagen para redirigirnos a la página de inicio, así podemos enlazar la imagen con la página deseada

También podemos usar iconos, botones o animaciones para realizar esta tarea

En el ejemplo también hemos usado el atributo border con el valor 0 porque sinó la imagen estará rodeada de un rectángulo del color normal de los enlaces, de esta manera, evitamos que aparezca ese rectángulo

Quedando como resultado:

Posicionando el cursor sobre esta imagen, comprobamos que actúa también como enlace aunque carezca del rectángulo de color. Esto puede resultar más estético, aunque se corre el riesgo de que el usuario no se dé cuenta de que la imagen sirve de enlace

Posición del texto con respecto a la imagen

Para elegir la posición de la imagen con respecto al texto hay distintas posibilidades

La más sencilla es colocarla entre dos párrafos, con el texto a un lado

Utilizando hojas de estilo CSS se pueden conseguir efectos más elaborados, como animaciones, movimiento, rotaciones, etc

Para escoger la posición del texto con respecto a la imagen se utilizaba el atributo align y permitía las siguientes posibilidades:

  • top

    el texto aparece alineado arriba

  • middle

    el texto aparece alineado en medio

  • bottom

    el texto aparece alineado abajo

Este atributo ya no es soportado en HTML5 y se ha incluido el ejemplo por compatibilidad con versiones anteriores, es recomendable utilizar una hoja de estilo para obtener este efecto o utilizando el elemento div

En el ejemplo se ha optado por usar el elemento div

Quedando como resultado:

Texto alineado arriba
Texto alineado en medio
Texto alineado abajo

Multimedia en HTML

Elementos multimedia en HTML

Los elementos multimedia que ofrece HTML5 permiten añadir audio y vídeo a una web, e incluso acceder a la cámara del PC o de dispositivos móviles para grabar vídeos o hacer fotografías

Durante muchos años estos elementos fueron demandados por los desarrolladores, ya que únicamente era posible reproducir elementos multimedia mediante plugins o addons que debían estar previamente instalados en el navegador

A partir del estándar HTML5 fueron incluidos los elementos:

  • video

    incrusta un vídeo en la página web

  • audio

    incrusta un clip de audio en la página web

La única restricción es que sólo podemos referenciar un archivo (para lo que usaremos su atributo src)

Pero permite incluir más de un formato de codificación (para lo que usaremos elementos source)

La inclusión de los elementos source es debido a las incompatibilidades entre los formatos de codificación de audio o vídeo admitidos por cada navegador, ya que debido a las distintas licencias, todavía no hay un estándar claro para internet

Actualmente, los formatos de audio más compatibles con los navegadores son:

  • WAV

    también conocido como WAVE es un formato de audio digital sin compresión de datos

    Fue desarrollado por Microsoft e IBM

  • OGG

    es el contenedor utilizado por los codecs digitales con pérdida:

    • Opus

      es un formato de código abierto

      Está estandarizado por el Internet Engineering Task Force (IETF)

    • Vorbis

      es un formato de código abierto

      Fue desarrollado por Xiph.org

  • MP3

    formato de compresión de audio digital

    Fue desarrollado por Moving Picture Experts Group (MPEG)

  • AAC

    también conocido como Advanced Audio Coding es un codec digital con perdida

    Sigue el estándar internacional ISO/IEC 13818-7 como una extensión del MPEG-2

    Es muy utilizado en dispositivos Apple

Mientras que para vídeo:

  • MP4

    archivos con el formato MPEG 4 con el codec de vídeo H264 y el codec de audio AAC

  • WebM

    archivos con el formato WebM con el codec de vídeo VP8 y el codec de audio Vorbis

  • Ogg

    archivos con el formato Ogg con el codec de vídeo Theora y el codec de audio Vorbis

Audio

En el ejemplo se ha referenciado la canción del grupo Amaral, Hacia lo salvaje, para ello se han utilizado cuatro elementos source

Se le ha indicado al navegador mediante el atributo src dónde puede localizar el archivo y su extensión y con el atributo type se le ha indicado qué tipo de archivo debe reproducir

En el ejemplo sólo se ha referenciado los tipos WAV, OGG, MP3 y AAC, pero podrían referenciarse varios archivos del mismo tipo pero con distintas calidades de audio

Dentro del elemento audio se ha incluido también un texto que será usado por defecto en el caso de que nuestro navegador no soporte ninguno de los tipos de audio indicados en los elementos source

En el ejemplo se ha utilizado el atributo controls, que es un atributo genérico que comparte con video

Entre los atributos más destacados para los elementos audio y vídeo tenemos:

  • autoplay

    la reproducción comienza en el mismo momento de la carga de la página

  • controls

    se añaden los controles de reproducción para que el usuario pueda controlarla

  • loop

    el archivo se reproduce de forma continua, es decir, cuando acaba la reproducción, se inicia de nuevo desde el principio

Vídeo

El ejemplo para el elemento video es muy similar al visto anteriormente para el elemento audio con la excepción de que se ha incluido un elemento object

Este elemento permite que navegadores que no soportan HTML5 puedan reproducir un archivo mediante el plugin de flash

Esta opción puede ser útil con navegadores antiguos que aún usen versiones anteriores de HTML

Aunque Google ha decidido eliminar el soporte para flash en su navegador Chrome, para fomentar el uso las nuevas capacidades para vídeo de HTML5

En Chrome sólo se puede usar flash bajo demanda, indicándolo explícitamente en su configuración y para las páginas web que el usuario de permiso

Tablas en Html

Tablas en HTML

Las tablas permiten representar información tabular, en filas y columnas, con cabeceras. Cada elemento de la tabla puede ser simple, o una agrupación de filas, columnas, cabeceras y pies de tabla, subdivisiones, cabeceras múltiples y otros elementos complejos

Como las tablas permiten un control muy detallado, a veces se usan para organizar la estructura general de una página web

Esta práctica no es recomendable, aunque era muy usada en el diseño hace algunos unos años

Es más recomendable utilizar elementos div para la estructura general de la página web

Una tabla se define mediante el elemento table

Las filas se definen con el elemento tr (table row)

Por cada fila se define una celda de elementos td (table data) para contener otros elementos, incluidas otras tablas (aunque no se recomienda, ya que puede obtenerse un resultado visualmente confuso)

En el ejemplo se han listado los números naturales del 1 al 9, rellenado con la primera fila una descripción y las siguientes con los datos

Quedando como resultado:

Número Ordinal
1 Primero
2 Segundo
3 Tercero
4 Cuarto
5 Quinto
6 Sexto
7 Séptimo
8 Octavo
9 Noveno

Spanning

En ocasiones necesitaremos combinar celdas, a esta práctica se la denomina spanning

Para agrupar o combinar celdas de una fila concreta (se aplican a elementos td), usaremos el atributo colspan asignandole como valor el número de celdas que serán usadas

En el ejemplo se han listado tres lenguajes y para resaltar la descripción se ha aplicado spanning sobre la primera fila

Quedando como resultado:

Lenguajes
HTML5 CSS JavaScript

Para agrupar o combinar filas de una columna concreta (se aplican a elementos tr), usaremos el atributo rowspan asignandole como valor el número de filas que serán usadas

En el ejemplo se han listado tres lenguajes y para resaltar la descripción se ha aplicado spanning sobre la primera columna, obteniendo una tabla similar a la del ejemplo anterior pero con los valores colocados en la segunda columna

Quedando como resultado:

Lenguajes HTML5
CSS
JavaScript

Elementos de una tabla

Para añadir complejidad a la tabla podemos añadir más elementos a la misma:

  • caption

    es el título o leyenda de la tabla

    Se muestra fuera de la tabla, por defecto arriba de la misma

    Se suele poner normalmente después del elemento table

  • thead

    sirve como cabecera de la tabla

  • th

    son unas celdas especiales que se usan sólo dentro de la cabecera de la tabla

  • tbody

    se suele usar después del elemento thead para distinguir la cabecera del cuerpo de la tabla

  • tfoot

    sirve como pie de la tabla

    Curiosamente, debe definirse antes de definir un elemento tbody

En el ejemplo se han aplicado todos los elementos que acabamos de definir, como puede apreciarse no hay mucha diferencia con la primera tabla que hemos puesto de ejemplo

Sin embargo, ahora todas sus partes están mejor localizadas y usando hojas de estilo CSS podemos darle un aspecto más atractivo para el usuario

En el ejemplo sólo se ha un valor más a la tabla que originalmente no existía

Gracias al elemento tfoot ahora tenemos la posibilidad de usando JavaScript, añadirle el resultado de cálculos o totales de los valores del resto de celdas

También podemos observar que las celdas dentro del elemento thead aparecen con un tamaño de fuente mayor y en negrita, porque son parte de la cabecera

Al igual que al inicio, gracias al elemento caption, tenemos una breve descripción de nuestra tabla

Quedando como resultado:

Números naturales del 1 al 9
Número Ordinal
10 Décimo
1 Primero
2 Segundo
3 Tercero
4 Cuarto
5 Quinto
6 Sexto
7 Séptimo
8 Octavo
9 Noveno

Formulario

Formulario

Un formulario es necesario en cualquier página web, pues permiten al usuario enviar datos al servidor

El ejemplo más común es el formulario de registro o login

Los formularios utilizan el elemento form

Dentro de este elemento estarán los controles que componen el formulario y será de esos controles de los que se extraerá la información que recibirá el servidor

A la hora de definir un formulario debemos indicar la URL la cuál recibirá los datos y qué tipo de método HTTP queremos utilizar

Disponemos de los siguientes atributos:

  • id

    es un identificador único, es muy útil para reconocer el elemento desde JavaScript o para procesarlo desde el servidor

  • name

    este será el nombre del dato que será enviado con la petición HTTP, podrá ser accedido desde JavaScript o desde la URL que se indicó en el atributo action para recibir los datos en el servidor

  • action

    normalmente contiene la URL de la aplicación que recibirá la respuesta en el servidor

    Por ejemplo un script en PHP, aunque también podría ser un archivo de código JavaScript

  • method

    tipo de método HTTP para enviar los datos al servidor

    Puede ser:

    • GET

      envía la información al servidor como parámetros dentro de la URL indicada en el atributo action

      Estos parámetros serán visibles en la barra de navegación y sólo es posible enviar hasta 500 bytes

      Por seguridad, se desaconseja utilizar este método, ya que los datos enviados quedan expuestos en la barra de navegación y alguien ajeno al usuario, podría manipularlos antes de ser procesados por el servidor

    • POST

      envía la información al servidor en la misma petición HTTP

      No tiene la limitación de tamaño en los datos enviados

      Permite enviar archivos adjuntos y los datos enviados no son visibles en la barra del navegador

      Se recomienda utilizar este método por seguridad, ya que dificulta la de los datos manipulación antes de ser procesados por el servidor, aunque sigue siendo posible

Elementos input

El elemento input sirve para crear la gran mayoría de los controles que pueden usarse en un formulario

Dependiendo de sus atributos podremos crear botones, casillas de verificación e incluso adjuntar archivos

La gran mayoría de estos controles son nuevos gracias al estándar HTML5 como el control de fechas, colores, etc; y funcionan a través de cuadros de diálogo específicos para cada navegador

A causa de esta circunstancia, es posible que difieran de un navegador a otro o incluso que no sean soportados si el mismo es muy antiguo o no soporta HTML5

Dispone de atributos generales que todos los elementos input poseen y atributos específicos para cada tipo de elemento

Atributos generales:

  • id

    es un identificador único, es muy útil para reconocer el elemento desde JavaScript o para procesarlo desde el servidor

  • name

    este será el nombre del dato que será enviado con la petición HTTP, podrá ser accedido desde JavaScript o desde la URL que se indicó en el atributo action para recibir los datos en el servidor

  • type

    es el tipo específico de control, este atributo le dice al navegador qué debe pintar en pantalla y qué atributos adicionales podría contener

    Así que es importante que si tiene atributos específicos para ese tipo, los elijamos correctamente o el navegador los ignorará al no entenderlos

  • form

    identificador del formulario, enlaza el control con el formulario mediante el valor de su atributo id

Atributos específicos:

  • checked

    indica que el control ha sido seleccionado

    Se utiliza sólo con las casillas de selección y las casillas de opción

  • autocomplete

    indica al navegador que complete el campo con los datos introducidos por el usuario anteriormente

    No puede utilizarse ni con las casillas de selección, ni con las casillas de opción, ni con los botones

  • list

    sirve para definir una lista de valores por defecto que se mostraran al usuario como posibles entradas al usuario

    No puede utilizarse ni con las casillas de selección, ni con las casillas de opción, ni con los botones

    Se utiliza asociando el identificador del control a un elemento datalist en el cuál enumeraremos los elementos que componen la lista

    Estos valores son de sólo lectura, el usuario no puede modificarlos ni añadir nuevos

    El elemento datalist no tiene asociada ninguna visualización, sin embargo puede asociarse mediante su id un elemento label con el que podremos visualizar el valor elegido de la lista

  • maxlenght

    indica la longitud máxima que podemos utilizar en el texto introducido

    Se utiliza con los controles de cuadro de texto o aquellos similares a él (text, password, email, url, tel, search, etc)

  • placeholder

    permite añadir un texto por defecto para dar una idea al usuario del tipo de control que es o de qué se espera que introduzca en el mismo

    Cuando se utiliza, no suele usarse el elemento label

  • pattern

    indica una expresión regular que será utilizada por el navegador para validar el valor introducido en el campo

    En caso de que el valor introducido no se ajuste a la expresión regular, mostrará un mensaje de error al usuario indicandolo

    Se utiliza con los controles de cuadro de texto o aquellos similares a él (text, password, email, url, tel, search, etc)

  • multiple

    se utiliza con los tipos email y file

    Permite incluir más de una dirección de correo electrónico o adjuntar más de un archivo

  • readonly

    impide que el campo sea modificado por el usuario

    El navegador lo mostrará ensombrecido para indicar al usuario que no puede ser modificado

    El valor del campo se recogerá obligatoriamente del atributo value, por lo que es necesario que tenga algún valor

  • required

    indica al navegador que el campo es obligatorio que tenga algún valor

    Es muy útil para realizar validaciones porque en caso de que el campo no haya sido rellenado, mostrará un mensaje de error al usuario

Cuadros de texto

Para crear un cuadro de texto al atributo type le asignaremos el valor text

Dispone del atributo específico value en el cuál se guardará el valor por defecto que será mostrado al usuario

No tiene etiqueta de cierre

En el ejemplo se ha especificado un esqueleto de formulario sin atributos, ya que no necesitamos que sea funcional para mostrar los distintos controles. Lo vamos a hacer con todos los ejemplos a partir de ahora

También se ha incluido un control de cuadro de texto con el atributo value con el valor por defecto Escribe algo aquí

Es una buena practica rellenar este valor para que el usuario tenga una ayuda visual de qué se espera que rellene en el control

Quedando como resultado:


También podemos utilizar el elemento datalist para mostrar al usuario una lista de valores por defecto como posibles entradas al control de texto

En el ejemplo se ha especificado una lista de colores que mediante el atributo list cuyo valor es el atributo id del datalist

Además podemos usar el atributo label para que se visualice una etiqueta con el contenido del valor seleccionado

Una vez seleccionado un valor, podemos comprobar que no podemos modificarlo ni añadir un valor nuevo, pero si borrarlo para elegir otro valor de la lista

Quedando como resultado:



Etiquetas descriptivas

En el ejemplo anterior veíamos como crear un cuadro de texto, pero para el usuario podría no quedar claro qué se esperaba que rellenase en el control

Para solucionarlo usamos el atributo value para mostrarle un valor por defecto

Pero podemos hacerlo mediante una etiqueta descriptiva, mediante el elemento label

Una etiqueta label estará asociada siempre a un elemento input

Podemos utilizar dos métodos para realizar esta asociación:

  • insertando el control dentro de la etiqueta label

    Quedando como resultado:


  • utilizando su atributo for que tendrá como valor el atributo id del control que queremos asociarle

    Quedando como resultado:


Contraseñas

Es similar al cuadro de texto pero para crear una contraseña al atributo type le asignaremos el valor password

En el ejemplo podemos ver que la principal característica de este control es que el contenido del cuadro de texto se camufla

Sin embargo, si utilizamos el método GET esa contraseña será visible en la barra del navegador

Por eso es aconsejable usar el método POST si vamos a introducir contraseñas

Tambien se ha incluido el atributo pattern que corresponde con una expresión regular que añade más seguridad en la validación si no cumple el formato de la expresión

En la expresión del ejemplo se ha forzado que al menos haya un número, una letra en minúscula, otra en mayúscula y que su longitud sea de ocho caracteres

Quedando como resultado:


Correo electrónico

Es similar al cuadro de texto pero para crear un correo electrónico al atributo type le asignaremos el valor email

En el ejemplo podemos ver que la principal característica de este control es que el contenido del cuadro de texto se valida y si se introduce una dirección de correo no válida, el navegador mostrará un mensaje de error

Tambien se ha incluido el atributo pattern que corresponde con una expresión regular que añade más seguridad en la validación si no cumple el formato de la expresión

En la expresión del ejemplo se ha forzado que al menos haya un número o una letra en minúscula antes de la @, al menos haya un número o una letra en minúscula antes del . y dos o tres letras despues del .

Quedando como resultado:


URL

Es similar al cuadro de texto pero para crear una URL al atributo type le asignaremos el valor url

En el ejemplo podemos ver que la principal característica de este control es que el contenido del cuadro de texto se valida y si se introduce una URL no válida, el navegador mostrará un mensaje de error

Quedando como resultado:


Teléfono

Es similar al cuadro de texto pero para crear un teléfono al atributo type le asignaremos el valor tel

En el ejemplo podemos ver que no hay ninguna diferencia significativa con respecto al cuadro de texto

Sólo podría aparecer algún icono o imagen especial generada por el navegador o mediante una hoja de estilo CSS

Quedando como resultado:


Búsqueda

Es similar al cuadro de texto pero para crear una búsqueda al atributo type le asignaremos el valor search

En el ejemplo podemos ver que no hay ninguna diferencia significativa con respecto al cuadro de texto

Sólo podría aparecer algún icono o imagen especial generada por el navegador o mediante una hoja de estilo CSS

Quedando como resultado:


Casillas de verificación

Para crear un conjunto de casillas de verificación al atributo type le asignaremos el valor checkbox

En este caso, el valor que aparece junto al botón será el mismo del atributo name y hay que usar el mismo para formar el grupo de selección exclusiva

No tiene etiqueta de cierre

En el ejemplo se ha especificado la elección de sexo y se ha marcado el sexo Woman por defecto usando la palabra reservada checked

Quedando como resultado:




Hay que tener en cuenta que si marcamos una casilla permanecerá marcada hasta que volvamos a desmarcarla, si queremos el efecto de que se desmarquen las opciones no elegidas, deberemos usar JavaScript

Casillas de opción

Para crear un conjunto de casillas de opción al atributo type le asignaremos el valor radio

En este caso, el valor que aparece junto al botón será el mismo del atributo name y hay que usar el mismo para formar el grupo de selección exclusiva

No tiene etiqueta de cierre

En el ejemplo se ha especificado un grupo de colores y se ha marcado el color Green por defecto usando la palabra reservada checked

Quedando como resultado:





Botones

Los botones normalmente se utilizan para controlar el envío y reinicio del formulario

Podemos añadir nuevas funcionalidades a nuestro formulario usando los botones para activarlas al pulsarlos

Para ello usaremos o una imagen o un botón genérico al que luego le asignaremos JavaScript o usaremos Jquery para facilitarnos la programación

Para crear un botón al atributo type le asignaremos el valor button

No tiene etiqueta de cierre

En el ejemplo se ha usado el atributo value para mostrar al usuario un texto y pueda reconocerlo

Y el atributo onclick que es un evento que permite al botón ejecutar código JavaScript, en este caso un aviso para el usuario de que el botón ha sido pulsado

Quedando como resultado:


Enviar el formulario

Para crear un botón para enviar el formulario al atributo type le asignaremos el valor submit

No tiene etiqueta de cierre

En el ejemplo se ha usado el atributo value para mostrar al usuario un texto y pueda reconocerlo

Este ejemplo no enviará nada al servidor porque no se han usado los atributos action indicandole la URL de destino ni method indicando el método GET o POST

Quedando como resultado:


También podemos simular el comportamiento de un botón submit a partir de una imagen

En el ejemplo se ha usado el atributo value para mostrar al usuario un texto y pueda reconocerlo

Este ejemplo no enviará nada al servidor porque no se han usado los atributos action indicandole la URL de destino ni method indicando el método GET o POST

Quedando como resultado:


Resetear el formulario

Para crear un botón para resetear el formulario al atributo type le asignaremos el valor reset

No tiene etiqueta de cierre

En el ejemplo se ha usado el atributo value para mostrar al usuario un texto y pueda reconocerlo

Si escribimos algo en el cuadro de texto podremos comprobar que si pulsamos el botón reiniciar el contenido del cuadro de texto vuelve a ser su valor por defecto

Quedando como resultado:



Adjuntar archivos

Para crear un botón que permita adjuntar archivos al atributo type le asignaremos el valor file

Este botón sólo será útil si hemos elegido el método POST y hayamos incluido al elemento form el atributo enctype=’multipart/form-data’

Además del botón aparece una etiqueta con el estado del archivo adjunto, que nos dirá si hay un archivo adjunto y en caso de haberlo su nombre y extensión

Al pulsar el botón se abrirá un explorador de archivos del sistema del usuario con el que podrá seleccionar el archivo que desea adjuntar

No tiene etiqueta de cierre

En el ejemplo se adjunta una imagen al formulario aunque no es funcional porque no se ha añadido el atributo action ni tiene un botón para enviar el formulario

Se ha usado el atributo acept para indicarle al navegador qué tipos MIME puede recibir el navegador cuando pulsemos el botón

En este caso sólo puede recibir imagenes de tipo jpeg y png

Quedando como resultado:


Números

Para crear un cuadro que fuerce al usuario introducir un número al atributo type le asignaremos el valor number

No tiene etiqueta de cierre

En el ejemplo se han usado los atributos:

  • min

    valor numérico mínimo que admite el cuadro

  • max

    valor numérico máximo que admite el cuadro

  • step

    controla el incremento en los números, si se omite, por defecto es 1

  • value

    valor numérico por defecto

Quedando como resultado:


Rangos

Para crear un rango de números que fuerce al usuario introducir un número aproximado al atributo type le asignaremos el valor range

No tiene etiqueta de cierre

En el ejemplo se han usado los atributos:

  • min

    valor numérico mínimo que admite el rango

  • max

    valor numérico máximo que admite el rango

  • step

    controla el incremento en los números, si se omite, por defecto es 1

  • value

    valor numérico por defecto

Quedando como resultado:


Paleta de colores

Para asignar un color a partir de una paleta al atributo type le asignaremos el valor color

No tiene etiqueta de cierre

En el ejemplo se ha utilizado en el atributo value el valor por defecto hexadecimal #FF0000

Quedando como resultado:


Calendario

Para asignar una fecha a partir de un calendario al atributo type le asignaremos el valor date

No tiene etiqueta de cierre

En el ejemplo se han usado los atributos:

  • min

    valor de fecha mínima que admite el rango de fechas

  • max

    valor de fecha máxima que admite el rango de fechas

  • step

    controla el incremento de fechas en el calendario, si se omite, por defecto es 1

  • value

    valor de fecha por defecto

Hay que tener en cuenta que el formato para fechas que admite el control es AAAA-MM-DD, es decir, A para un año con 4 dígitos, M para un mes de 2 dígitos y D para un día de 2 dígitos todos ellos separados con el símbolo –

Quedando como resultado:


Oculto

En ocasiones hay información que el desarrollador no quiere que el usuario sea capaz de ver, para ello se usan los campos ocultos

Son campos que el usuario no puede ver, pero que son enviados junto al formulario al servidor

Para asignar campo oculto al atributo type le asignaremos el valor hidden

No tiene etiqueta de cierre

En el ejemplo se envian tres campos ocultos dando al servidor información sobre el cliente, sin que aparezca esa información en el navegador del usuario

Quedando como resultado:




No deberíamos poder ver ninguno de los campos ocultos en el navegador, pero si usamos la opción de nuestro navegador Ver código, podremos ver que efectivamente, esos campos existen

Cuadro de texto de varias líneas

Es similar al cuadro de texto pero permite escribir más de una línea para ello utilizaremos el elemento textarea

En el ejemplo podemos ver que la diferencia más significativa con respecto al cuadro de texto es que podemos usar más de una línea

Además hemos especificado con el atributo rows el número de filas a 4, con el atributo cols el número de columnas a 50 y con el atributo maxlength el máximo de caracteres a 100

Quedando como resultado:



Listas de selección

El elemento select sirve para crear una lista desplegable de selección

Su esquema es muy similar a los cuadros de texto, aunque su contenido no puede ser modificado, sólo seleccionado

Los elementos option forman la lista y al servidor se enviará en valor de su atributo value

En el ejemplo se ha especificado una lista de selección de colores y se ha marcado el color Green por defecto usando la palabra reservada selected

Quedando como resultado:



Agrupaciones de elementos

El elemento fieldset sirve para agrupar elementos relacionados

En el ejemplo creado un grupo para contener el control de acceso de usuario mediante login

Se ha usado el elemento legend que sirve de título o leyenda del grupo

Se ha usado el atributo required para que los campos user y pass sean obligatorios y si tratamos de enviar el formulario, el navegador nos mostrará un mensaje de error

El resultado es un cuadro que contiene todos los controles y que tiene como título Login de Usuario

Quedando como resultado:

Login de Usuario