martes, 17 de agosto de 2010

Formularios: para enviar archivos, atributo 'file'

logo COEPAEs para el típico botón Examinar que aparece en algunas webs, desde el cual se abre una ventana del explorador de archivos con la que buscar un archivo que queremos enviar a una web.

Para que se aplique correctamente, en la etiqueta <form> hay que incluir el atributo y el valor 'enctype="multipart/form-data"':

<form enctype="multipart/form-data" method="post" action="http://..../validar.php">
<input type="file" name="fichero" />
</form>

Formularios: conjunto de campos, etiqueta 'fieldset' y 'legend'

logo COEPASe usan dentro de un formulario para agrupar campos de entrada de datos relacionados, entre las etiquetas '<fieldset>' y '</fieldset>' se definen los campos de entrada. Justo después de la etiqueta de apertura '<fieldset>' y usa la etiqueta '<legend>Texto que identifica el 'fieldset'</legend>' para identificar los datos del 'fieldset'.

Posteriormente, seguiremos usando la etiqueta <label> para identificar cada uno de los campos de entrada:

<form method="post" action="http://..../validar.php">
<fieldset>
<legend>Datos personales</legend>
<label for="v-nombre">Nombre: </label>
<input type="text" name="v-nombre" /><br />

<label for="v-apellidos">Apellidos: </label>
<input type="text" name="v-apellidos" /><br />

<label for="v-email">Email: </label>
<input type="text" name="v-email" /><br />

<label for="pass">Contraseña: </label>
<input type="password" name="pass" /><br />
</fieldset><br />
<input type="submit" name="enviar" value="Enviar" /> <input type="reset" name="borrar" value="Borrar todo" /><br />
</form>

Y los campos de entrada dentro del 'fieldset' se mostrarán como se puede ver a continuación:

Datos personales





Se pueden poner varios 'fieldset' dentro de un mismo formulario para así ir agrupando dentro de cada uno campos de entrada del mismo tipo: datos personales, aficiones, etc

Otro ejemplo con varios 'fieldset':

Mantenimiento de clientes

Datos identificativos
Datos bancarios
Tipo de pago
Forma de pago

Formularios: área de texto 'textarea'

logo COEPASe usa para definir un área de texto dentro de un formulario, la etiqueta para definir un campo de texto es '<textarea>Texto de ejemplo</textarea>', y su uso es como se muestra a continuación:

<form method="post" action="http://..../validar.php">
<textarea name="nombre_variable" >Texto de ejemplo</textarea>
</form>

Y se mostrará lo siguiente:

Algunos atributos para <textarea>:

  • 'cols="numero-de-columnas"': se usa para especificar el número de columnas que queremos que tenga el área de texto.
    <form method="post" action="http://..../validar.php">
    <textarea name="nombre_variable" cols="50">Texto de ejemplo</textarea>
    </form>

    Y se mostrará lo siguiente:

  • 'rows="numero-de-filas"': para especificar el número de filas del área de texto.
    <form method="post" action="http://..../validar.php">
    <textarea name="nombre_variable" rows="5" cols="15">Texto de ejemplo</textarea>
    </form>

    Y se mostrará lo siguiente:

  • 'readonly="readonly"': este atributo se usa para mostrar texto, y el usuario del sitio web no puede modificarlo.
    <form method="post" action="http://..../validar.php">
    <textarea name="nombre_variable" readonly="readonly" rows="5" cols="15">Texto de ejemplo: campo de solo lectura</textarea>
    </form>

    Y se mostrará lo siguiente:

Formularios: Campos de selección, etiquetas 'select' y 'option', atributos 'selected' y 'multiple'

logo COEPALos campos de selección son los típicos campos de un formulario en los que hay que escoger opciones de las que aparecen en una lista desplegable:

  • Etiqueta '<select name="nombre-variable" >': es para abrir un campo de selección. Dentro de este campo de selección irá una etiqueta <option value="valor-de-variable" >texto de la opción a elegir</option> para cada uno de las opciones del 'select', y después se cierra la etiqueta '</select>'. Al igual que los otros campos de formulario vistos, el campo 'select' debe ir entre las etiquetas de apertura y cierre de formulario 'form':

    Aquí se puede usar el atributo selected="selected" para elegir una opción por defecto, del mismo modo que se hacia antes con checked="checked" en los campos del tipo 'checkbox' y 'radio'.

    <form method="post" action="http://..../validar.php">
    <label for="pais">Selecciona tu país </label>
    <select name="pais">
    <option value="Italia">Italia</option>
    <option value="Alemania">Alemania</option>
    <option value="Portugal">Portugal</option>
    <option selected="selected" value="España">España</option>
    </select>

    </form>

    Y el código anterior aparecerá así:

    En este campo también es típico poner una opción vacía, y en este caso no se usa el atributo 'selected':

    <form method="post" action="http://..../validar.php">
    <label for="pais">Selecciona tu país </label>
    <select name="pais">
    <option value=""></option>
    <option value="Italia">Italia</option>
    <option value="Alemania">Alemania</option>
    <option value="Portugal">Portugal</option>
    <option selected="selected" value="España">España</option>
    </select>
    </form>

    Y el código:

  • Atributo 'multiple="multiple"' para la etiqueta '<select ... >': con este atributo, manteniendo pulsada la tecla Ctrl (CONTROL) del teclado, se pueden seleccionar más de una opción:
    Aquí se puede usar el atributo selected="selected" para elegir más de una opción por defecto.
    <form method="post" action="http://..../validar.php">
    <label for="pais">Selecciona países en los que has estado </label>
    <select name="pais" multiple="multiple" >
    <option value="Italia">Italia</option>
    <option value="Alemania">Alemania</option>
    <option value="Portugal">Portugal</option>
    <option selected="selected" value="España">España</option>
    <option value="México">México</option>
    <option value="India">India</option>
    <option value="China">China</option>
    <option selected="selected" value="Japón">Japón</option>
    <option value="Argentina">Argentina</option>
    </select>
    </form>

    Ahora se puede seleccionar más de una opción -manteniendo pulsada la tecla CONTROL (Ctrl) del teclado- y el código aparecerá así:

Formularios: 'checkbox', 'radio', 'hidden', 'submit', 'button', 'reset'

logo COEPAEn esta entrada del blog seguimos con los campos de entrada de formularios en los que el usuario puede escoger entre una o varias opciones:

  • type="checkbox": es para crear casillas de activación, de las que se pueden escoger, en principio, de ninguna a varias opciones:
    <form method="post" action="http://..../validar.php">
    Escoge los equipos que te gustan:<br />
    <input type="checkbox" name="f-madrid" value="f-madrid" />R Madrid<br />
    <input type="checkbox" name="f-barcelona" value="f-barcelona" />FC Barcelona<br />
    <input type="checkbox" name="f-bilbao" value="f-bilbao" />ATH Bilbao<br />
    </form>

    Y el código se mostrará así:

    Escoge los equipos que te gustan:
    R Madrid
    FC Barcelona
    ATH Bilbao
    • El atributo: 'checked="checked"' se emplea para marcar algunas de las opciones por defecto, el usuario puede desmarcar cualquiera de esas opciones y/o marcar otras:
      <form method="post" action="http://..../validar.php">
      Escoge los equipos que te gustan:<br />
      <input type="checkbox" name="f-madrid" value="f-madrid" checked="checked" />R Madrid<br />
      <input type="checkbox" name="f-barcelona" value="f-barcelona" />FC Barcelona<br />
      <input type="checkbox" name="f-bilbao" value="f-bilbao" checked="checked" />ATH Bilbao<br />
      </form>

      Y el código se mostrará así:

      Escoge los equipos que te gustan:
      R Madrid
      FC Barcelona
      ATH Bilbao
  • type="radio": casillas de activación discriminatorias, el código se mostrará así:
    Aquí también se puede usar el atributo checked="checked", pero solo en una de las opciones.
    <form method="post" action="http://..../validar.php">
    Escoge los equipos que te gustan:<br />
    <input type="radio" name="equipo" value="madrid" />R Madrid<br />
    <input type="radio" name="equipo" value="barcelona" />FC Barcelona<br />
    <input type="radio" name="equipo" value="bilbao" checked="checked"/>ATH Bilbao<br />
    </form>

    Y se mostrará así:

    Escoge los equipos que te gustan:



  • type="hidden": campos ocultos, para enviar datos de control, guardar información que el usuario rellenó antes, etc... tiene muchas utilidades para el webmaster:
    <form method="post" action="http://..../validar.php">
    <input type="hidden" name="nombre_de_variable" value="cualquiera" />
    </form>

    Y se mostrará así:

    No muestra nada, es un campo oculto
  • type="submit": para el tipico botón ENVIAR:
    <form method="post" action="http://..../validar.php">
    <input type="submit" name="enviar" value="Enviar" />
    </form>

    Se mostrará así:

  • type="button": como submit, pero con el atributo ONCLICK, con el que se especifica la acción a tomar cuando se pulse el botón:
    <form method="post" action="http://..../validar.php">
    <input type="button" name="nombre2" value="Elección" onclick="ejemplo(ejemplo)" />
    </form>

    Se mostrará así:

  • type="reset": otro botón, este borra todos los datos del formulario y lo pone como estaba al principio... casi no se usa actualmente:
    <form method="post" action="http://..../validar.php">
    <input type="reset" name="nombre-variable" value="Borrar todo" />
    </form>

    Se mostrará así:

  • type="image": es para que el navegador muestre una imagen en lugar del típico botón, como se muestra en el ejemplo siguiente, se comporta igual que 'type="submit"':
    <form method="post" action="http://..../validar.php">
    <input type="image" src="url-imagen.gif" name="enviar" />
    </form>

    Se mostrará así:

Ejemplo de formulario con varios de los campos vistos

Primero el código HTML

<form method="post" action="http://..../validar.php">
<label for="v-nombre">Nombre: </label>
<input type="text" name="v-nombre" /><br />

<label for="v-apellidos">Apellidos: </label>
<input type="text" name="v-apellidos" /><br />

<label for="v-email">Email: </label>
<input type="text" name="v-email" /><br />

<label for="pass">Contraseña: </label>
<input type="password" name="pass" /><br />

<hr />
Escoge los equipos que conoces de la lista:<br />
<input type="checkbox" name="f-madrid" value="f-madrid" />R Madrid<br />
<input type="checkbox" name="f-barcelona" value="f-barcelona" />FC Barcelona<br />
<input type="checkbox" name="f-bilbao" value="f-bilbao" />ATH Bilbao<br />
<hr />
Escoge tu favorito de la lista:<br />
<input type="radio" name="equipo" value="madrid" />R Madrid<br />
<input type="radio" name="equipo" value="barcelona" />FC Barcelona<br />
<input type="radio" name="equipo" value="bilbao" />ATH Bilbao<br />
<input type="submit" name="enviar" value="Enviar" /> <input type="reset" name="borrar" value="Borrar todo" /><br /> </form>

Y se visualizará así:

Puedes probar sin miedo, ya que los datos no se envían a ninguna parte...





Escoge los equipos que conoces de la lista:
R Madrid
FC Barcelona
ATH Bilbao

Escoge tu favorito de la lista:



se pueden aplicar reglas CSS para personalizar el estilo en el que se mostrarán nuestros formularios, así como capas 'div' con un ancho definido (width: 55px;) para alinear los campos del formulario a rellenar...

Formularios: Campos "simples" de entrada de formularios. Etiquetas 'input', 'label' y atributos 'type', 'name', 'value'...

logo COEPALos campos de entrada de formularios deben ir entre las etiquetas de formulario <form ... /> y </form> vistas en la entrada anterior, cada uno de estos campos se especifican con la etiqueta
<input type="tipo_de_campo_entrada" ... />, y las clases o tipos de campos de entrada 'type' son:

  • type="text", tipo de datos alfanumerico, a los que se le debe poner el atributo 'name' con el valor del nombre de variable, el cual podemos elegir libremente:
    <form method="post" action="http://..../validar.php">
    <input type="text" name="nombre_variable" />
    </form>
    Los nombres de variables no deben empezar por caracteres numéricos ni incluir espacios ni caracteres especiales.

    Se mostrará así:

    La etiqueta <label> se usa para especificar un texto relacionado con el contenido del campo del formulario a rellenar, y usa el atributo 'for' con valor igual a el nombre de la variable a la que hace referencia. Se aplica de la siguiente forma:

    <form method="post" action="http://..../validar.php">
    <label for="nombre_variable">Nombre: </label>
    <input type="text" name="nombre_variable" />
    </form>

    El código anterior se mostrará así:

    Otros atributos para este campo de formulario son:

    • El atributo 'value' debe tener un texto que se mostrará por defecto en el campo del formulario; el cual será sustituido por el que introduzca el usuario:
      <form method="post" action="http://..../validar.php">
      <label for="nombre_variable">Nombre: </label>
      <input type="text" name="nombre_variable" value="Escriba aquí su nombre" />
      </form>

      Y el código se mostrará así:

    • El atributo 'maxlength' es para especificar la cantidad máxima de caracteres que se pueden introducir en el campo de texto, y se le debe asignar un valor numérico igual al número de caracteres máximo que se podrán introducir:
      <form method="post" action="http://..../validar.php">
      <label for="nombre_variable">Nombre: </label>
      <input type="text" name="nombre_variable" maxlength="3" />
      </form>

      Con maxlength="3", en el cuadro siguiente no se podrán introducir más de tres caracteres:

    • El atributo 'readonly="readonly"', es para que campo el campo no se pueda modificar, se queda en modo "solo lectura:"
      <form method="post" action="http://..../validar.php">
      <label for="nombre_variable">Nombre: </label>
      <input type="text" name="nombre_variable" readonly="readonly" value="Solo lectura" />
      </form>

      Y el cuadro siguiente no se puede escribir nada:

  • type="password": al igual que type="text", es para introducir texto en un campo, pero este texto no se mostrará en la pantalla, en lugar de los caracteres introducidos se mostrarán circulos o asteriscos:
    <form method="post" action="http://..../validar.php">
    <label for="contraseña">Contraseña: </label>
    <input type="password" name="pass"
    />
    </form>

    Y el código se mostrará así:

Como es de suponer, también se pueden aplicar reglas CSS para personalizar el estilo en el que se mostrarán nuestros formularios...

lunes, 16 de agosto de 2010

Formularios: etiqueta 'form' y atributos 'method' y 'action'

logo COEPALos formularios se hacen para poder enviar datos a través de una página web, se usan para realizar registros en páginas web como foros o tiendas online, para encuestas online, etc.

Para crear un formulario en un documento HTML se usa la etiqueta de apertura <form>, y </form> para cerrarla. A la etiqueta de apertura se le debe incluir el atributo 'method' con dos posibles valores para determinar como se enviaran los datos de un formulario una vez rellenado:

  • method="get" enviará los datos del formulario de forma visible en la url.
  • method="post" enviará los datos de forma oculta o no visible. Este método es el más usado, lógicamente, por seguridad.

Otro importante atributo para <form> es 'action', y en su valor, se debe especificar la dirección url que tiene que recibir los datos del formulario una vez rellenado:

<form> method="post" action="http://..../validar.php">
...aquí van los campos de entrada de datos del formulario...
</form>

domingo, 15 de agosto de 2010

Listas HTML: 'ul', 'ol' y 'li'

logo COEPALas listas es otro tipo de contenido típico en los documentos HTML, las hay de dos tipos, listas ordenadas y listas desordenadas, para las primeras se usa a etiqueta HTML <ol>

, mientras que para las desordenadas se emplea <ul>, y por último, para definir cada uno de los elementos de las listas (tanto las ordenadas como las desordenadas) se usa el atributo <li>:
  • Listas ordendas:
    <ol>
    <li>Elemento 1</li>
    <li>Elemento 2</li>
    <li>Elemento 3</li>
    </ol>

    El código anterior genera la siguiente lista:

    1. Elemento 1
    2. Elemento 2
    3. Elemento 3
  • Listas desordenadas:
    <ul>
    <li>Elemento 1</li>
    <li>Elemento 2</li>
    <li>Elemento 3</li>
    </ul>

    El código anterior genera la siguiente lista:

    • Elemento 1
    • Elemento 2
    • Elemento 3

Reglas CSS para listas

En nuestra Guía de referencia rápida CSS podemos encontrar varias propiedades para usar con las listas, a continuación, algunos ejemplos con la propiedad list-style-type y probando diferentes valores:

  • Primero algunos atributos para listas desordenadas:
    Parece que la plantilla CSS de este Blog tiene otras reglas para las listas ul y las modificaciones de estilo CSS quí no se ven reflejadas, pero el código ha sido probado en otros entornos y se visualiza correctamente.

    En el archivo de estilo CSS: podemos crear una clase para las listas que queramos que se muestren con un estilo elegido por nosostros:

    ul {
    list-style-type: square;
    }

    En el documento HTML:

    <ul>
    <li>Elemento 1</li>
    <li>Elemento 2</li>
    <li>Elemento 3</li>
    </ul>

    Y el código anterior se visualizará así:

    Debería mostrarse un cuadrado pequeño en cada elemento de la lista

    • Elemento 1
    • Elemento 2
    • Elemento 3
    Otros valores para la propiedad list-style-type en las listas desordenadas pueden ser: circle, disc (este último es el que se muestra por defecto), etc...

    Si queremos que todas las listas desordenadas de nuestra web su muestren del mismo tipo, en lugar de crear una regla CSS con un selector definido por nosotros, deberemos unas la etiqueta HTML ul como selector en el fichero CSS:

    ul {
    list-style-type: square;
    }

    Y el documento HTML, al abrir la etiqueta de la lista, no es necesario especificar ninguna clase, ya que todas las listas desordenadas del documento se mostrarán con el mismo valor:

    <ul>
    <li>Elemento 1</li>
    <li>Elemento 2</li>
    <li>Elemento 3</li>
    </ul>
  • Para usar la propiedad list-style-image, en el valor url, hay que indicarle la dirección url de una imagen (pequeña):

    En el archivo de estilo CSS:

    .lista_imagen {
    list-style-image: url(http://www.sm.com.gt/sm/p/templates/yoo_pinboard/images/emailButton.png);
    }

    En el documento HTML:

    <ul class="lista_imagen">
    <li>Elemento 1</li>
    <li>Elemento 2</li>
    <li>Elemento 3</li>
    </ul>
  • Y para las listas ordenadas:

    Aplicando la propiedad list-style-type con el valor lower-roman en el archivo CSS:

    .lista_lower-roman ol{
    list-style-type: lower-roman;
    }

    En el documento HTML:

    <ol class="lista_lower-roman">
    <li>Elemento 1</li>
    <li>Elemento 2</li>
    <li>Elemento 3</li>
    </ol>

    Y el código anterior se visualizará con cada elemento de la lista en números romanos con las letras en minúscula:

    1. Elemento 1
    2. Elemento 2
    3. Elemento 3
No es correcto modificar estilos de listas ordenadas con atributos de listas desordenadas ni modificar estilos de listas desordenas con atrubutos de listas ordenadas

sábado, 14 de agosto de 2010

Tablas HTML: Cabeceras y Pié de tablas, 'thead', 'tbody' y 'tfoot'

logo COEPAA veces, cuando las tablas son muy largas, es conveniente ponerles cabeceras (<thead>) tanto al principio como al final, estás ultimas, pié (<tfoot>) de tabla. Cuando a una tabla se le pone cabecera y/o pié de tabla, el resto de las celdas de datos de la tabla deben definirse como cuerpo (<tbody>) de la tabla:

Estos nuevos elementos se definen de la siguiente manera:

  • La cabecera de una tabla se sitúa justo después de la etiqueta de apertura de la tabla (<table>) o, si se da el caso, justo después de la etiqueta de cierre de </caption>:
    <table>
    <thead>
    <tr>
    <th> contenido de cabecera 1 </th>
    <th> contenido de cabecera 2 </th>
    ...
    ...
    </thead>
    <tbody>
    ... resto de celdas contenido de la tabla ...
    </tbody>
    </table>
  • El pié de una tabla se sitúa justo después de la etiqueta de apertura de la tabla (<table>) o, si se da el caso, justo después de la etiqueta de cierre de </caption>, o también, justo después de la etiqueta de cierre de cabecera (</thead>):
    <table>
    <thead>
    <tr>
    <th> contenido de cabecera 1 </th>
    <th> contenido de cabecera 2 </th>
    ...
    ...
    </thead>
    <tfoot>
    <tr>
    <th> contenido de cabecera 1 </th>
    <th> contenido de cabecera 2 </th>
    ...
    ...
    </tfoot>
    <tbody>
    ... resto de celdas contenido de la tabla ...
    </tbody>
    </table>
Una tabla puede tener más de un cuerpo </tbody>, en el momento de visualizar la tabla con un navegador web no implicará nada, pero si a nivel de accesibilidad. Por otro lado, solo podemos tener una cabecera (</thead>) y un pié (</tfoot>) por tabla.

La definición de cada elemento dentro de la tabla debe ir en el ordén:

  1. Cabecera </thead>
  2. Pié </tfoot>
  3. Cuerpo </tbody>

Después la tabla se visualizará así:

Tabla con cabecera, cuerpo y pié
rowspan="2" Fila de cabecera con colspan="4"
Cabecera 1Cabecera 2Cabecera 3Cabecera 4
rowspan="2"Pié 1 Pié 2Pié 3Pié 4
Fila de pié con colspan="4"
1,11,21,31,41,5
2,12,22,32,42,5
3,13,23,33,43,5
4,14,24,34,44,5

En este último ejemplo se han empleado dos filas tanto para la cabecera como para el pié, la primera celda de ambas tienen fusionadas las filas con rowspan="2". La fila superior de la cabecera tiene las últimas cuatro celdas fusionadas con un colspan="4", al igual que la fila inferior del pié de la tabla. Y hasta aquí todo lo que hay sobre las tablas HTML.

viernes, 13 de agosto de 2010

Tablas HTML: fusión de celdas con atributos 'colspan' y 'rowspan'

logo COEPAA veces necesitamos fusionar celdas de una tabla para representar determinados datos, para ello se emplean los siguientes atributos dentro de las etiquetas td (o th si se da el caso):

  • colspan es para fusionar celdas de una misma fila, o sea, fusiona columnas, a colspan se le pueden asignar valores ="2", ="3", ="4"... dependiendo del número de celdas que queramos fusionar:
    <table class="tabla_bordes" summary="fusión de celdas: uso de 'colspan'">
    <caption>fusión de celdas: uso de 'colspan'</caption>

    <tr> <td> celda 1,1 </td> <td> celda 1,2 </td> <td> celda 1,3 </td> <td> celda 1,4 </td> </tr>

    <tr> <td> celda 2,1 </td> <td colspan="2"> celda 2,2 y 2,3 fusionadas </td> <td> celda 2,4 </td> </tr>

    <tr> <td> celda 3,1 </td> <td> celda 3,2 </td> <td> celda 3,3 </td> <td> celda 3,4 </td> </tr>

    </table>

    El código anterior genera una tabla que fusiona las celdas 2,2 y 2,3:

    fusión de celdas: uso de 'colspan'
    celda 1,1 celda 1,2 celda 1,3 celda 1,4
    celda 2,1 celda 2,2 y 2,3 fusionadas celda 2,4
    celda 3,1 celda 3,2 celda 3,3 celda 3,4
  • rowspan es para fusionar celdas de las filas de una misma columna, e igual que antes a colspan se le asignan valores ="2", ="3", ="4"... dependiendo del número de celdas que queramos fusionar:
    <table class="tabla_bordes" summary="fusión de celdas: uso de 'rowspan'">
    <caption>fusión de celdas: uso de 'rowspan'</caption>

    <tr> <td> celda 1,1 </td> <td> celda 1,2 </td> <td> celda 1,3 </td> <td> celda 1,4 </td> </tr>

    <tr> <td> celda 2,1 </td> <td colspan="2"> celda 2,2 y 3,2 fusionadas </td> <td> celda 2,3 </td> <td> celda 2,4 </td> </tr>

    <tr> <td> celda 3,1 </td> <td> celda 3,3 </td> <td> celda 3,4 </td> </tr>

    </table>

    El código anterior genera una tabla que fusiona las celdas 2,2 y 3,2:

    fusión de celdas: uso de 'rowspan'
    celda 1,1 celda 1,2 celda 1,3 celda 1,4
    celda 2,1 celda 2,2 y 3,2 fusionadas celda 2,3 celda 2,4
    celda 3,1 celda 3,3 celda 3,4
    En el código de este último ejemplo, al definir las celdas de la tercera fila nos saltamos la celda 3,2, que está fusionada con la celda 2,2 de la segunda fila, y pasamos de la celda 3,1 a la celda 3,3

Ahora vamos a fusionar cuatro celdas, dos de la segunda fila con otras dos de la tercera:

<table class="tabla_bordes" summary="fusión de celdas: uso de 'colspan' y 'rowspan'">
<caption>fusión de celdas: uso de 'colspan' y 'rowspan'</caption>

<tr> <td> celda 1,1 </td> <td> celda 1,2 </td> <td> celda 1,3 </td> <td> celda 1,4 </td> </tr>

<tr> <td> celda 2,1 </td> <td rowspan="2" colspan="2"> celdas 2,2, 2,3, 3,2 y 3,3 fusionadas </td> <td> celda 2,4 </td> </tr>

<tr> <td> celda 3,1 </td> <td> <td> celda 3,4 </td> </tr>

</table>

El código anterior genera una tabla que fusiona las celdas 2,2 y 3,2:

fusión de celdas: uso de 'colspan' y 'rowspan'
celda 1,1 celda 1,2 celda 1,3 celda 1,4
celda 2,1 celdas 2,2, 2,3, 3,2 y 3,3 fusionadas celda 2,4
celda 3,1 celda 3,4

Otros ejemplos de fusión de celdas:

Ejemplos de fusión de celdas
Fusión de filas
AB
C
Fusión de filas
ABCD
EFG
H
IJK
Fusión de columnas
A
B C
Fusión de columnas
AB
CDE
F
GHIJ