Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] display:inline vs display:block

Estas en el tema de display:inline vs display:block en el foro de CSS en Foros del Web. Hola a todos. Os cuento un problema que me ha tenido 2 dias desesperado, y aunque lo he solucionado, no acabo de entender el porqué. ...
  #1 (permalink)  
Antiguo 19/02/2015, 07:26
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada, Andalucía, España
Mensajes: 42
Antigüedad: 10 años, 8 meses
Puntos: 0
display:inline vs display:block

Hola a todos.

Os cuento un problema que me ha tenido 2 dias desesperado, y aunque lo he solucionado, no acabo de entender el porqué.

Genero una página con Cabecera, Cuerpo y Pie.
En el cuerpo cargo 4 DIV con display:none, de forma que desde unos enlaces en la cabecera su muestre uno y se oculte el resto a través de una función javascript que establece style.display='inline' al que se desea ver y style.display='none' a los que se quieren ocultar.

Esta página ha estado un año funcionado y de repente me encuentro que dejan de funcionar enlaces dentro los DIV.
Enlaces como éste:
<a title="Ver la partida" href="javascript:MostrarPartida(5844)">Nombre del jugador</a>

De hecho, al pasar el cursor por encima del enlace no indica que sea un link.

Pues bien, después de 2 dias de desesperación se me ocurre cambiar el style.display='inline' por style.display='block', y funciona!

Pongo este comentario con dos objetivos: por si puede evitar que alguien pase por esta desagradable experiencia y por si alguien conoce el motivo.
Me molesta sobremanera arreglar algo sin entender las causas y el porqué de la solución.
Porqué funcionaba antes? Porqué ha dejado de funcionar? Qué tiene el inline para obviar un enlace?

Saludos.
  #2 (permalink)  
Antiguo 19/02/2015, 11:55
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: display:inline vs display:block

Sin ver el código es complicado poder decir algo acertado.

Pero por opinar… Tal vez debido a ser un elemento en linea se comportara de forma extraña y quedara por debajo de otras cosas. Cosa que igual no se hubiera visto, pero si hay algo encima de un enlace, no podrás pinchar encima de es enlace.
__________________
(:
  #3 (permalink)  
Antiguo 19/02/2015, 11:55
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: display:inline vs display:block

Hay muchas diferencias entre los elementos de línea y los de bloque en cuanto a la manera de ocupar el espacio en la página.

Podrías poner el código para ver un poco mejor lo que explicas? Es muy difícil adivinar sólo con descripciones.
  #4 (permalink)  
Antiguo 19/02/2015, 17:26
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada, Andalucía, España
Mensajes: 42
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: display:inline vs display:block

Gracias por responder.
No he puesto código porque es extenso y debería poner HTML, CSS, javascript...

Si os sirve os doy acceso a la página.

Entrad en http://garnatagolf.com/APP_GarnataGolf.php
Es una página de golf....

Os dirá que no estáis identificados. Iniciad sesión con:
usuario: [email protected]
Contraseña: Prueba

Os muestra la página (diseñada para ver en telefono móvil) con la cabecera, el cuerpo y el pie.
Aparece visible el div "Pag00", que hace referencia a la ultima partida jugada.
Tras la corrección, sí identifica el texto "Usuario prueba" como un link.

Si entrais con las herramientas de Desarrollador de cualquier navegador (yo uso firefox y Chrome) y seleccionais el div Pag00, podeis ver y modificar las caracterisicas CSS.

Buscad el display:block y cambiadlo por display:inline.
El texto "Usuario prueba" deja de estar activo.

He comprobado que usando display:inline-block también funciona...

Saludos.
  #5 (permalink)  
Antiguo 20/02/2015, 04:34
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: display:inline vs display:block

A mí no me ocurre eso problema. Probé con Chrome 40.0.2214.111 (64-bit) en Mac.
__________________
(:
  #6 (permalink)  
Antiguo 20/02/2015, 06:13
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada, Andalucía, España
Mensajes: 42
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: display:inline vs display:block

pzin, si lo ejecutas ahora funciona bien porque está cambiado a display:block.
No sé si has simulado cómo actúa con display:inline.

Ya tengo 40.0.2214.111 para Windows y me falla con inline.

No quisiera hacer de esto un mundo y molestaros para nada ya que actualmente funciona, pero es que no entender el porqué de las cosas siempre me ha molestado y a mis años ya es casi una manía....

Gracias por la atención que me prestais.
Saludos.
  #7 (permalink)  
Antiguo 20/02/2015, 06:50
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: display:inline vs display:block

Tiene razón, si se toca a mano el display: block; de el div Pag00, el link deja de comportarse como tal. Haciendo algunas pruebas pude ver que el problema no está asociado al display: inline sino a una combinación de ese display: inline; y el posicionamiento relativo que también tiene el div.

Si eliminas el position: relative; y le ponés display: inline;, el link sí funciona correctamente.

Estuve buscando en Google y evidentemente hay problemas cuando se combinan estas dos cosas.
Aún no encuentro cuál es el problema específicamente.

De todas maneras, te recomiendo usar siempre display: block; o en su defecto display: inline-block; para no tener este tipo de problemas. Pensá que el div originalmente es un elemento de bloque que se muestra como tal, y vos lo estás ocultando y volviendo a mostrar como un elemento de línea. Como contenedor y teniendo position: relative;, me imagino que al dejar de mostrarse como un elemento de bloque, se debe joder algún tema en el display de los elementos.

Saludos
  #8 (permalink)  
Antiguo 20/02/2015, 10:05
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada, Andalucía, España
Mensajes: 42
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: display:inline vs display:block

Gracias por la explicación, GeeGirl.
Saludos.

Etiquetas: Ninguno
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 09:17.