Foros del Web » Programando para Internet » Javascript »

Centrar Imagen de Fondo con CSS, fallo en IE

Estas en el tema de Centrar Imagen de Fondo con CSS, fallo en IE en el foro de Javascript en Foros del Web. Hola a todos, antes de nada gracias por dedicar unos instantes al problemilla que me ocupa. Nunca antes había escrito al foro y normalmente intento ...
  #1 (permalink)  
Antiguo 07/09/2009, 05:56
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Centrar Imagen de Fondo con CSS, fallo en IE

Hola a todos,

antes de nada gracias por dedicar unos instantes al problemilla que me ocupa. Nunca antes había escrito al foro y normalmente intento recurrir a los colegas cuando estoy atascado con algo.

El asunto en cuestión:

estoy haciendo una web, en la que cambian las imagnes de fondo. Estas aparecen con 100% de ancho, y mi deseo es que además estas aparezcan centradas verticalmente. Además las imagenes se deben redimensionar cuando se redimensiona la ventana del navegador.

Esto lo hago de la siguiente manera: inserto la imagen en una capa que ocupa toda la pantalla y con el overflow hidden e inserto la imagen con width a 100%. Solo me falta centrarla verticalmente. La propiedad Vertical-aling no sirve. Y las tipicas soluciones para centrar una imagen en el centro de la pantalla tampoco, porque las imagnes son muy grandes, y si exceden el tamaño vertical de la ventana se alinean arriba.

A un colega se le ocurrio una idea para arreglar el problemilla con js e hicimos la siguiente funcion:
function ajustarImagen(){
if (navigator.appName=="Netscape"){
altoNavegador=window.innerHeight;
}else{
altoNavegador=document.body.offsetHeight;
}
altoImagen=document.getElementById("contenido").he ight;


alto=Math.round((altoImagen-altoNavegador)/2);

document.getElementById("fondo").style.top='-' + alto + 'px';
document.getElementById("fondo").style.height=(alt oNavegador + alto) + 'px';

}
Siendo "contenido" la imagen insertada y "fondo" la capa en la que está insertada. Que se ejecuta cuando:
<body onResize="ajustarImagen()" onload="ajustarImagen()">
Esto funciona perfectamente en Mozilla y Chrome, pero no en IE, que ya no es que alinee la imagen como le da la gana, si no que no sé a donde me la manda y desaparece.

Espero haber sido bastante claro, podeis ver el ejemplo entero aquí:
Código:
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	  	<title>Documento sin t&iacute;tulo</title>
	  	<SCRIPT>
		function ajustarImagen(){
				if (navigator.appName=="Netscape"){				
					altoNavegador=window.innerHeight;
				}else{				
					altoNavegador=document.body.offsetHeight;
				}
				altoImagen=document.getElementById("contenido").height;
				
				
				alto=Math.round((altoImagen-altoNavegador)/2);
				
				document.getElementById("fondo").style.top='-' + alto + 'px';	
				document.getElementById("fondo").style.height=(altoNavegador + alto) + 'px';
						
			}
		</SCRIPT>
		<style type="text/css">
			<!--
			* {
				margin: 0px;
			}
			#fondo {
				height: 100%;
				width: 100%;
				position: absolute;
				z-index: 1;
				left: 0px;
				top: 0px;
				right: 0px;
				bottom: 0px;
				overflow: hidden;
				visibility:inherit;
				vertical-align:middle;
			}
			-->
        </style>
</head>
	    
  	<body onResize="ajustarImagen()" onload="ajustarImagen()">
	<div id="fondo"><img src="oso.jpg" width="100%" id="contenido" /></div>

</body>
</html>
Muchas gracias a todos.
  #2 (permalink)  
Antiguo 07/09/2009, 15:18
Avatar de Calizman
Organiza competencias CSS
 
Fecha de Ingreso: octubre-2008
Ubicación: Ciudad de Guatemala, Guatemala
Mensajes: 1.122
Antigüedad: 16 años, 4 meses
Puntos: 83
Respuesta: Centrar Imagen de Fondo con CSS, fallo en IE

Saludos!!

Realmente no estoy muy seguro que tu problema sea con CSS. Tu problema parece mas de Java Script que de CSS. Ya he reportado tu mensaje para que sea movido a el foro correspondiente y te ayuden de una mejor manera.

Suerte y Hasta Luego!
__________________
[ Mi Sitio Personal ]
"La felicidad no es una estacion de llegada... Es un modo de viajar"
Tom Schreiter
  #3 (permalink)  
Antiguo 08/09/2009, 07:57
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 23 años
Puntos: 772
Respuesta: Centrar Imagen de Fondo con CSS, fallo en IE

Mensaje movido al foro de JavaScript desde CSS.

Saludos,
  #4 (permalink)  
Antiguo 09/09/2009, 02:28
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Centrar Imagen de Fondo con CSS, fallo en IE

Hola de nuevo,

Calizz, JavierB gracias por corregir mi error, seguramente será más exitosa mi consulta posteando donde vosotros sugerís. La verdad es que posteé en CSS porque gran parte de mis esfuerzos se volcaron en ese lenguaje, aunque lo cierto es que parece que la solución final viene de la mano de javascript.

Yo por mi parte he encontrado una solución que me sirve, al menos de momento.
Donde pone:
altoNavegador=document.body.offsetHeight;
debe poner:
altoNavegador=document.documentElement.clientHeigh t;

Creo que así se soluciona perfectamente, a mi me funciona al menos.

Nada más por ahora. Un saludo a todos.
  #5 (permalink)  
Antiguo 09/09/2009, 13:57
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 5 meses
Puntos: 381
Respuesta: Centrar Imagen de Fondo con CSS, fallo en IE

Cita:
Iniciado por JavierB Ver Mensaje
Mensaje movido al foro de JavaScript desde CSS.

Saludos,
wep, se te quedó en css

lo muevo ...
__________________
Javascript Códigos - Bambú difunde
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:59.