Volver al índice Ejemplos de posicionamiento absoluto

En esta página se tratan los siguientes temas:


Simulación de frames 1

Los frames son una etiqueta introducida en HTML 4.0 y que permite dividir la pantalla en varias zonas en las que se pueden mostrar documentos distintos. Los frames fueron muy populares a finales de los 90 pues permitían diseños de página atractivos y facilitaban el mantenimiento de sitios grandes. Pero los frames crean también problemas de navegabilidad y de indexado de los sitios lo que, unido a la utilización de lenguajes de programación para la generación de las páginas en los sitios grandes, ha acabado desaconsejando su uso.

Una característica de los frames es que permite utilizar un enlace situado en una de las zonas de la página para cambiar el contenido de otra zona. Esa característica es la que se va a simular aquí utilizando posicionamiento.

El resultado es que haciendo clic en un enlace se cambia el contenido visible de la página. El ejemplo siguiente se puede probar en esta misma página o bien abrirlo en otra página haciendo clic derecho sobre el ejemplo en Firefox y eligiendo la opción "Este marco > Abrir marco en una nueva pestaña".

ERROR (no puede mostrarse el objeto)


El código HTML es el siguiente:

Correcto en Firefox Correcto en Internet Explorer
<h1>Simulación de frames 1</h1>

<div id="indice">
<ul>
  <li><a href="#Apartado1">Apartado 1</a></li>
  <li><a href="#Apartado2">Apartado 2</a></li>
</ul>
</div>

<div id="contenido">
<div id="Apartado1">
<h2>Apartado 1</h2>
<p>Este es el apartado 1</p>
</div>

<div id="Apartado2">
<h2>Apartado 2</h2>
<p>Este es el apartado 2</p>
</div>
</div>
        

ERROR (no puede mostrarse el objeto)

La estructura es la siguiente:

Índice

  • La división "indice" tiene id para darle posicionamiento

Contenido

Apartado 1

Apartado 2

  • Las divisiones de los apartados tienen id para servir de destinos de los enlaces
  • La división "contenido" tiene id para darle posicionamiento

El código CSS es el siguiente:

Correcto en Firefox Correcto en Internet Explorer
div#indice {
  background-color: lightblue;
  height: 70%;
  left: 5%;
  position: absolute;
  top: 20%;
  width: 15%;
}

div#contenido {
  background-color: lightyellow;
  height: 70%;
  left: 25%;
  overflow: hidden;
  position: absolute;
  top: 20%;
  width: 70%;
}

div div {
  height: 100%;
  width: 100%;
}
        

ERROR (no puede mostrarse el objeto)

El motivo por el que cada vez sólo se ve uno de los apartados es que cada división de apartado tiene el mismo tamañado que la división "contenido" y lo que no cabe en la división "contenio" no se muestra. Al hacer clic en un enlace se muestra la división de apartado correspondiente.


Nota para Internet Explorer

Si la altura de la divisón "contenido" se establece mediante las propiedades bottom y top en vez de con las propiedades height y top (o height y bottom, Internet Explorer no muestra correctamente la página, como se observa en el ejemplo siguiente. Firefox muestra correctamente la página en todos los casos.

Correcto en Firefox Incorrecto en Internet Explorer
div#indice {
  background-color: lightblue;
  height: 70%;
  left: 5%;
  position: absolute;
  top: 20%;
  width: 15%;
}

div#contenido {
  background-color: lightyellow;
  bottom: 10%;
  left: 25%;
  overflow: hidden;
  position: absolute;
  top: 20%;
  width: 70%;
}

div div {
  height: 100%;
  width: 100%;
}       

ERROR (no puede mostrarse el objeto)

Volver al índice


Simulación de frames 2

El ejemplo anterior se puede complicar introduciendo elementos con posicionamiento en las divisiones de los apartados, como puede verse en el ejemplo siguiente, en el que cada apartado incluye un enlace al otro apartado situado en la parte inferior derecha :

ERROR (no puede mostrarse el objeto)

El código HTML es el siguiente:

Correcto en Firefox Correcto en Internet Explorer
<h1>Simulación de frames 2</h1>

<div id="indice">
<ul>
  <li><a href="#Apartado1">Apartado 1</a></li>
  <li><a href="#Apartado2">Apartado 2</a></li>
</ul>
</div>

<div id="contenido">
<div id="Apartado1">
<h2>Apartado 1</h2>
<p>Este es el apartado 1</p>
<p class="enlace">Ir al <a href="#Apartado1">apartado 2<abbr></abbr></a></p>
</div>

<div id="Apartado2">
<h2>Apartado 2</h2>
<p>Este es el apartado 2</p>
<p class="enlace">Volver al <a href="#Apartado">apartado 1</a></p>
</div>
</div>
        

ERROR (no puede mostrarse el objeto)

La estructura es la siguiente:

Índice

  • La división "indice" tiene id para darle posicionamiento

Contenido

Apartado 1

Enlace al apartado 2

Apartado 2

Enlace al apartado 1

  • Las divisiones de los apartados tienen id para servir de destinos de los enlaces
  • La división "contenido" tiene id para darle posicionamiento
  • Los párrafos con enlaces tienen clase para darle posicionamiento

El código CSS es el siguiente:

Correcto en Firefox Correcto en Internet Explorer
div#indice {
  background-color: lightblue;
  height: 70%;
  left: 5%;
  position: absolute;
  top: 20%;
  width: 15%;
}

div#contenido {
  background-color: lightyellow;
  height: 70%;
  left: 25%;
  overflow: hidden;
  position: absolute;
  top: 20%;
  width: 70%;
}

div div {
  position: relative;
  height: 100%;
  width: 100%;
}

p.enlace {
  position: absolute;
  bottom: 5px;
  right: 5px;
}

ERROR (no puede mostrarse el objeto)

Volver al índice

Autor: Bartolomé Sintes Marco
Última modificación: 18 de enero de 2009