Javascript – Centrar verticalmente una página Web

última actualización el 6 de abril de 2009, 22:38 por Carlos-vialfa
Publicado por Carlos-vialfa

Javascript – Centrar verticalmente una página Web


Tratar de centrar verticalmente una página Web con CSS es una perdida de tiempo. La solución más práctica consiste en utilizar JavaScript.



1. El archivo .js


Copia este script y pégalo en un archivo llamado por ejemplo: centrar.js

function align()
{

	var lmt = document.getElementById('centrado');
	var container = document.documentElement;

	if(lmt && container)
	{
	    var containerHeight;
	    if (container.innerWidth)
	    {
            containerHeight = container.innerHeight;
		}
		else
		{
            containerHeight = container.clientHeight;
		}
	    var lmtHeight;
	    if (lmt.innerWidth)
	    {
            lmtHeight = lmt.innerHeight;
		}
		else
		{
            lmtHeight = lmt.offsetHeight;
		}
		var y = Math.ceil((containerHeight - lmtHeight) / 2);
		if(y < 0)
		{
			y = 0;
		}
		lmt.style.position = "relativa";
		lmt.style.top = y + "px";
	}
	if (document.getElementById)
	{
		document.body.style.visibility = 'visible';
	}

}

function addevent(obj,evt,fn,capt){
	if(obj.addEventListener)
	{
		obj.addEventListener(evt, fn, capt);
		return true;
	}
	else if(obj.attachEvent)
	{
		obj.attachEvent('on'+evt, fn);
		return true;
	}
	else return false;
}

if (document.getElementById && document.getElementsByTagName)
{
	addevent(window, 'load', align, false);
	addevent(window, 'resize', align, false);
}

2. La página .html


Para que la página este centrada, es necesario llamar al archivo .js.
La página será mostrada así:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="es" xmlns="http://www.w3.org/1999/xhtml" xml:lang=
"es">
	<head>
		<!-- [...] -->
		<script type="texto/javascript" src="centrar.js">
</script>
	</head>
	<body>
		<div id="centrado">

		<!—Ponga el código de su página aquí. Este será
 centrado -->
		
		</div>
	</body>
</html>

3. Uso


La función align() de JavaScript definida en el archivo .js recuperará el contenido que debe ser centrado. En este ejemplo, el elemento que lleva el identificador [id="centrado"] es el que será centrado.

var lmt = document.getElementById('centrado');


De este modo, en el ejemplo de la página .html, el contenido situado en el elemento <div id="centrado"></div> es el que será centrado.

4. Inconveniente


Esto sólo funcionará si el usuario tiene Javascript activado en su navegador.

5. A tener en cuenta


Como todo en Javascript esto no es más que una forma de embellecer la página. Siempre deberían existir soluciones alternativas en el caso de que el usuario no tenga activado el soporte de este lenguaje.

En el presente caso, esto no es posible. Pero su uso no impide para nada la navegación si el soporte está desactivado.

PD: El artículo original fue escrito por gryzzly, contribuidor de CommentCaMarche
Mejores respuestas para « Javascript – Centrar verticalmente una página Web » en :
Elegir una imagen y optimizarla para ponerla en su página Web Ver Elegir una imagen y optimizarla para ponerla en su página Web Para que sus imágenes se visualicen de la mejor manera en su sitio Web, la elección del formato debe ser realizado, necesariamente, en función del uso que se le va a dar. Elegir...
Cómo convertir una página web en PDF Ver Si queremos convertir una página web, un manual, nuestros emails en PDF, pero no sabemos como utilizar los programas que existen para ello, entonces podemos utilizar una página web que lo hace fácil y gratis. Esta página convierte la URL de...
Insertar un documento PDF en nuestra página web VerÍndice: Inserta un documento PDF en tu página web Consejos Inserta completamente un documento PDF en tu página web Descarga del programa Convertir de formato PDF a SWF (Flash) Publicar el SWF Trucos Inserta un documento PDF en tu...
Guardar una página Web VerSi deseas guardar una página Web, entonces tan solo sigue estos pasos: Una vez que estés en la página Web que deseas guardar, haz clic en Archivo y selecciona Guardar como. Para paginas Web que se resisten a ser guardadas, puedes utilizar...
[IE] Crear una tecla de acceso directo a una página Web VerSi deseas abrir rápidamente tu página web favorita entonces puedes crear una tecla de acceso directo a ella. Para ello, sigue estos pasos: Haces clic derecho sobre una zona de la página Web y seleccionas Crear acceso directo En la ventana que...
Web - Marcadores VerMarcadores Cuando se navega por la Web es habitual encontrar un sitio o página Web interesante y querer anotar su dirección para regresar más adelante. Para esto se usan los marcadores (también llamados favoritos). Permiten crear un marcador virtual...
Administración de imágenes en HTML Ver¿Cómo mostrar imágenes en una página Web? Tener algunas imágenes en un sitio Web lo hace más atractivo e intuitivo. Sin embargo, es importante no excederse ya que las imágenes pueden llevar mucho tiempo en cargarse y, en algunos casos, pueden hacer...
Fondos VerInsertar una imagen de fondo Una imagen de fondo de una página Web puede aplicarse usando la etiqueta : Atributo Efecto visual BACKGROUND="imagen" Muestra la imagen como fondo BGCOLOR="nombre_del_color o #XXXXXX" Muestra...