Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Cómo solucionar este efecto extraño en CSS!

Estas en el tema de Cómo solucionar este efecto extraño en CSS! en el foro de CSS en Foros del Web. Buen día señores. El extraño que me hace CSS es el siguiente. Tengo un menú desplegable y un poco más abajo hay un párrafo que ...
  #1 (permalink)  
Antiguo 28/03/2013, 16:20
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Pregunta Cómo solucionar este efecto extraño en CSS!

Buen día señores. El extraño que me hace CSS es el siguiente. Tengo un menú desplegable y un poco más abajo hay un párrafo que contiene varios spans.
Cuando desplego el menú y muevo el cursor sobre la lista desplegada, ésta desaparece exactamente a la altura de los spans, como si éstos o uno de ellos se interpusiera y no dejara recorrer completa la lista desplegada. ¿Por qué?

He aquí el HTML (es mucho pero lo pongo todo para que no pierdan detalle):
Código HTML:
Ver original
  1.   <div id="header">
  2.     <center>
  3.     <ul id="ul_principal">
  4.       <li id="cero" class="radius_1">biografía</li>
  5.       <li id="cero">educación
  6.         <ul>
  7.           <li id="small">preescolar  </li>
  8.           <li id="small">primaria    </li>
  9.           <li id="small">secundaria  </li>
  10.           <li id="small">técnico     </li>
  11.           <li id="small">bachillerato</li>
  12.           <li id="small">licenciatura</li>
  13.         </ul>
  14.       </li>  
  15.       <li id="cero">logros</li>
  16.       <li id="cero">conocimientos
  17.         <ul>
  18.           <li id="small">programación</li>
  19.           <li id="small">otros       </li>
  20.         </ul>
  21.       </li>  
  22.       <li id="cero">laboral</li>
  23.       <li id="cero" class="radius_2">contacto</li>
  24.     </ul>
  25.     </center>
  26.   </div>
  27.  
  28.   <div id="content">
  29.     <br />
  30.     <br />
  31.     <br />
  32.     <br />
  33.     <br />
  34.     <br />    <br />
  35.     <br />
  36.     <br />
  37.     <br />
  38.     <br />
  39.     <br />
  40.     <center>
  41.     <p>
  42.     Nací al final de la década de <span id="span1">1970<span id="fondo1"><span id="fondo2">La Real Academia de la Lengua Española indica que la forma correcta de anunciar una década es la mencionada, y no: "Los setentas".</span></span></span>, en el sur de la Ciudad de México. Viví los primeros 28 años allí hasta que nació mi hija (ahora con 5 años),
  43.     y desde entonces vivo al oriente de la misma ciudad. Tengo una carrera en el area de humanidades. Como esta carrera prácticamente no tiene campo
  44.     laboral...  
  45.     </p>
  46.     </center>
  47.   </div>
  48.  
  49.   <div id="footer">
  50.   </div>
  51.  
  52. </body>
Y aquí el CSS (es mucho, pero lo puse todo para que no pierdan detalle):
Código CSS:
Ver original
  1. <style type="text/css">
  2.  
  3. //  #header, #footer y #content forman el LAYOUT principal.
  4.  
  5. #header, #footer {
  6.     width:100%;
  7.     height:110px;
  8.     background-color:white;}
  9. #content {
  10.     height:400px;
  11.     width:100%;
  12.     background-color:white;}
  13. p {
  14.     position:relative;
  15.     top:0px;
  16.     left:0px;
  17.     width:650px;
  18.     font-size:18px;
  19.     line-height:40px;
  20.     color:#666;
  21.     text-align:justify;}
  22.    
  23.    
  24. // Lo siguiente formatea el menú.
  25.  
  26. ul {
  27.     position:relative;
  28.     top:0px;
  29.     left:0px;
  30.     list-style-type:none;} 
  31. #ul_principal {
  32.     position:relative;
  33.     top:50px;
  34.     left:auto;
  35.     width:912px;
  36.     height:auto;
  37.     list-style-type:none;
  38.     margin:0px auto;}
  39. li {
  40.     font-size:20px;
  41.     font-family:Freestyle Script;
  42.     width:150px;
  43.     height:50px;
  44.     line-height:45px;
  45.     background-color:#666;
  46.     color:#FFF;
  47.     text-align:center;
  48.     border:1px solid white;
  49.     list-style-type:none;}
  50. li ul {display:none;}
  51. #cero {float:left;}
  52. #small {font-size:16px;}
  53. .radius_1 {border-radius:20px 0px 0px 20px;}
  54. .radius_2 {border-radius:0px 20px 20px 0px;}
  55. li:hover {
  56.     color:#0F0;
  57.     cursor:pointer;}
  58. li:hover ul {
  59.     display:block;
  60.     position:relative;
  61.     top:5px;
  62.     left:-41px;}
  63.    
  64. // Lo siguiente formatea los span para convertirlos en POP-UP'S.
  65.  
  66. #span1 {
  67.     position:relative;
  68.     color:red;
  69.     cursor:pointer;}
  70. #fondo1 {
  71.     display:none;
  72.     position:absolute;
  73.     top:-130px;
  74.     left:250px;
  75.     width:250px;
  76.     height:150px;
  77.     background-color:#39C;
  78.     border-radius:20px 0px 20px 0px;
  79.     box-shadow:black 10px 10px 10px;}
  80. #fondo2 {
  81.     display:none;
  82.     position:absolute;
  83.     top:10px;
  84.     left:10px;
  85.     width:210px;
  86.     height:110px;
  87.     background-color:#36C;
  88.     border-radius:15px 0px 15px 0px;
  89.     box-shadow:inset white 5px 5px 5px, inset white -5px -5px 5px;
  90.     font-size:14px;
  91.     line-height:20px;
  92.     color:white;
  93.     padding:10px;}
  94. #span1:hover span {display:block;} 
  95. #span1:hover span span {display:block;}
  96. </style>
  #2 (permalink)  
Antiguo 28/03/2013, 16:52
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Cómo solucionar este efecto extraño en CSS!

Cuando tu código está lleno de errores lo raro no suele serlo tanto.

Usas etiquetas obsoletas, repites ID's en el documento... Luego tampoco me extrañaría que esos comentarios también los tengas en el código —ya que también estarían mal.
  #3 (permalink)  
Antiguo 28/03/2013, 17:40
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
De acuerdo Respuesta: Cómo solucionar este efecto extraño en CSS!

Cita:
Iniciado por Bonez Ver Mensaje
Cuando tu código está lleno de errores lo raro no suele serlo tanto.

Usas etiquetas obsoletas, repites ID's en el documento... Luego tampoco me extrañaría que esos comentarios también los tengas en el código —ya que también estarían mal.
En verdad me hiciste reír con eso de los errores, , pero no por burlarme, sino porque tienes razón! Voy a reeditar el CSS para no repetir los ID's. Nunca pensé que interfirieran, los repito para asignar determinado estilo a dichos elementos, a lo mejor lo más correcto es asignarles una misma clase en vez del mismo ID.

Sólo un comentario más, y espero que no lo tomes mal amigo BONEZ, que por ser duro pero justo una vez aquí mismo en FOROS DEL WEB se me hecharon todos encima. Se entiende que quien pregunta no sabe o sabe medio mal, así que se agradecería mucho que fueras más preciso en tus comentarios, por ejemplo en eso de las etiquetas obsoletas.
  #4 (permalink)  
Antiguo 28/03/2013, 21:26
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
De acuerdo Respuesta: Cómo solucionar este efecto extraño en CSS!

He reeditado el HTML y CSS presentado más arriba. El compañero BONEZ tenía toda la razón: TODO EL CÓDIGO era un desastre.
Lo extraño no era el efecto raro que yo vi en un primer momento, lo extraño era que medio funcionara el código!

Lista de errores (al menos los que advertí):
1. asignar el mismo ID a múltiples elementos HTML. Lo hice así porque pretendía asignar a todos los elementos con ese ID cierto diseño. Pero al parecer la idea de un ID no es esa, sino asingar un identificador único a un elemento. Para hacer lo que yo quería hacer, debe emplearse una CLASE.
2. incluir diseño en HTML (como la etiqueta CENTER). La idea fundamental de CSS es separar el contenido del diseño, así que si nos vemos en la necesidad de centrar, hay que centrar con CSS.
3. ¡Los comentarios! los puse originalmente con la etiqueta //. Hace tiempo que no programaba, y medio recordé que los comentarios se abrían así, pero viendolo mejor creo que son de JavaScript.
4. y no sé que otros errorcillos menos evidentes, pero que provocaban el extraño que antes mencionaba.

Gracias amigo BONEZ, me hiciste buscar y arreglar por mí mismo la bronca. Para que veas cómo quedó, aquí muestro el resultado. Verás que el código mejoró notablemente. Te agradecería que indicaras si vez algo malo en este nuevo código (sigo empleando las mismas etiquetas, las que mencionas que ya son obsoletas):
Código HTML:
Ver original
  1. <div id="header">
  2.     <ul class="centrar">
  3.       <li class="float_left radius_1">biografía</li>
  4.       <li class="float_left">educación
  5.         <ul>
  6.           <li class="small">preescolar  </li>
  7.           <li class="small">primaria    </li>
  8.           <li class="small">secundaria  </li>
  9.           <li class="small">técnico     </li>
  10.           <li class="small">bachillerato</li>
  11.           <li class="small">licenciatura</li>
  12.         </ul>
  13.       </li>  
  14.       <li class="float_left">logros</li>
  15.       <li class="float_left">conocimientos
  16.         <ul>
  17.           <li class="small">programación</li>
  18.           <li class="small">otros       </li>
  19.         </ul>
  20.       </li>  
  21.       <li class="float_left">laboral</li>
  22.       <li class="float_left radius_2">contacto</li>
  23.     </ul>
  24.   </div>
  25.  
  26.   <div id="content">
  27.     <br />
  28.     <br />
  29.     <center>
  30.     <p>
  31.     Nací al final de la década de <span class="span">1970<span id="fondo1"><span id="fondo2">La Real Academia de la Lengua Española indica que la forma correcta de anunciar una década es la mencionada, y no: "Los setentas".</span></span></span>, en el sur de la <span class="span">Ciudad de México<span id="fondo11"><span id="fondo22">Ciudad de México<br />Habitantes: 8,851,080<br />(<a class="link" href="http://www3.inegi.org.mx/sistemas/mexicocifras/default.aspx?src=487&e=9">censo INEGI 2010</a>)<img src="media/Mapa1.png" /></span></span></span>. Viví los primeros 28 años allí hasta que nació mi hija (ahora con 5 años),
  32.     y desde entonces vivo al oriente de la misma ciudad. Tengo una carrera en el area de humanidades. Como esta carrera prácticamente no tiene campo
  33.     laboral...
  34.     </p>
  35.     </center>
  36.   </div>
  37.  
  38.   <div id="footer">
  39.   </div>

Código CSS:
Ver original
  1. /*            L A Y O U T            */
  2.  
  3. #header, #footer {
  4.     width:100%;
  5.     height:110px;
  6.     background-color:white;
  7.     margin:0px auto;}
  8. #content {
  9.     background: -moz-linear-gradient(top, aliceblue , cadetblue);
  10.     height:400px;
  11.     width:100%;
  12.     background-color:white;}
  13.  
  14. /*            M E N Ú            */
  15.  
  16. li {
  17.     font-size:20px;
  18.     width:150px;
  19.     height:50px;
  20.     line-height:45px;
  21.     background-color:#666;
  22.     color:#FFF;
  23.     text-align:center;
  24.     border:1px solid white;
  25.     list-style-type:none;}
  26. li ul {display:none;}
  27. li:hover {
  28.     color:#0F0;
  29.     cursor:pointer;}
  30. li:hover ul {
  31.     display:block;
  32.     position:relative;
  33.     top:5px;
  34.     left:-41px;}
  35.    
  36. /*            C L A S E S            */
  37.  
  38. .small {font-size:16px;}
  39. .float_left {float:left;}
  40. .radius_1 {border-radius:20px 0px 0px 20px;}
  41. .radius_2 {border-radius:0px 20px 20px 0px;}
  42. .span {
  43.     position:relative;
  44.     color:slateblue;
  45.     cursor:pointer;}
  46. .link {
  47.     font-size:10px;
  48.     color:white;
  49.     text-decoration:blink;}
  50. .centrar {
  51.     width:912px;
  52.     margin-left:auto;
  53.     margin-right:auto;}
  54.    
  55. /*            P O P -  UP'S            */
  56.  
  57. p {
  58.     width:650px;
  59.     font-size:18px;
  60.     line-height:40px;
  61.     color:#666;
  62.     text-align:justify;}
  63. #fondo1 {
  64.     position:absolute;
  65.     top:-80px;
  66.     left:50px;
  67.     width:250px;
  68.     height:150px;
  69.     background-color:#39C;
  70.     border-radius:20px 0px 20px 0px;
  71.     box-shadow:black 10px 10px 10px;
  72.     z-index:1000;}
  73. #fondo2 {
  74.     position:absolute;
  75.     top:10px;
  76.     left:10px;
  77.     width:210px;
  78.     height:110px;
  79.     background-color:#36C;
  80.     border-radius:15px 0px 15px 0px;
  81.     box-shadow:inset white 5px 5px 5px, inset white -5px -5px 5px;
  82.     font-size:14px;
  83.     line-height:20px;
  84.     color:white;
  85.     padding:10px;
  86.     z-index:1000;}
  87. #fondo11 {
  88.     position:absolute;
  89.     top:-130px;
  90.     left:135px;
  91.     width:250px;
  92.     height:150px;
  93.     background-color:#39C;
  94.     border-radius:20px 0px 20px 0px;
  95.     box-shadow:black 10px 10px 10px;
  96.     z-index:1000;}
  97. #fondo22 {
  98.     position:absolute;
  99.     top:10px;
  100.     left:10px;
  101.     width:210px;
  102.     height:110px;
  103.     background-color:#36C;
  104.     border-radius:15px 0px 15px 0px;
  105.     box-shadow:inset white 5px 5px 5px, inset white -5px -5px 5px;
  106.     font-size:14px;
  107.     line-height:20px;
  108.     color:white;
  109.     padding:10px;
  110.     z-index:1000;}
  111. img {
  112.     width:100px;
  113.     height:100px;
  114.     float:right;}
  115. img:hover {
  116.     width:350px;
  117.     height:350px;}
  118.  
  119. span span {display:none;}
  120. span span span {display:none;}
  121.  
  122. .span:hover span {display:block;}  
  123. .span:hover span span {display:block;}
  #5 (permalink)  
Antiguo 28/03/2013, 23:59
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: Cómo solucionar este efecto extraño en CSS!

Hola. La etiqueta center no se usa desde el html 3.

Puedes hacer ese p centrado simplemente con
p style="text-align: center;" o un class para ello.
  #6 (permalink)  
Antiguo 29/03/2013, 00:05
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: Cómo solucionar este efecto extraño en CSS!

Se me hace un abuso anidar en el css span span span.

Span, class.. ¿span?
No entiendo cual es el menú.
  #7 (permalink)  
Antiguo 29/03/2013, 00:20
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Cómo solucionar este efecto extraño en CSS!

Ahora si está mejor.

El extraño error realmente no se debía al mal código. Pero era mejor ordenarlo primero.

El orden de los elementos en el documento especifica a priori su orden en el eje Z. No es tan así, pero no sé decirlo de otra forma. Es buena práctica, y casi obligatoria, que al hacer :hover al menú se le asigne un valor z-index para que esté encima de los demás elementos.

Código CSS:
Ver original
  1. li:hover ul {
  2.   /* los demás estilos */
  3.   z-index: 99;
  4. }

Así el submenú estará por encima de los demás elementos.

Respecto a lo de ser duro… No era mi intención ser duro, sino simplemente directo. Y cuando uno ve un código que hasta los comentarios están mal puestos, pues la verdad es que duele a los ojos.

De todas formas prácticamente arreglaste todo el código sin decirte nada más.
  #8 (permalink)  
Antiguo 06/04/2013, 19:04
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
De acuerdo Respuesta: Cómo solucionar este efecto extraño en CSS!

Cita:
Iniciado por pzin Ver Mensaje
Ahora si está mejor.

El extraño error realmente no se debía al mal código. Pero era mejor ordenarlo primero.

El orden de los elementos en el documento especifica a priori su orden en el eje Z. No es tan así, pero no sé decirlo de otra forma. Es buena práctica, y casi obligatoria, que al hacer :hover al menú se le asigne un valor z-index para que esté encima de los demás elementos.

Código CSS:
Ver original
  1. li:hover ul {
  2.   /* los demás estilos */
  3.   z-index: 99;
  4. }

Así el submenú estará por encima de los demás elementos.

Respecto a lo de ser duro… No era mi intención ser duro, sino simplemente directo. Y cuando uno ve un código que hasta los comentarios están mal puestos, pues la verdad es que duele a los ojos.

De todas formas prácticamente arreglaste todo el código sin decirte nada más.
Como sea, gracias y hasta luego. Doy por cerrado y SOLUCIONADO este tema.


Así, supongamos que nadie tenga acceso a nuestras imágenes, excepto los siguientes sitios:
instalaciones electricas
mantenimiento industrial
naves industriales
obra civil
proyecto llave en mano
sistemas contra incendios
subestaciones electricas
constructoras
hvac

Última edición por berkeleyPunk; 24/09/2014 a las 19:38

Etiquetas: span
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 02:09.