Foros del Web » Programando para Internet » Javascript »

Problema de posición de menus basado en ul y li. Y el primer menu en CSS display erro

Estas en el tema de Problema de posición de menus basado en ul y li. Y el primer menu en CSS display erro en el foro de Javascript en Foros del Web. Problema de posición de menus basado en ul y li. Y el primer menu en CSS display erroneo. Hola, estoy modificando un menu que me ...
  #1 (permalink)  
Antiguo 01/05/2006, 02:36
hgb
 
Fecha de Ingreso: noviembre-2002
Mensajes: 31
Antigüedad: 21 años, 5 meses
Puntos: 0
Problema de posición de menus basado en ul y li. Y el primer menu en CSS display erro

Problema de posición de menus basado en ul y li. Y el primer menu en CSS display erroneo.

Hola, estoy modificando un menu que me encotre que se basa en ul y li, el original tenía soporte para multiniveles, pero no diferenciaba en cuanto al fonde de los elementos y los submenus... bueno, el punto es que ya lo modifique mayoritariamente a lo que quiero, la cosa ahora es con el posicionamiento de los menus emergentes....


Quiero que se desplieguen abajo de cada elemento li que lanza el menu emergente en posicion horiazontal...

Ahora la forma de posicionar cada menu emergente es: una posición fija en "y" (tengo 2 niveles diferentes en "y") y el índice de cada lanzador de menu * 100 en la posición "x", lógicamente que si hago la pantalla grande o chica, pues la posición respecto a los enlaces dentro de los elemento "li", pues se distorsiona....

Esta es una de las 2 listas ul que tengo (de ahí los 2 niveles en "y" a diferentes distancias):

Código HTML:
<ul class="menu">
  <li class="menu"> <a href="inicio.html"
 class="menu">Inicio</a></li>
  <li class="menu"><a
 onmouseout="ChecaSalidaDelMenu('DivContaQuien')"
 onmouseover="MuestraMenu('DivContaQuien')" href="nosotros.html"
 class="menu">Nosotros</a></li>
  <li class="menu"><a href="contacto.html"
 class="menu">Contacto</a></li>
</ul> 
Me gustaría que la división "DivContaQuien" saliera justo abajo del enlace/li-elemento "Contacto"... Usando la función "MuestraMenu" como el lugar donde se posiciona la División correspondiente... hay alguna forma de hacerlo¿?¿?

[hr]

Tengo un pequeño error de despliegue en el primer elemento, el CSS es muy similar para cada sub-nivel del menu y para cada menu (tengo 5 menus o secciones) es el mismo, la cosa es que los menus 2,3,4,5 se muestran correctamente el 1 muestra unos espacios "raros" entre el borde y el contenido... incluso el fondo no cubre todo el contenido del rectangulo, queda un espacio "transparente" o sin ocupar entre el contenido del rectangulo y el borde... no se porque suceda ya que el código es el mismo para todos los elementos y el CSS es el mismo.




Si necesitan clarificación, más info, diganme... pronto subo la página a su lugar... espero.
  #2 (permalink)  
Antiguo 02/05/2006, 13:18
hgb
 
Fecha de Ingreso: noviembre-2002
Mensajes: 31
Antigüedad: 21 años, 5 meses
Puntos: 0
Parece que no tienen idea de que les digo :P...

Bueno, pongo la página "uniformesani" por el momento en mi compu lo "solucione" con el script de la posición del mouse (que puse modifique http://www.forosdelweb.com/showpost....67&postcount=3 ), pero no se ve estético y creo que tampoco es accesible la forma como aparece el menu al entrar en cada div :).

si lo checan en este momento en la página, entonces se darán cuenta que... pues esta mal!!! XD.


Me gustaría saber como puedo alinearlo debajo de los divs o de los enlaces en despliegue de bloque... y paresca más un menu (en mi compu ya lo modifique para que sea de acuerdo en donde entra el mouse).

Última edición por hgb; 06/11/2006 a las 12:06
  #3 (permalink)  
Antiguo 02/05/2006, 13:21
hgb
 
Fecha de Ingreso: noviembre-2002
Mensajes: 31
Antigüedad: 21 años, 5 meses
Puntos: 0
Por cierto, si alguién me puede ayuda a checar el CSS porque en el elemento "U. para Hospital" se muestra con todo ese pacio extra :S.... no se porque lo hace :S.. (al menos en mi FireFox en Linux se ve mal, así que supongo que en el IE también se a de ver mal!!!).
  #4 (permalink)  
Antiguo 09/05/2006, 00:48
hgb
 
Fecha de Ingreso: noviembre-2002
Mensajes: 31
Antigüedad: 21 años, 5 meses
Puntos: 0
mmm, creo que detecte el primer error.... este es el código con el que detecto si un elemento es o no un elemento simple o un submenu en el menu con el formato descrito anteriormente...


Código:
function LinkEsMenuItem(temp){
	if(temp && temp["tagName"]){
		if(temp.tagName.toLowerCase() == "a"){
			if( temp.childNodes.length == 1 && temp.parentNode.childNodes.length == 1){
				return true;
			}else{
				document.write("[" + temp.tagName + "] No es menu item");
				return false;
			}
		}
	}
}
Ahora me he dado cuenta que los elementos en el IE estan coloreados como si fueran submenus, lo cual quiere decir que NO se están marcando como elementos simples (se escribe más veces el mensaje "[A] No es menu item[" en el IE que en el FF, lógicamente indicando que falla m+as veces en el IE que en el FF), entonces, esta función sólo funciona para FireFox, ¿como hago que también funcione para IE?.



En la función lo único que hago es checar si el elemento es único, si el padre ("li") nada más tiene un hijo "a" y entonces ya se que es un elemento simple y no un submenu :)... espero me puedan orientar en como hacer que funcione en IE.
  #5 (permalink)  
Antiguo 09/05/2006, 08:34
hgb
 
Fecha de Ingreso: noviembre-2002
Mensajes: 31
Antigüedad: 21 años, 5 meses
Puntos: 0
jeje, habia puesto mi respuesta en otro post que abri, creo que ya me estaba durmiendo :P... bueno aqui la copiada y pegada... [hr]

Bueno, ya quedo... estaba pasando el rato haber si alguién contestaba, pero mejor le heche un ojo y pues ya quedo... asi esta ahora la función ;)....


Código:
function LinkEsMenuItem(temp){
	if(temp && temp["tagName"]){
		if(temp.tagName.toLowerCase() == "a"){
			if( temp.childNodes.length == 1 && temp.parentNode.childNodes.length == 2 && IE){
				return true;
			}
			else if( temp.childNodes.length == 1 && temp.parentNode.childNodes.length == 1){
				return true;
			}else{
				document.write("[" + temp.tagName + "," + temp.childNodes.length + ", " + temp.parentNode.childNodes.length + ", " + temp.innerHTML + "] No es menu item");
				return false;
			}
		}
	}
}
Por alguna razón el IE toma un "legth" de 2 en vez de 1 como en el FF.


Esa es la solución correcta¿?¿?...
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 14:35.