miércoles, 19 de abril de 2017

Menú

Comentarios 0

Menú vertical en una columna con efecto hover

Para diseñar un menú vertical que se despliegue en una sola columna mediante efecto hover (posicionando el ratón sobre los menús) voy a modificar el código HTML inicial para adaptarlo a este tipo de menú.

El efecto es el siguiente,









-------------------------
Leer más »

miércoles, 20 de abril de 2016

Notas_Módulo 4_XML (HTML y XHTML)

Comentarios 0


HTML, XHTML y XML son los tres estándares de facto desarrollados por el World Wide Web Consortium, el W3C, un consorcio internacional que produce recomendaciones para la World Wide Web. Desde la publicación de la primera página web en diciembre de 1990, el lenguaje HTML ha ido
mejorando con nuevas versiones. En noviembre de 1995 se publicó HTML 2.0. En enero de
1997 HTML 3.2. Y en diciembre de 1997, apareció HTML 4. La última revisión, HTML 4.01, se publicó en diciembre de 1999. En enero de 2000 se publico XHTML 1.0, una reformulación de HTML 4 utilizando XML 1.0. Una revisión de XHTML 1.0 fue publicada en agosto de 2002.

 

XHTML

XHTML es el acrónimo de eXtensible Hypertext Markup Language (Lenguaje extensible de marcado de hipertexto). Es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas web.

XHTML es el lenguaje de marcado pensado para sustituir a HTML como estándar para las
páginas web. En su versión 1.0, XHTML es solamente la versión XML de HTML, por lo que tiene,
básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de
XML.

XHTML incorpora a las páginas web el rigor de XML lo que se traduce en un mejor procesamiento, un mantenimiento más sencillo y es el primer paso hacia la llamada web semántica.

XHTML 1.0 fue publicado en el año 2000, y en los siguientes años se desarrollaron numerosas tecnologías que lo complementaban o que lo iban a suceder. Desgraciadamente, todas estas tecnologías complicaron bastante el desarrollo y el uso de XHTML.

En el año 2004, algunos miembros de Apple, Mozilla Foundation y Opera Software fundaron el
Web Hypertext Application Technology Working Group porque no estaban contentos con la evolución de XHTML y con la falta de interés del W3C por las necesidades reales de los desarrolladores web. De forma independiente, este grupo empezó a desarrollar su propia visión de cómo debía ser la próxima versión de HTML.

A mediados del año 2009 se paró todo. En julio del año 2009, el W3C anunció que cuando el grupo de trabajo de XHTML 2, la próxima versión de XHTML, terminase su trabajo a finales de 2009, no iba a ser renovado, ya que el W3C quería aumentar los recursos destinados a HTML 5. Finalmente, en diciembre de 2010 el grupo de trabajo de XHTML 2 fue definitivamente cerrado.

En el año 2006, el W3C mostró su interés por participar en el desarrollo de HTML 5, y en el año
2007, el W3C formó un grupo de trabajo destinado a trabajar con el WHATWG en el desarrollo
de la especificación de HTML5. Por tanto, el W3C abandonó sus trabajos sobre XHTML 2.0, y pasó a centrar su interés en HTML 5, versión actual.

A pesar de todo existen millones de sitios web y miles de herramientas basados en XHTML.
Además HTML 5 se está desarrollando con dos sintaxis, una basada en XHTML y otra basada
en HTML. Por tanto, tiene mucho sentido seguir trabajando con XHTML


Diferencias que existen entre HTML y XHTML 1.0

En HTML 4 existen tres variantes del lenguaje: la versión estricta, la versión transicional y la
versión con marcos.
En XHTML 1.0 se conservan las tres variantes, pero claro están, con sus propios DOCTYPEs. Hay la versión estricta, la versión transicional y la versión con marcos.

Debido a que XHTML es una aplicación de XML, ciertas prácticas que eran posibles en HTML,
que está basado en SGML, ahora no son posibles.
  • Un elemento HTML se compone de una etiqueta inicial y una etiqueta final que tienen el mismo nombre. La etiqueta inicial puede llevar atributos, pero la final nunca lleva.  En HTML, los atributos pueden llevar un valor. Por último, las etiquetas pueden tener contenido: el contenido puede estar formado por otras etiquetas de HTML o puede ser simplemente texto como en este ejemplo.
    • En HTML los elementos anidados deben tener un correcto orden de apertura/cierre: el que se abre el último, debe cerrarse el primero. 
    • Esto es totalmente imposible en XHTML porque los elementos están superpuestos. La forma correcta de escribirlo en XHTML sería la siguiente. 
  • Los elementos, los nombres de elementos y atributos deben de ir siempre en minúsculas. Esto es debido a que XML diferencia las mayúsculas y minúsculas.
    • En HTML, es posible escribir las etiquetas y atributos en mayúsculas y minúsculas, sin ningún problema. 
    • En XHTML esto es totalmente incorrecto, todo tiene que estar escrito en minúsculas.
  • Los elementos vacíos deben cerrarse siempre: o bien aparece la etiqueta final, o bien la etiqueta inicial termina con />. 
    • En HTML, los elementos vacíos no llevan etiqueta de cierre. Por tanto, se pueden escribir directamente de esta forma. 
    • Sin embargo, esto es incorrecto en XHTML. En XHTML, o se cierra la etiqueta o se escribe con una etiqueta vacía. 
  • Los elementos no vacíos también deben de cerrarse siempre en XHTML. 
    • En HTML se permite no cerrar ciertos elementos, ya que se cierran de forma implícita.
    • Pero esto es totalmente imposible en XHTML.
  • Los valores de los atributos deben siempre ir encerrados entre comillas simples o dobles.
    • En HTML, los valores de los atributos se pueden escribir sin comillas.
    • Sin embargo, esto es incorrecto en XHTML, siempre hay que encerrar los valores de los atributos entre comillas dobles o comillas simples.
  • No está permitida la minimización de atributos. En aquellos casos en que el atributo no tiene definido un conjunto de valores, sino que simplemente está o no está, se usa el nombre del atributo como único valor posible. 
    • En HTML, es posible minimizar los valores de los atributos, y simplemente se escribe el nombre del atributo. Esto es totalmente incorrecto en XHTML. 
    • En XHTML se tiene que asignar siempre un valor y se toma la regla de asignarle como valor el mismo nombre del atributo.
  • El tratamiento de los espacios en blanco en los valores de los atributos varía en XHTML respecto a HTML:
  • Los espacios en blanco al principio y al final se eliminan. Y uno o más espacios en blanco,  incluyendo los saltos de línea, se traducen en un único espacio en blanco entre las palabras del valor de un atributo.
  • En XHTML, el contenido de la etiqueta <script> y <style> está definido como #PCDATA. Como resultado de ellos, los símbolos < y & se interpretan por parte del procesador de XML como inicio de etiqueta y como entidad de carácter. Si se encierra el contenido de script o de estilo con CDATA se evita este comportamiento. Como alternativa más cómoda, también se pueden almacenar en ficheros separados.
  • En SGML se pueden definir exclusiones: evitar que ciertos elementos sean contenidos en otros elementos. Esto no es posible definirlo en XML y, por tanto, tampoco en XHTML. En XHTML no se pueden definir de forma formal a través del DTD, sino que sólo se puede proporcionar en forma de lista.
  • En HTML 4, tanto el atributo name como el atributo id se pueden emplear para identificar un fragmento de código. En XHTML sólo es posible emplear el atributo id.
  • En HTML, el tratamiento de los atributos con conjuntos de valores predefinidos, como align o type, es no sensible a mayúsculas y minúsculas. Sin embargo, en XHTML sí que es sensible a las mayúsculas y minúsculas y se deben escribir siempre los valores en minúsculas.
  • En HTML, las referencias de entidad se pueden escribir como &X y el código hexadecimal o como &x y el código hexadecimal. En XML, y por tanto en XHTML, sólo se puede emplear la versión en minúsculas.


Leer más »

Notas_Módulo 4_Migrar un sitio web de una codificación a otra

Comentarios 0


En Windows no es fácil, un método posible es utilizar un editor de texto, como por ejemplo el Notepad++ y convertir fichero a fichero el sitio web.

En Linux y Mac OS X es fácil desde la línea de comandos. Por un lado, existe el comando file que permite conocer el tipo y la codificación de un fichero y por otro lado está el comando iconv que  convierte la codificación de un fichero de una codificación a otra.
Leer más »

Notas_Módulo 4_Proyecto

Comentarios 0


Los objetivos del proyecto son:
  • Mejorar el sitio web con la incorporación de nuevos elementos como las tablas, las imágenes y los nuevos controles de formulario de HTML5.
  • Comprobar que todas las páginas web están correctamente escritas y no presentan errores.
  • Publicar en Internet el sitio web formado por varias páginas conectadas mediante enlaces
Las tablas no se utilizan para distribuir el contenido de las páginas web: las tablas son para mostrar datos tabulados, no para maquetar el contenido de las páginas web. 
La maquetación se realizará mediante CSS ( Cascading Style Sheets.

También se puede mejorar los formularios de un sitio web con la incorporación de los nuevos
controles que añade HTML5. HTML5 ya es un estándar, fue publicado como recomendación el
28 de octubre de 2014 pero eso no significa que todas sus características se puedan emplear: no todos los navegadores actuales admiten las nuevas características y por supuesto existe un problema de
compatibilidad con los navegadores antiguos. Por tanto, antes de usar una nueva característica
es recomendable consultar algún sitio web en el que se pueda comprobar el grado de compatibilidad de las nuevas características de HTML5:

Por último, hay que escribir páginas web válidas, páginas web que se ajustan al estándar. Muchas personas han aprendido a hacer páginas web por la simple observación de cómo están hechas las páginas web y eso ha conducido a que se repitan malas prácticas. 
Por último, hay que publicar en Internet el sitio web.
Leer más »

Notas_Módulo 4_Importante escribir el código correcto

Comentarios 0


Internet Explorer 6 apareció en agosto de 2001 y resultó el peor navegador de la historia porque cumplía los estándares web como le daba la gana. Esto obligó a miles de desarrolladores web a invertir miles de horas para lograr que un sitio web fuese compatible con IE 6 y con el resto de navegadores que sí que cumplían los estándares.

Las principales causas por las que una página web no se ve igual en todos los navegadores son:
  • Fallos de los navegadores que pueden provocar errores.
  • Problemas de compatibilidad entre los navegadores que provocan diferencias de visulación.
  • Soporte de HTML por los navegadores. La especificación de HTML proporciona reglas de cómo se deben interpretar y visualizar los diferentes elementos y atributos del lenguaje pero en
    algunos casos existe espacio para la interpretación. El soporte para las nuevas etiquetas y atributos no es universal, por lo que puede ser que en algunos casos una página no se vea bien porque la página contiene alguna característica que no admite el navegador.
  • Errores en el código HTML.
De estas cuatro posibles causas, 
  • Las tres primeras están fuera del control de los desarrolladores web:
    • Las dos primeras dependen de los fabricantes de los navegadores, como la empresa Microsoft o la organización Mozilla.
    • La tercera depende en parte de los fabricantes, como es el caso de Microsoft que siempre ha tardado muchos años en actualizar sus navegadores y adecuarlos a los nuevos estándares, pero también depende de los usuarios cuando no se actualizan a los nuevos navegadores.
  • La última causa depende de los desarrolladores web, de las personas que escriben el código HTML.

 

Errores en el código HTML

Se debe comprobar siempre el código HTML de las páginas antes de publicarlas.
Los navegadores web son programas muy complejos y robustos que están preparados para manejar ciertos errores. Pero cada navegador los maneja de diferente forma, ya que la especificación de HTML no establece cómo se tiene que recuperar un navegador cuando encuentra un error en el código.

Por ejemplo, cuando no se cierra un párrafo, el navegador decide cerrarlo automáticamente cuando empieza un nuevo párrafo, ya que en las normas de HTML, un párrafo no puede contener otro párrafo.

Ante algunos errores los navegadores muestran el mismo comportamiento mientras que frente a otros errores hay diferencias importantes.
Este errático comportamientos de los navegadores frente a los errores de una página tiene su origen en el DOM, el Document Object Model. 

El DOM es una recomendación del World Wide Web Consortium, el W3C, el consorcio internacional que produce recomendaciones para la Web.

El Modelo de Objetos del Documento (DOM) es una interfaz de programación de aplicaciones (API) para documentos válidos HTML y bien construidos XML. Define la estructura lógica de los documentos y el modo en que se accede y manipula.

En DOM, los documentos tienen una estructura lógica que es muy parecida a un árbol; para ser más preciso, es más bien como un "bosque" o una "arboleda", que puede contener más de un árbol. Cada documento contiene cero o un nodo doctype, un nodo de elemento de documento, y cero o más comentarios o instrucciones de tratamiento; el elemento del documento sirve como la raíz del árbol para el documento.

Ejemplo,


















Los rectángulos representan nodos de tipo elemento, mientras que los óvalos representan nodos de tipo texto. La raíz del árbol es la etiqueta <table>, que contiene un sólo hijo con la etiqueta <tbody>, el cual a su vez tiene dos hijos, los cuales a su vez también tienen dos hijos.

Para entender por qué los navegadores se comportan de diferente forma debemos comparar el
DOM que construye cada navegador a partir del código HTML de la página.

Los navegadores construyen un mismo DOM, un mismo árbol, a partir de un código HTML correcto, pero cuando el código contiene errores, cada navegador puede construir un árbol diferente.



Leer más »

martes, 19 de abril de 2016

Notas_Módulo 4_Ejemplo formulario en HTML5

Comentarios 0

Estructura básica de un fichero HTML5 (ejemplo)

  • Lo primero es colocar siempre la declaración de DOCTYPE. Debe estar antes de la etiqueta <html>.
  • A continuación hay que incluir el elemento raíz <html>. Este elemento contiene el documento completo y únicamente el DOCTYPE está fuera de él. Debe contener dos elementos: <head> y <body>.
  • Con <lang> indicamos el idioma base de los valores de los atributos y del texto del contenido. Esta información puede ser utilizada por un agente de usuario de diferentes formas para controlar la presentación de la página. En este caso hemos asignado el español.
  • La etiqueta <head> es el contenedor de todos los elementos de cabecera. Debe incluir un título para el documento, y puede contener scripts, estilos, meta información, etc.
  • <charset> UTF8 sirve para especificar la codificación de caracteres de marcado del documento.
  • La etiqueta <title> es obligatoria en todos los documentos HTML y define el título del documento. Lo que significa que:
    • Define el título para la barra del navegador.
    • Proporciona un título para la página cuando ésta se añade a favoritos.
    • Y muestra un título para la página en los resultados de los motores de búsqueda.
  • La etiqueta <body> indica que se trata de la sección principal del documento. Está siempre definida después de la etiqueta de cierre del elemento head y antes de la etiqueta de cierre del elemento html.
  • El elemento <h1> define un encabezado de nivel 1. Existen 6 niveles de encabezado que ayudan a organizar la información de un documento. Se usa para definir un texto como un titular, más grande y destacado que cualquier otro texto.
  • La etiqueta <p> define un párrafo, por lo que los navegadores añadirán un margen antes y después de este elemento.
  • La etiqueta <form> se usa para crear formularios de entrada de datos en HTML. Este elemento puede contener uno o más de los siguientes elementos:
    • <input>
    • <textarea>
    • <button>
    • <select>
    • <option>
    • <optgroup>
    • <fieldset>
    • <datalist>
    • <output>
    • <label>
  • Finalmente, tenemos un tipo de <input submit> para definir un botón que nos permita enviar el formulario.
Después de la etiqueta <form>  se puede incluir un input de tipo “text” para incluir un nombre a rellenar por el usuario, que contiene los siguientes componentes:
  • Una etiqueta <label> que define una etiqueta para un elemento input. Esta etiqueta recibe el foco, automáticamente se lo cede al control asociado. Existen dos tipos de asociación de las etiquetas con los controles de formulario: asociación implícita y asociación explícita.
    • En la asociación implícita, la etiqueta debe estar colocada inmediatamente antes o después de su control en la misma línea (o encima del control si la línea es diferente) o el control debe estar dentro de la etiqueta.
    • En la asociación explícita, la asociación se realiza identificando cada control con un atributo id único y asociándolo a través del atributo "for" de la etiqueta <label> correspondiente. Las normas de accesibilidad WCAG 2.0 recomiendan usar la asociación explícita ya que algunas tecnologías asistivas no manejan correctamente las etiquetas implícitas. En este caso, la usamos de forma explícita.
  • Además tenemos un atributo “placeholder” para mostrar un texto por defecto dentro del campo. En este caso es un ejemplo de un nombre y un apellido.
  • Tenemos también un atributo “autofocus” para que sea el campo que recibe el foco automáticamente cuando se carga la página.
  • Después tenemos un atributo “autocomplete” para que se pueda seleccionar un valor introducido en este campo con anterioridad.
  • Y por último tenemos un atributo “required”, para definir este campo como obligatorio. Si no se rellena, el sistema nos avisa de que es un campo de entrada requerido.

También podemos añadir una contraseña obligatoria con un patrón establecido. Es un nuevo campo en nuestro formulario: el campo Contraseña, de tipo password. Tiene un texto por defecto que definimos con el atributo placeholder. Además, con el atributo required se define este campo como obligatorio, por lo que el sistema avisará si se intenta enviar el formulario sin haber rellenado este campo. Este nuevo elemento input de tipo “password” (contraseña) contiene los siguientes atributos:
  • Un atributo “pattern” para definir la estructura de la contraseña en base a una expresión regular definida.
  • Un atributo “placeholder” para mostrar un texto por defecto dentro del campo.  En este caso es un ejemplo de una contraseña válida según la expresión regular definida, lo que puede ayudar al usuario a entender que formato es el correcto para este campo de contraseña.
  • Y por último tenemos un atributo de tipo “required”, para definir este campo como obligatorio.

A continuación vamos a añadir tres tipos nuevos de input: uno de tipo “tel”, uno de tipo “email” y otro de tipo “url”, los tres con texto o un número definido como ejemplo para que el usuario sepa lo que debe introducir en este campo.
  • En el caso del campo teléfono, como no hemos definido una expresión regular con pattern, nos va a dejar introducir cualquier valor, y nos va a permitir enviar el formulario sin darnos ningún mensaje de error.
  • En el campo de email, sin embargo, la cosa cambia, porque si introducimos una dirección de correo no válida, el sistema nos advierte de que la dirección de correo electrónico no es correcta.
  • Para el caso de la página web ocurre lo mismo que con email. Si intentamos escribir una dirección que no es correcta, el sistema nos advierte de que la dirección url no es correcta. Sin embargo, si ponemos una dirección web correcta, el sistema nos permite enviar el formulario.

Vamos a añadir dos tipos de input más: un tipo “number” y el otro es un tipo "date".
Tendremos dos nuevos campos, el nº de temas (el tipo number) y la fecha de envío (el tipo date). 
En el caso del nº de temas, tenemos un valor definido por defecto de 2, mediante el atributo placeholder. Además tenemos un máximo y un mínimo por lo tanto no deja disminuir la cifra por  debajo de 2. El atributo máximo obliga a tener un máximo permitido de 14, y además con step solo deja moverse en cifras de dos en dos, en este caso, cifras pares.
En cuanto al campo de fecha de envío, si se pulsa se puede ver un calendario en el que se puede seleccionar una fecha, y que contiene una fecha mínima de 16 de julio de 2012, por lo tanto, antes del 16 de julio no deja seleccionar ninguna fecha. Esto se consigue con el atributo min dentro del tipo date.

  • El tipo number tiene los siguientes atributos:
    • min y max para fijar los valores mínimo y máximo respectivamente permitidos en el campo (en este caso el mínimo sería 2 y el máximo 14). 
    • Además tenemos el atributo “placeholder” para definir un número por defecto que aparecerá en el campo automáticamente.
    • Finalmente podemos ver que tenemos un atributo “step” que sirve para especificar los intervalos de valores válidos para el campo. En este ejemplo vale 2, y como su valor mínimo es 2, sus valores válidos para este campo serán: 2, 4, 6, 8, 10, 12 y 14.
  • El otro tipo de input es “date” con el atributo min para fijar una fecha mínima por defecto.

A continuación vamos a añadir tres campos más: el tipo “color”, el tipo “search” y un tipo “range”.
  • El tipo “color” contiene un atributo “value”, que permite especificar el valor por defecto. Su tipo de valor difiere según el tipo de input, por ejemplo, para “color” especifica el código hexadecimal del color por defecto, pero por ejemplo se puede ver en el tipo “submit” del botón enviar, lo que define en ese caso es el texto del botón.
  • En el caso del tipo de input search, se trata de un campo de búsqueda.
  • Y por se ha añadido un input de tipo “range”, que es un tipo de campo con un rango específico de valores, delimitado en este caso por los valores 1 de mínimo y 10 de máximo.
Como se puede ver hay tres nuevos campos en el formulario.
Uno es el de color, que cuando se pulsa permite seleccionar un color desde una paleta de colores, y al que se había puesto un color azul por defecto con su código hexadecimal y el atributo value.
En cuanto al campo de búsqueda, cuando nos colocamos en el campo y comenzamos a escribir, podemos ver que aparece el aspa, para borrar lo escrito hasta el momento.
Y en cuanto al tipo de input range, podemos ver que nos permite seleccionar un valor dentro de un rango de 1 a 10.


Ahora añadimos una agrupación de campos de tipo “radio”, lo que significa que solo 1 valor del grupo podrá ser seleccionado al mismo tiempo. Tenemos un grupo de tres.
  • La etiqueta “fieldset” se usa para agrupar elementos relacionados entre sí, dentro de un mismo formulario. Esta etiqueta dibuja una caja alrededor de todos los elementos agrupados.
  • Con la etiqueta “legend” definimos un título o leyenda para un conjunto de elementos agrupados mediante un fieldset. En este caso, la etiqueta “label” la estamos usando de manera implícita. No es incorrecto pero lo recomendado es usar la asociación explícita. Cada opción tiene un texto diferente definido mediante el atributo “value”.
  • Y por último, el atributo “checked” nos permite especificar qué elemento debe estar preseleccionado cuando la página se carga. Se usa en tipos de input “checkbox” o “radio”. En este grupo, podemos ver que el atributo “checked” está en la primera opción, definiendo por tanto que esta opción debe estar seleccionada cuando se carga la página.
Como podemos observar, ahora tenemos el nuevo campo o agrupación de campos, en el que tenemos tres opciones para seleccionar una prioridad. Este tipo de campo está enmarcado gracias a la etiqueta fieldset, y además debido a que son de tipo radio solo podremos seleccionar una opción cada vez.


Por último vamos a añadir una agrupación de campos de tipo “checkbox”, que a diferencia de los de tipo “radio”, permite que más de una opción sea seleccionada al mismo tiempo. Actúan individualmente como conmutadores.
  • Como en el caso de “radio”, se ha usado la etiqueta “fieldset” para agrupar los elementos
  • La etiqueta “legend” para dar un título a esta agrupación. 
  • Y se ha usado la etiqueta “label” de forma implícita. 
Cada opción tiene un texto diferente definido mediante el atributo “value”, y el atributo “checked” se ha colocado en la primera opción para que sea esta la que esté seleccionada por defecto.
Como podemos observar ahora en el navegador, ha aparecido una nueva agrupación de campos de tipo checkbox, que nos permite realizar una selección de cada una de las opciones individualmente, pudiendo haber más de una opción seleccionada al mismo tiempo. Además mediante la etiqueta fieldset se muestra un marco alrededor de la agrupación de campos.




Leer más »

lunes, 18 de abril de 2016

Notas_Módulo 4_Formularios en HTML5

Comentarios 0
HTML5 incorpora novedades muy interesantes para la creación de formularios.
  • Aumento de los tipos de controles (se añade un control para introducir una fecha o un correo electrónico)
  • Nuevas características que se pueden configurar (se puede definir un patrón de entrada o un placeholder) el problema es que no todos los navegadores las aceptan por ahora.
Formularios en HTML5


Nuevos controles y funcionalidades para Formularios en HTML5

  • url.
  • tel.
  • email.
  • number.
  • color.
  • search.
  • range.
  • datetime.
  • datetime-local.
  • date.
  • month.
  • week.
  • time.
Ahora con HTML5 se puede prescindir de JavaScript para realizar algunas validaciones de  formulario del lado del cliente. Se dispone de controles avanzados nativos que facilitan mucho el trabajo del desarrollador, porque no se tiene que preocupar por problemas de compatibilidad entre distintos navegadores.
Además esto supone un ahorro de tiempo y de ancho de banda, ya que,
  1. Permite que el formulario NO sea enviado si no es válido
  2. Permite informar al usuario de que alguno de los valores introducidos no cumple los requisitos definidos.
De este modo, para los usuarios los formularios tienen un comportamiento más intuitivo porque se pueden introducir "pistas" de los que se debe introducir en cada campo de entrada del formulario. Por ejemplo se pueden introducir calendarios para que el usuario establezca una fecha o seleccionar un color desde una paleta de colores.

Nuevos atributos para la etiqueta TYPE del elemento <input>

url

Se usa en los campos que deban incluir una dirección web. El valor del campo “url” es automáticamente validado cuando el formulario es enviado.
<input type="url" name="url">
Si no se introduce correctamente una url, el sistema informa al usuario de que la url introducida no
tiene un formato correcto.

tel

Se usa para definir campos en los que hay que introducir números de teléfono. No impone un patrón o sintaxis determinado porque los formatos de teléfono varían de un país a otro. Para validarlo con un formato numérico determinado  hay que usar pattern. Si el formato del número de teléfono introducido no se ajusta al formato, el sistema enviará aviso al usuario del error.
En el caso de los móviles, permite introducir un autocompletado o un acceso directo a la agenda del teléfono para seleccionar un número.
<input type="tel" name="telf" pattern="(+[0-9]{2}) [0-9]{9}"/>

email

Se usa para definir campos en los que haya que introducir una dirección de correo electrónico.
<input type="email" name="email" />
Igual que antes, si no es correcto el valor introducido por el usuario, el sistema enviará aviso del error.

number

Se usa para definir campos en los que haya que introducir un valor numérico. Puede contener atributos que realicen restricciones sobre el número, por ejemplo estableciendo un valor mínimo o máximo o un valor por defecto con value.
<input type="number" name="cantidad" min="1" max="5" value="2"/>

color

Se usa para definir campos en los que el usuario pueda seleccionar un color desde un paleta de colores. Si no se define un color previo toma por defecto el negro.
<input type="color" name="favcolor" value="#123456">

search

Se usa para definir campos de búsqueda en formato de texto, adquiriendo un aspecto gráfico más adecuado a su función. Al introducir texto en este campo, el navegador muestra una cruz a la derecha que permite al usuario borrar todo lo escrito hasta el momento.
<input type="search" name="buscador" />

range

Se usa para definir campos que deban incuir valores numéricos que estén dentro de un rango específico que definimos con los atributos min y max. También se puede usar el atributo value para darle un valor por defecto o el atributo step que define los rangos entre los que puede variar el valor (entre 1 y 10) por ejemplo.
<input type="range" name="puntos" min="1" max=10" />

datetime

Permite al usuario definir la hora completa así como el día y el mes, año y zona horaria.
<input type="datetime" name="fechahora" />

datatime-local

Igual que en el caso anterior pero no se incluye la zona horaria.
<input type="datatime-local" name="fechahora_usuario" />

date

Permite al usuario seleccionar una fecha concreta por mes, día y año
<input type="date" name="fecha" />

month

Permite al usuario seleccionar un mes de un año específico.
<input type="month" name="mes" />

week

Permite al usuario seleccionar una semana de un año específico.
<input type="week" name="semana" />

 

time

Permite al usuario seleccionar la hora en formato de horas y minutos.
<input type="time" name="hora" />


En los navegadores que no los soporten, estos type se comportarán como tipo text.
Para consultar compatibilidades, podemos acceder a las siguientes páginas,


Tipos de input dependiendo del disposito móvil

Dispositivos con pantalla táctil

  • tel_Cuando estamos en un campo de este tipo, se mostrará en pantalla un teclado numérico.
  • email_Cuando estamos en este tipo de campos, se mostrará en pantalla un teclado de texto (donde aparece la tecla de @ en el caso de iPhone).
  • url_Igual que para email y en el caso de iPhone el teclado mostrará la tecla / y .com


Nuevos atributos de contenido de HTML5 para <input>

  • Autocomplete
  • Autofocus
  • Min
  • Max
  • Step
  • Pattern
  • Placeholder
  • Required
 Estos nuevos atributos se emplean en los controlos de los formularios.

autocomplete

Se puede usar a parte de con el elemento <input>, también con el elemento <form>.
Nos permite especificar si un formulario completo o un campo de éste debe tener la opción de autocompletado activada o no. Cuando el autocompletado esté activado (es decir, cuando su valor sea “on”), el navegador completará automáticamente el campo con valores que el usuario haya introducido en ese campo en ocasiones anteriores. Si se desactiva (asignando el valor “off”) lo que se consigue es prevenir que un campo se autocomplete automáticamente, ya que en muchos casos este autocompletado puede causar problemas, incluso de seguridad.
Es posible tener el autocompletado a “on” en un formulario, y a “off” en uno o más campos dentro del mismo formulario (por ejemplo en el campo de contraseña), y viceversa.
Este atributo funciona con el elemento <form> y con los siguientes tipos de <input> : text, search, url, tel, email, datepickers, password, range, y color.

<form autocomplet="on">
<input type="email" name="email" autocomplete="off">


autofocus

Permite especificar en qué campo de entrada queremos que se coloque automáticamente el foco cuando se carga la página. Es un atributo de tipo booleano por lo que no se debe definir más de un elemento con este atributo en la misma página.
Este atributo puede suponer una ventaja en muchos casos, sobre todo a usuarios de teléfonos móviles, ya que permite al usuario comenzar a escribir de inmediato sin tener que hacer click en el campo, pero por otro lado, supone una desventaja para aquellos usuarios que utilizan la barra espaciadora para moverse hacia abajo por la página, ya que esto no sucederá si el foco está colocado automáticamente en un campo
Ya que el forzar la colocación del foco puede provocar problemas de accesibilidad y de usabilidad, en caso de usarse, se debe estar seguro de que el campo que lo contenga sea el campo que prácticamente la totalidad de los usuarios vayan a usar en primer lugar.
Por ejemplo, en la página principal de Google, lo más lógico es colocarlo en el campo de búsqueda, ya que en otro caso, estaríamos provocando problemas de usabilidad.
<input type="text" name="nombre" autofocus /> 

min / max

Sirven para delimitar un rango de valores numéricos, permitiendo especificar el valor máximo y mínimo para un campo de entrada. El campo no permitirá al usuario introducir un valor por encima del máximo ni por debajo del mínimo.
<input type="number" name="cantidad" min="2" max="14" > (entre 2 y 14)

Estos atributos funcionan con los tipos de <input>: number, range, date, datetime, datetimelocal, month, time y week.
Con date por ejemplo se puede establecer un mínimo o máximo
<input type="date" name="fecha" min="AAAA-MM-DD" max="AAAA-MM-DD">

step

Especifica los intervalos numéricos válidos para un elemento <input>. Este atributo puede ser usado junto con los atributos “max” y “min” para crear un rango cerrado de valores válidos de un campo.
En este ejemplo, donde “step” vale 2, y tenemos definido un valor por defecto (2), un máximo (14) y un mínimo (2), los valores válidos para el campo son 2, 4, 6, 8, 10, 12 y 14.
El atributo “step” funciona con los tipos de <input>: number, range, date, datetime

<input type="number" name="puntos" min="2" max="14" step="2" value="2" />

pattern

Permite validar un elemento <input> en base a una expresión regular (RegEx). Las expresiones regulares son modelos o patrones que describen las combinaciones de caracteres que se pueden introducir en el campo de texto (las que se tomarían como correctas).
Se puede usar el atributo global “title” para ayudar al usuario a comprender lo que debe escribir en el campo.
En el ejemplo podemos ver en primer lugar, el efecto de usar el atributo “title” mostrando un tooltip de ayuda, y a continuación, podemos ver cómo un campo que tiene una expresión regular definida avisa al usuario cuando el texto introducido no cumple dicha expresión regular.
El atributo “pattern” funciona con los tipos de <input>: text, search, url, tel, email, y password.

<input type="text" name="prefijo_pais" pattern=[A-Za-z]{3} title="Código de 3 letras" />

placeholder

Permite que se muestre una pista o ejemplo de lo que el usuario debe introducir en el campo de entrada, ya sea mediante un valor representativo o mediante una descripción corta del formato esperado en el campo. Esta pista se muestra en el campo mientras está vacío, y desaparece, bien cuando el campo recibe el foco (en Firefox por ejemplo) bien cuando se comienza a rellenar el campo (para el caso de Google Chrome).
El atributo “placeholder” funciona con los tipos de <input>: text, search, url, tel, email, y password.

<input type="text" name="nombre" placeholder="Juan García" />

required

Es un atributo booleano que, cuando está presente, especifica que el input que lo contiene debe ser rellenado por el usuario antes de enviar el formulario. Es el clásico campo obligatorio, que suele marcarse con un asterisco o con color rojo.
El atributo “required” funciona con los tipos de input: text, search, url, tel, email, date pickers,
password, number, checkbox, radio, y file.

<input type="text" name="nombre" required />



Modernizr y Polyfills

Modernizr es una librería Javascript que  nos permite conocer la compatibilidad del navegador del usuario con las nuevas características de HTML5 y CSS3. Si se presenta alguna incompatibilidad, lo detecta y permite tomar medidas para solventarlo.

Estas medidas se basan en los Polyfills que son librerías de Javascript que permiten cubrir las necesidades de HTML5 y CSS3 que los navegadores no soportan.
Cambian el HTML5 por otras teconologías soportadas por el navegador del usuario (por ej. Javascript).

Se puede descargar y encontrar ejemplos en la página web de Modernizr
Se puede encontrar la lista de los Polyfills más usados en esta dirección https://github.com/Modernizr/Modernizr/wiki/html5-Cross-Browser-Polyfills


Leer más »

sábado, 16 de abril de 2016

Notas_Módulo 4_HTML 5_De HTML4 a HTML5

Comentarios 0
  • Nuevas etiquetas semánticas que incorpora HTML5 y que definen la estructura de una página web.
  • Cómo transformar una página web de las versiones antiguas de HTML a la nueva versión HTML5.
 En las versiones anteriores de HTML se hacía un gran abuso de dos etiquetas, <span> y <div>.

<span>
Es muy común encontrarse situaciones como ésta
<h1><span class="heading">El título de la página</span></h1> o incluso se usa la etiqueta <span> para envolver todo el contenido de una página web, tras la etiqueta <body>

Se puede resolver omitiendo esta etiqueta y dejándolo así,
<h1 class="heading">El título de la página</h1> o <body class=""bodytext">...</body>

<div>
Es un error frecuente anidar <div> dentro de otras etiquetas <div>

HTML5 ha añadido nuevas etiquetas que evitan el abuso de uso de estas dos etiquetas anteriores y así estructurar correctamente una página web, como por ejemplo,
  • <header>_Para la cabecera en lugar de <div id="header">
  • <nav>_Para la barrra o menú de navegación en lugar de <div id="nav">
  • <main>_Para la zona de contenido principal en lugar de <div id="main">
  • <article>_Para las entradas o artículos en lugar de <div class="entry">
  • <section>
  • <aside>_Panel con información adicional. en lugar de <div id="news">
  • <figure>_Para las imágenes en lugar de <div class="figure">
  • <footer>_Para el pie de página en lugar de <div id="footer">



Código de la cabecera_<header>

En versiones anteriores se usaba 
<div id="header">
<h1>Mi blog</h1>
</div>

En muchos casos solo es necesario <h1>Mi blog</h1>  pero si necesitamos marcar específicament un encabezado, usamos,
<header>
<h1>Mi blog</h1>
</header>

Barra o menú de navegación del sitio web_<nav>

Es un conjunto de enlaces por lo tanto se debe etiquetar como una lista ordenada o no ordenada.
<nav>
<ul>
<li><a href="#">Principal</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contacto</a></li>
</ul>
</nav>

Panel con información adicional_<aside>

Contiene información que complementa la información principal y que no es esencial (avisos o anuncios por ejemplo>
<aside>
<p>El nuevo curso se inicia el próximo lunes</p><!-- Resto de las noticias -->
</aside>

Zona de contenido principal_<main>

Agrupa a todas las entradas.
<main>
<article>
<p class="post-date">Diciembre 26 de 2011</p>
<h2>
<a href="#" rel="bookmark" title="Enlace a esta entrada">HTML5 es lo mejor </a>
</h2>
<!-- Resto de la entrada-->
</article>
 <!--Otras entradas-->
</main>

Imágenes_<figure> y <figcaption>

Permite definir el contenido de una figura.
<figure>
<img src="foto.jpg" alt="Mi foto" />
<figcaption>Yo en la fiesta</figcaption>
</figure>
La etiqueta <figure> no sólo se emplea para etiquetar una imagen. También puede etiquetar otras cosas, como un fragmento de código, o una cita.

Pie de página_<footer>

Suele aparecer el correo de contacto, aviso legal, la información de copyright o similar.
<footer>
<p><a href="#">Contacto</a></p>
<p><a href="#">Aviso legal</a></p>
<p><a href="#">Copyright</a></p>
</footer> 
 

Leer más »

viernes, 15 de abril de 2016

Notas_Módulo 4_HTML5

Comentarios 0

HTML5 Introducción


El 28 de octubre de 2014 el W3C publicó "HTML5. A vocabulary and associated APIs for HTML and XHTML. W3C Recommendation 28 October 2014", A partir de este fecha HTML5 ya tiene el rango de estándar.

Existe ya una versión estable de HTML5, pero eso no significa que todos los navegadores web lo soportarán. Sobre todo los navegadores que tienen varios años no van a soportar muchas cosas de HTML5.
  • Nueva versión de HTML5
  • Problemas de compatibilidad que pueden existir con los navegadores
  • Consejos para HTML5.
La mayor parte de las etiquetas y atributos de HTML5 son de HTML4. Algunas han desaparecido, otras se han modificado ligeramente o han añadido atributos y otras son nuevas.

En la página de w3schools.com podemos ver las etiquetas de HTML que no están soportadas en HTML5 (están en rojo). También podemos ver las etiquetas de HTML5

Compatibilidad con navegadores

Se puede testear la compatibilidad de los navegadores con HTML5 en varias páginas web.
  • www.html5test.com se puede comprobar la compatibilidad de nuestro navegador o de otros navegadores. El resultado es muy mal para IE versión 11. También se puede ver una comparativa de distintos navegadores.
  • www.caniuse.com se puede comprobar la compatibilidad de HTML5, CSS y SVG con los distintos navegadores.
  • www.wufoo.com se puede verificar el funcionamiento de los nuevos controles de los formularios.

 Sitios para aprender HTML5

  • En Dive Into HTML5 se puede consultar. Se empezó a desarrollar en 2009 pero está actualizado solo hasta 2011. 
  • En HTML5 Doctor existe una copia que se intenta actualizar con las últimas novedades del lenguaje.
  • En w3schools.com existe un tutorial y una referencia de todas las etiquetas de HTML5.
  • En Idesweb.com también se pueden consultar muchos videos tutoriales.

HTML5_¿En qué consiste?

Las principales tecnologías de la familia HTML5 son:
  • HTML5.
  • Canvas.
  • SVG.
  • Geolocalización.
  • Caché.
  • Base de datos.
  • Web workers.

Introducción: Técnologías de desarrollo Web

La Web, es un sistema de distribución de información basado en hipertexto e hipermedia accesible a través de Internet.
Un elemento esencial de la web es HTML. Es un lenguaje de marcado que se emplea para crear las páginas web y que permite distribuir la estructura y el contenido de las páginas web (principalmente texto aunque también permite incluir otros objetos como imágenes y videos).
HTML es un estándar de facto desarrollado por el World Wide Web Consortium (W3C), un consorcio internacional que produce recomendaciones para la World Wide Web.  El desarrollo del lenguaje de marcado HTML ha ido parejo al desarrollo del World Wide Web Consortium, que fue fundado en 1994.
En Noviembre de 1995 se publicó HTML 2.0. En Enero de 1997 se publicó HTML 3.2. En Diciembre de 1997 se publicó HTML 4 y en Enero de 2000 se publicó XHTML 1.0 (reformulación de HTML 4 usando XML). Finalmente a mediados de 2007 el W3C empezó a trabajar en HTML5.

De todas formas las páginas web también hace uso de otras tecnologías como CSS (hojas de estilo en cascada), DOM (jerarquía de objetos) y JavaScript (lenguaje interpretado).

El uso combinado de todas estas tecnologías se conoce como DHTML (HTML Dinámico) que permite crear sitios webs interactivos.
  • HTML
  • CSS
  • DOM
  • JavaScript
También existe otras tecnologías como XHR (XMLHttpRequest que es un lápiz de programación), el metalenguaje XML y el formato de intercambio de datos JSON (se emplea para serializar estructuras de datos en JavaScript).

Todo ello se conoce como AJAX, una técnica de desarrollo web que permite crear aplicaciones interactivas que se ejecutan en el navegador. Permite crear páginas web en las que cambia su contenido sin que se tenga que recargar la página e incluye:
  • DHTML
  • XHR
  • XML
  • JSON
Desde hace unos años han aparecido varias alternativas a AJAX que realizan una función similar, como son,
  • HTML5
  • CANVAS
  • SVG
  • GEOLOCATION
  • CACHE
  • DATABASE
  • WEB WORKERS
A todas estas se le llaman HTML5 pero lo correcto es decir familia de tecnologías de HTML5.

Vamos a ver cada una de ellas,

HTML5

Es un lenguaje de marcado que se ofrece con dos sintaxis (HTML y XHTML)
Añade nuevas etiquetas y atributos que dan una mayor capacidad semántica al lenguaje.

CANVAS

Una de las tecnologías que añade HTML5 es el canvas (o lienzo) que incorpora una nueva etiqueta <canvas> que permite definir un área dentro de una página web en la que se puede dibujar mediante un API para JavaScript. Las posibilidades que ofrece esta tecnología son enormes. Por ejemplo, permite el desarrollo de juegos online, ya no es necesario el uso de Flash, o permite crear aplicaciones de dibujo.
Ej.   <canvas id="myDrawing" with="200" height="200">
        <p>El  navegador no admite canvas.<p>
        </canvas>

SVG

Es un lenguaje de etiquetas basado en XML que permite crear gráficos vectoriales y se pueden crear gráficos utilizando un lenguaje similar a HTML.

API

Es otra de las tecnologías de la familia HTML5, es el API de geolocalización para JavaScript, que permite obtener la localización del usuario, siempre que el dispositivo que utilice ofrezca esa información y siempre que el usuario lo permita.

CACHE

La tecnología de CACHE permite indicar aquellos recursos de una página web o una aplicación web que se desea que se almacenen de forma local. De esta forma se mejora el rendimiento y además permite descargar todos los contenidos necesarios y trabajar en local.

DATABASE

Esta tecnología de base de datos es un API que ofrece la posibilidad de almacenar información en local en el navegador mediante una base de datos SQL Lite. Con esta tecnología se pueden realizar aplicaciones en las que el usuario puede crear notas persistentes que conservan la posición y la información aunque se abandone la página web.

WEBWORKERS

Por último, los WEB WORKERS es otra API para JavaScript que permite crear múltiples hilos de ejecución que se ejecutan en paralelo.

De todas estas tecnologías, ¿cuáles podemos utilizar hoy en día?

Es difícil responder esta pregunta porque existen múltiples navegadores con múltiples versiones, cada uno con un nivel de soporte diferente. Pero hay algunos sitios web que nos pueden ayudar.
  • Por ejemplo, el sitio web “When can I use…” ofrece tablas de compatibilidad de HTML5, CSS3, SVG y otras características en diferentes navegadores y diferentes plataformas.
  • El sitio web “findmebyIP” ofrece los niveles de compatibilidad de diferentes navegadores en Windows y Macintosh. También nos permite conocer el nivel de compatibilidad de nuestro navegador, ya que lo detecta automáticamente y nos muestra las características de HTML5 que admite.
  •  El sitio web “The HTML5 Test” también permite conocer el nivel de soporte de nuestro navegador y de otros navegadores. Se diferencia de los anteriores porque ofrece una puntuación, lo cual hace que las comparaciones entre navegadores sea más sencillas.
  • Para aprender más cosas sobre HTML5, es recomendable el sitio web “HTML5 Rocks” desarrollado por Google. En él se encontrarán numerosos ejemplos y tutoriales de HTML5.




Leer más »

Notas_Módulo 4_HTML validación del código

Comentarios 0

Código HTML

HTML es un lenguaje que tiene su vocabulario y su gramática (reglas)
Los errores cometidos en HTML afectan a la visualización de la página, para detectar estos errores debemos hacer uso de la validación del código fuente de una página web.

El lenguaje HTML fue desarrollado por Tim BernersLee en el año 1990 tomando como base SGML.
Desde su nacimiento, el lenguaje HTML ha ido cambiando. Se han añadido y quitado etiquetas
y atributos, y el funcionamiento de algunas etiquetas ha ido cambiando con el paso del tiempo.


Versiones de HTML

A lo largo de los años, desde 1990, se han desarrollado varias versiones. Actualmente las versiones de HTML existentes son,
  • HTML 4.01
  • XHTML 1.0
  • HTML5 
  • HTML5.1 (10/03/16)


DOCTYPE y su valor

Antes de empezar a desarrollar una página web hay que decidir qué versión de HTML se va a utlizar.
Para indicar qué versión se utilizará, hay que usar la etiqueta <!DOCTYPE> al principio del código (lo primero que es registra en la página web). DOCTYPE debe ser la primera línea en tu código HTML.

El valor que se debe usar de DOCTYPE depende de la versión de HTML que se esté utilizando.
En este enlace de W3C, se puede ver una lista de las declaraciones de DOCTYPE recomendadas.

Si se usa la versión HTML4.01 hay que usar,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
      "http://www.w3.org/TR/html4/strict.dtd">

Si se usa la versión XHTML 1.0 hay que usar,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Si se usa la versión HTML5 hay que usar,
<!DOCTYPE HTML>

Los tres DOCTYPES (strict/transitional/frameses) que aparecen en la versión de HTML 4.01 y en XHTML 1.0 son variantes que existen dentro de una misma versión Para una nueva página web solo se debe usar la variante estricta. Las otras variantes, la transicional y la de marcos (frameset) son necesarias cuando se realiza la migración de un sitio web con una versión antigua de HTML a una versión moderna y se necesitan conservar ciertas características desaconsejadas.

 

Validación del código fuente

Existen varias herramientas gratuitas disponibles online, aunque también existen otras herramientas más sofisticadas de pago.

Una muy buena es la herramienta oficial que ofrece el World Wide Web Consortium, el W3C, el organismo internacional que vela por el correcto desarrollo de la Web. Su servicio de validación es muy sencillo de utilizar y permite validar una página web,
  • Introduciendo su URL si la página está publicada en la Web
  • Se puede subir el fichero con el código fuente
  • Se puede copiar directamente el código fuente. 
Otros interesantes son el validador del Web Design Group, y el validator.nu o validator.nu (HTML5)

Si una página web se visualiza de distinta forma según el navegador se debe a que contiene errores, de ahí la importancia de validar el código.

Cuando validamos una página y nos muestra una serie de errores, se debe empezar a solucionarlos por el primero, porque es muy probable que una vez solucionados los primeros, se resuelvan algunos posteriores.


Leer más »

jueves, 14 de abril de 2016

Notas_Módulo 4_Imágenes

Comentarios 0
Las imágenes son el elemento principal que confiere a la Web su carácter de hipermedia, es
decir, su capacidad de integrar en un único soporte (la página web), contenidos muy distintos
como texto, imagen, vídeo, audio y otros.
La etiqueta para insertar una imágen es <img>

Insertar imágenes <img>

 No hay grandes cambios en su sintaxis, entre los lenguajes HTML4/XHTML1.0 y HTML5 (aquí no está terminada, puede sufrir variaciones).

  • Atributos obligatorios en XHTML 1.0
    • src_indica la ruta en la que se encuentra la imagen
      • <img src="img/logo.gif" alt="Logo de la empresa" />
    • alt_es el texto alternativo que aparece en la página cuando la imagen no se puede cargar. Es muy importante para la accesibilidad de la página.
  • Atributos opcionales:
    • width y height_definen las dimensiones de la imagen (ancho y alto).
    • longdesc_indica la URL de una imagen que da una descripción larga  de esta imagen. También es muy importante para la accesibilidad de la página.
    • ismap y usemap_para definir mapas de imagen.
  • Atributos obsoletos:
    • align, border, hspace, vspace_no se recomiendan, hay que usar CSS en su lugar.
También se puede utilizar una imagen como fondo de algunos elementos, por ejemplo como fondo de una página <body background=""> o fondo de una tabla <table background=""> pero está totalmente desaconsejado, hay que usar CSS.

 Ejemplos,

<img src="foto.jpg" alt="Foto del equipo" />
Aquí se está insertando una foto en formato jpg que se encuenta en el mismo directorio en el que se encuentra la página web.

<img src="http://www.w3.org/Icons/w3c_home.png" alt="Logo del W3C" /> 
Aquí se incluye una foto en formato png que se encuentra en otro servidor web, por eso se debe incluir la ruta de acceso a la imagen.


Formatos de imagen con la etiqueta <img>

Depende del navegador, pero los estandar son,
  • JPEG
  • GIF
  • PNG 

Formato GIF

  • Es el más antiguo y el primero que se usó en las páginas web.
  • Compresión sin pérdidas.
  • Solo soporta paletas de colores (color indexado) con 256 máximo. Por eso se tiene que usar la técnica Dithering que representa una imagen como una fotografía con una variedad de colores casi infinita y con solo 256 colores. Esta técnica consiste en colocar dos puntos juntos con colores diferentes para crear la ilusión de que existe un tercer color. Por ejemplo, mediante la colocación de los puntos rojos y azules se logra la ilusión de que el color que hay es el violeta.
    El efecto final puede ser muy sorprendente y puede engañar al ojo humano, pero hoy no es muy necesario utilizar esta técnica ya que existen otros formatos de imagen que permiten el uso de millones de colores
  • Permite transparencia pero de 1 solo color.
  • Permite realizar animaciones sencillas y planas
  • Se usa para imagenes con pocos colores como logotipos, mapas, diagramas, elementos decorativos). 

Formato JPG/JPEG

  • Es uno de los más populares en la web.
  • Pemite trabajar con imágenes de más de 16 millones de colores y tamaños de ficheros muy pequeños. Esto es posible mediante el uso de algortimos de compresión con pérdidas. 12 y 24 bits de color real.
  • La compresión por lo tanto es con pérdidas. Esto supone que cuando se comprime una imagen y luego se descomprime, no se obtiene la imagen original sino una aproximación.
  • No permite la transparencia.
  • Permite el entrelazado
  • No permite realizar animaciones.
  • Se usa para imágenes complejas (reales) con muchos colores.

Formato PNG

  • Se creó específicamente para la web y ofrece muchas posibilidades.
  • La compresión es sin pérdidas pero los ficheros son de un tamaño superior a JPG.
  • Profundidad del color, 16-24-32-48-64 de color real.
  • Transparencia de 8 o 16 bits (canal alpha).
  • Permite el entrelazado.
  • No permite la animación pero existe MNG
  • El uso es el mismo que para GIF y JPG.

Mapas de imagen

Se llaman también imágenes sensibles en las que se han definido ciertas zonas activas (sensibles, calientes) que son enlaces a otras páginas.
Se pueden procesar en el lado del cliente (usemap) o en el lado del servidor (ismap).

Mapa de imagen en el cliente (usemap)

Se define con dos etiquetas de HTML
  • <map name="">_Se define el mapa de imagen con sus distintas zonas activas. El mapa de imagen debe tener un nombre, ya que ese nombre se emplea en la etiqueta <img> para
    relacionar el mapa de imagen con la imagen correspondiente.
  • <img usemap="" />_Se utiliza el atributo usemap para indicar el nombre del mapa que se quiere utilizar. Hay que usar # antes del nombre. Ej. usemap="#mar" />
 Cada zona activa o sensible del mapa de imagen se define mediante una figura geométrica.

Tipos de figuras geométricas 

<area>_Todas las zonas activas se definen con esta etiqueta. Tiene los siguientes atributos,
    • shape para indicar el tipo de figura geomética.
    • coords para indicar las coordenadas de la figura geométrica.
    • href para indicar la URL del destino del enlace.
    • alt para indicar el texto alternativo que representa la figura geométrica en el caso de que no se pueda ver.
                   <area shape="" coords="" href="" alt="" />

  • shape="rect"...Define un rectángulo que está definida por sus coordenadas (x1,y1) para su esquina superior izquierda, y (x2,y2> para su esquina inferior derecha. En HTML la coordenada superior izda. corresponde a la posición (0,0).
    • shape="rect"  --- coords="x1,y1,x2,y2"
  • shape="circle"...Define un círculo que está definido por las coordenadas (x,y) del centro y el radio r.
    • shape="circle" --- coords="x,y,r"
  • shape="poly"...Define un polígono, regular o irregular, definido por las coordenadas (x,y) de los vértices que forman el polígono. 
    • shape="poly" --- coords="x1, y1, x2, y2,......,xn,yn"






 Usos típicos de las imágenes en una página web

  • Mapas geográficos_Por ejemplo para incluir mapas de localización de oficinas, etc.
  • Barra de navegación cuando se crea una barra de menú especial, por ejemplo creada con iconos.
  • Página principal_Antes se utilizaba bastante en la página principal o portada de un sitio web en el que se daba a conocer cada una de las secciones del sitio web por medio de una imagen




Leer más »

miércoles, 13 de abril de 2016

Notas_Módulo 4_Tablas

Comentarios 0
Las etiquetas para crear tablas en HTML son,
  • Básicas (table, tr, th, td)
  • Avanzadas (thead, tbody, tfoot, caption, colgroup, col).
Una tabla HTML, tal y como explica Wikipedia, es una forma gráfica de representar información de manera esquematizada, ordenada y compacta.
Las tablas en HTML se organizan en filas y celdas.

Etiquetas básicas

 

<table></table>

 Estas etiquetas indican el inicio y fin de la tabla. El resto de etiquetas de la tabla deben estar entre estas dos.


<tr></tr> (Table Row)

Representa una nueva fila de la tabla.


<td></td> (Table Data cell)

Es la etiqueta de último nivel y se traduce en una celda de datos en la tabla.

<th> (Table Header cell)

Sustituye a las etiquetas <td> para celdas de cabecera. Se puede usar en el resto de la tabla pero se recomienda su uso en las primeras y últimas filas/columnas de la tabla.
También se puede usar para trabajar estilos, los navegadores destacan el texto de estas celdas en negrita.



Etiquetas avanzadas

 

<thead>

Agrupa una o más filas de cabecera


<tbody>

Agrupa filas de cuerpo (las que tienen el grueso de los datos).


<tfoot>

Agrupa filas de pie


Ejemplo de tabla







<caption></caption>


Añade un título sobre la tabla, como se ve en el ejemplo,



Igual que en los procesadores de texto, en HTML es posible combinar celdas.
 
Para ello utilizamos dos atributos de las celdas: colspan y rowspan.
Ambas esperan un valor entero que especifique cuántas columnas o filas, respectivamente, ocupa la celda.

Ejemplo,




Para que una celda pueda ocupar el espacio de otras es necesario que ese espacio no se rellene para no ocasionar desplazamientos de celdas.

<colgroup></colgroup>

Se usa para agrupar columnas de una tabla

<col />

Se usa para especificar diferentes atributos a las columnas de una tabla. Es útil para aplicar estilos a la columna entera en lugar de usar CSS en cada una de las celdas o filas.


Para dar estilos por columnas hacemos uso de las etiquetas colgroup y col.

El atributo span funciona de forma parecida en colgroup o col a como lo hacían colspan y rowspan para las celdas de la tabla.
El valor del atributo indica el número de columnas que agrupará colgroup o col.








  • Las etiquetas básicas para codificar una tabla en HTML son table para la tabla, tr para cada fila y td para las celdas. 
  • Para añadir un título a la tabla, utiliza la etiqueta caption entre las etiquetas table. 
  • Th, en sustitución de td, añade semántica especificando celdas de cabecera 
  • Las etiquetas para facilitar el trabajo posterior de CSS son las agrupaciones de filas: thead para las de cabecera, tbody para las filas de datos y tfoot para las del pie de la tabla, así como agrupaciones de columnas: colgroup y col. 
  • Los atributos colspan y rowspan de las etiquetas th y td sirven para extender las celdas y el atributo span de las etiquetas colgroup y col para extender columnas.

Consejos

1. Utilizar tablas HTML exclusivamente para representar tablas y no maquetar la página con tablas.
2. Repasar bien la combinación de celdas para evitar una mala codificación. 
3. Utilizar la agrupación de filas y columnas para que el posterior trabajo de estilo con CSS
resulte más sencillo.



Leer más »