miércoles, 7 de diciembre de 2011

92 - HTML - Vínculos <a></a>

HTML nos ofrece muchas de las posibilidades de publicación convencionales para la creación de documentos estructurados y textos enriquecidos.

La principal diferencia entre HTML y la mayoría de los otros lenguajes en cuanto al formato de documentos, es sus características para confeccionar documentos interactivos y formatos de hipertexto.

Aunque el “vinculo” es algo simple, es una de las principales características que ha hecho de la Web un éxito.

Un vínculo tiene dos “anclas” (en inglés: “anchors”), dos extremos, y una dirección.

Un vínculo comienza en el ancla de origen y apunta al ancla destino, que puede ser cualquier recurso de la web o de la propia página HTML.

Por defecto un vínculo está asociado a la redirección hacia otro recurso de la web. Normalmente se accede a este recurso buscado, seleccionando el vínculo (ya sea haciendo clic con el ratón, a través del teclado u otros métodos).

Cuando se activa este vínculo aplicando alguno de los métodos listados anteriormente (clic u otro), los usuarios acceden a los recursos a los que apunta el vínculo (ancla de destino).

En resumen podemos decir que un “vinculo”, permite conectar o acceder a otro recurso en cualquier otra web de cualquier parte del mundo o incluso nuestra propia web.

Los vínculos se crean con el elemento <a></a>

El elemento <a> </a> tiene las siguientes características:

  • Tiene etiqueta de inicio <a> y etiqueta de fin </a>.
  • El contenido del elemento se denomina ancla. (Si se trata de un texto, por defecto viene en color azul).
  • El atributo ‘href’ indica el ancla de destino, que puede ser cualquier tipo de recurso web.
  • El recurso de destino viene expresado por su URL (Localizador Universal de Recursos).

Ejemplo:

<a href="http://bobuu.blogspot.com">Este otro vinculo apunta a la página del blog bobuu</a>

Explicación del ejemplo:

<a : (Etiqueta de inicio)
</a> : (Etiqueta de fin)
href : (atributo href)
http://bobuu.blogspot.com : (URI destino: valor de href)
Este otro vínculo apunta a la página del blog bobuu (texto, imagen, etc)
Código de Ejemplo aplicando las características vistas anteriormente:

<html>
    <head>
        <title>Ejemplo de vinculo</title>
    </head>
    <body>
        <p>
          ejemplo de vinculo incompleto y completo: <br>
          <a>Aqui un enlace incompleto, porque no tiene dirección de destino</a>. <br>
          <a href="http://bobuu.blogspot.com">Este otro vinculo apunta a la página del blog bobuu</a>.
        </p>
    </body>
</html>

Programa 75

Ilustración 10 - Vinculos.
image

lunes, 5 de diciembre de 2011

91 - HTML - Tablas - Agrupamientos lógicos “colgroup" y "col”

Así cómo es posible agrupar lógicamente filas en las tablas, también podemos realizar agrupaciones lógicas de columnas verticales. Para esta tarea utilizamos los elementos <colgroup> y <col> indicando las columnas que forman parte del grupo.

Cuando no se encuentra la etiqueta <colgroup> el navegador entiende que todo forma parte de un solo grupo. Las propiedades definidas para un grupo solo afectaran a las columnas del grupo.

La etiqueta <colgroup> tiene los siguientes atributos:

span : Con este atributo especificamos el número de columnas que componen el grupo. Si no definiéramos este atributo el grupo contendría una sola columna. Para el caso de definirse uno o más elementos <col>, los navegadores ignoraran el atributo span.

width : Con este atributo podemos definir un ancho de columna por defecto, para el grupo. Además de los valores normales (pixel, porcentaje, etc.), este atributo permite el valor especial “ 0* ” (es un cero y un asterisco), esto le indica que el ancho de cada columna del grupo debe ser la mínima para alojar los contenidos de las columnas. O sea que antes de calcular el ancho de la columna se deben conocer los contenidos para que entren en ella. Al igual que con el atributo “span”, en caso de especificarse el ancho mediante un elemento <col>, será este el que determine el tamaño (el <col>).

Para definir un grupo de columnas utilizamos <colgroup span=”n”>, donde “n” es el número de columnas que forman el grupo (Ej: <colgroup span=”4”, esto determinaría un grupo de 4 columnas).

No es posible utilizar las dos formas de definir columnas (span y col) ya que en caso de utilizarse las dos, siempre <col> prevalecerá sobre “span”.

La ventaja de span sobre col es que con col debemos definir columna por columna, mientras que con span podemos por ejemplo definir 50 columnas de un ancho determinado de una sola vez, mientras que con “col” debemos hacerlo columna a columna (50 veces).

Es más fácil escribir:

<!--el ancho de las 50 columnas es de 15 px -->
    <colgroup span="50" width="15"> 
    </colgroup>
que:
    <colgroup> grupo de 50 columnas con ancho de 15 px...
       <col width="15">  primer columna, ancho 15 píxeles
       <col width="15">  segunda columna, ancho 15 píxeles
       . . . . . .

       repitiendo 50 veces las líneas hasta definir todas las columnas
      <col>... 

     </colgroup>


       repitiendo 50 veces las líneas hasta definir todas las columnas
      <col>... 

     </colgroup>

Si necesitamos diferenciar una columna de las del resto del grupo, debemos identificar el ancho de esa columna con un elemento <col>.

<colgroup width="20">
<col span="20" align="center">
<col id="formato diferente"> “id = número de la columna con formato diferente”
</colgroup>

El atributo width="20" del elemento <colgroup> se aplica a las veinte columnas.

El primer elemento <col> se refiere a las primeras 20 columnas, y alinea su contenido a la derecha, y el segundo asigna un identificador a la columna número “formato diferente” de modo que podemos hacer que una hoja de estilo haga referencia a ella.

Con el elemento <col> podemos compartir atributos entre varias columnas sin que ello implique ningún tipo de agrupamiento estructural.

El "campo de acción" del elemento <col> es el número de columnas que compartirán los atributos del elemento.

Los atributos disponibles del elemento <col> son:

span : El valor de este atributo debe ser un entero mayor que cero, especifica el número de columnas que "abarca". <col> comparte sus atributos con todas las columnas que abarca. De no aparecer este atributo <col> solo se refiere a una columna.

width : Especifica el ancho por defecto para todas las columnas abarcadas por el elemento <col>. Tiene el mismo significado que el atributo ‘width’ del elemento <colgroup> y prevalece sobre él.

Código de Ejemplo aplicando las características vistas anteriormente:

<html>
  <head>
    <title>Tabla - Ejemplo de Agrupamientos lógicos</title>
  </head>
  <body>
    <table border="1"  bordercolorlight="red" bordercolordark="maroon" >
      <caption>Tabla - Ejemplo de Agrupamientos lógicos</caption>
        <colgroup span="1" width="30" bgcolor="green" </colgroup>
        <colgroup span="2" width="40" bgcolor="yellow" </colgroup>
        <colgroup span="1" width="50" bgcolor="red" </colgroup>
        <tr>
         <th>Nombre</th>
         <th>Telefono</th>
         <th>Otros</th>
         <th>Comentarios</th>
        </tr>
        <tbody>
      <tr>
         <td>Expansion hacia abajo</td>
         <td>derecha</td>
         <td>centro</td>
         <td>texto justificado izq. y derecha</td>
      </tr>
      <tr>
         <td>Izquierda</td>
         <td>derecha</td>
         <td>centro</td>
         <td>texto justificado izq. y derecha</td>
      </tr>
      <tr>
         <td>Expansion hacia la derecha</td>
         <td>derecha</td>
         <td>centro</td>
         <td>texto justificado izq. y derecha</td>
      </tr>
        </tbody>
   </table>
  </body>
</html>



Programa 74

En ejemplo hemos definido tres grupos de columnas la primer color verde, las 2 siguientes amarillas y la tercera roja.

Ilustración 9 - Agrupamientos Lógicos en columnas.
image

Una forma muy común de agrupamientos que se pueden ver en las páginas web que se visitan, es insertar una tabla dentro de otra o una al lado de otra. Con esto logramos ubicar en nuestra página los diferentes elementos que la componen. Aunque se utiliza, el consorcio W3C, recomienda utilizar hojas de estilo para conseguir este resultado.

sábado, 3 de diciembre de 2011

90 - HTML - Tablas - Agrupamientos lógicos “thead, tfoot y tbody”

Podemos mediante la formación de grupos lógicos de filas, asignarles propiedades o cumplir una determinada función específica que solo afectaran a esas filas. Como ejemplo podría ser la composición de una cabecera o un pie de tabla.

Para estas funciones utilizamos los atributos “thead”, “tfoot” y “tbody”.

<thead>: Con “thead” podemos especificar un encabezado (head) en una tabla. Las filas que se incluyan entre las etiquetas de inicio y de fin de “thead”, aparecerán siempre como encabezado en la tabla. Solo se define un encabezado por tabla.

<tfoot> : Al igual que con “thead”, “tfoot” nos permite especificar el pie (foot) de la tabla. También al igual que en el encabezado las filas que se incluyen entre las etiquetas de inicio y de fin aparecerán siempre al final de la tabla. Sólo se define una vez por tabla.

<tbody> : Con esta etiqueta podemos agrupar la zona que falta, el cuerpo (body) de la tabla. Las filas que se incluyen entre las etiquetas de inicio y fin de esta etiqueta delimitan un grupo de filas con características comunes en cuanto a su contenido, esto nos permite atribuirles propiedades comunes para esas filas. A diferencia de “thead” y “tfoot”, con “tbody”, podemos definir todos los grupos de filas que consideremos necesarios.

Estas etiquetas son útiles para varias situaciones, que ya a cada uno se le ocurrirá, a modo de ejemplo podemos decir que se pueden aplicar para los casos donde se imprimen tablas largas y debemos repetir la información de la cabecera y el pie en todas las páginas que contengan datos de la tabla.

Es recomendable que en el pie (tfoot) y en el encabezado (thead), se incluya información relativa a las columnas de la tabla. Y el cuerpo de la tabla (tbody) debería contener filas de datos.

En el caso de estar presentes las tres etiquetas, cada elemento contiene un grupo de filas, y cada grupo debe tener como mínimo una fila.

Como nota cabe indicar que “tfoot” debe aparecer antes de “tbody” para que los navegadores puedan representar el pie antes de recibir todos los datos del cuerpo de la tabla.

<tbody> es siempre obligatoria, excepto cuando la tabla no tenga sección de cabecera ni de pie.

Código de Ejemplo aplicando las características vistas anteriormente:

<html>
  <head>
    <title>Tabla - Ejemplo de Agrupamientos lógicos</title>
  </head>
    <body>
       <table width="50" height="50" border="1"  bordercolorlight="red" bordercolordark="maroon" >
       <caption>Tabla - Ejemplo de Agrupamientos lógicos</caption>
                    <thead bgcolor="yellow">
                        <tr>
                     <th width="20%" >Nombre</th>
                     <th width="20%" >Telefono</th>
                     <th width="20%" >Otros</th>
                     <th width="20%">Comentarios</th>
                  </tr>
                    </thead>

                    <tfoot bgcolor="green">
                   <tr>
                     <td  colspan="4" align="center">Pie de tabla de ejemplo</td>
                   </tr>
                    </tfoot>

                    <tbody>
                        <tr>
                            <td  width="20%" align="left">Expansion hacia abajo</td>
                            <td  width="20%" align="right">derecha</td>
                            <td  width="20%" align="center">centro</td>
                            <td  width="20%" align="justify">texto justificado izq. y derecha</td>
                        </tr>
                        <tr>
                            <td  width="20%" align="left">Izquierda</td>
                            <td  width="20%" align="right">derecha</td>
                            <td  width="10%" align="center">centro</td>
                            <td  width="20%" align="justify">texto justificado izq. y derecha</td>
                        </tr>
                        <tr>
                         <td  width="20%" >Expansion hacia la derecha</td>
                         <td  width="20%" align="right">derecha</td>
                         <td  width="20%" align="center">centro</td>
                         <td  width="20%" align="justify">texto justificado izq. y derecha</td>
                        </tr>
                </tbody>
   </table>
  </body>
</html>

Programa 73

En ejemplo hemos pintado de amarillo la cabecera, hemos dejado de blanco el cuerpo y pintado de verde el pie.

Ilustración 8 - Tabla utilizando agrupamientos lógicos.
image

Como ejercicio práctico podríais, por ejemplo, intentar insertar uno o más agrupamientos lógicos <tbody> con otro color en el cuerpo de la tabla.

jueves, 1 de diciembre de 2011

89 - HTML - Tablas - Expansión de celdas “colspan y rowspan”

Podemos indicar al contenido de una celda que se expanda en su columna o en su fila. Esto lo logramos con los atributos “colspan” (para columnas) y “rowspan” para expandir en la fila.

Los valores de estos atributos es un valor numérico que indica el número de columnas que se expande hacia la derecha para el caso de “colspan”, y para el caso de “rowspan”, el valor indica el número de filas que se expande hacia abajo.

Código de Ejemplo aplicando las características vistas anteriormente:

<html>
  <head>
    <title>Tabla - Ejemplo de combinación de celdas</title>
  </head>
  <body>
      <table width="50" height="50" border="1"  bordercolorlight="red" bordercolordark="maroon" >
            <caption>Tabla - Ejemplo de combinación de celdas</caption>
                <tr>
         <th width="20%" >Nombre</th>
         <th width="20%" >Telefono</th>
         <th  width="20%" >Otros</th>
         <th width="20%">Comentarios</th>
      </tr>
      <tr>
         <td rowspan="2"  bgcolor="yellow" width="20%" align="left">Expansion hacia abajo - rowspan</td>
         <td  width="20%" align="right">derecha</td>
         <td  width="20%" align="center">centro</td>
         <td  width="20%" align="justify">texto justificado izq. y derecha</td>
      </tr>
      <tr>
         <td  width="20%" align="left">Izquierda</td>
         <td  width="20%" align="right">derecha</td>
         <td  width="10%" align="center">centro</td>
         <td  width="20%" align="justify">texto justificado izq. y derecha</td>
      </tr>
      <tr>
         <td  colspan="2" bgcolor="red" width="20%" >Expansion hacia la derecha - colspan</td>
         <td  width="20%" align="right">derecha</td>
         <td  width="20%" align="center">centro</td>
         <td  width="20%" align="justify">texto justificado izq. y derecha</td>
      </tr>
   </table>
  </body>
</html>

Programa 72

Representación en el navegador: Hay que tener un poco de cuidado ya que los diferentes navegadores pueden representar de diferentes maneras estos atributos.

Ilustración 7 - Ejemplo de combinación de Celdas
image