Foros del Web » Creando para Internet » CSS »

De donde sale este margen???

Estas en el tema de De donde sale este margen??? en el foro de CSS en Foros del Web. Buenos días. Miren este codigo: Código: <div style="display: block; border-top: solid 1px #dddddd; border-bottom: solid 1px #dddddd;"> <a href=""><img src="Images/FlechitaDer.gif" style="vertical-align: middle;" /> Texto Link</a> ...
  #1 (permalink)  
Antiguo 22/08/2007, 04:08
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 12 años, 11 meses
Puntos: 9
De donde sale este margen???

Buenos días.
Miren este codigo:
Código:
<div style="display: block; border-top: solid 1px #dddddd; border-bottom: solid 1px #dddddd;">
  <a href=""><img src="Images/FlechitaDer.gif" style="vertical-align: middle;" /> Texto Link</a>
</div>
En la página de estilos, este es el estilo para el enlace:
Código:
a:link {
  display: block;
  text-decoration: none;
  font-family: MS Sans Serif, Sans-Serif, Tahoma, Helvetica;
  font-size: 10px;
  color: #666666;
}
a:visited {
  ...
}
...
Entonces, el resultado es que salga un link dentro del DIV que tiene borde por encima y por debajo. Pero la distancia del link hasta esos bordes del DIV difiere mucho si aplico el "display: block" o si no lo aplico. De hecho he tenido que aplicarlo para reducir ese margen, pero yo no quiero que sea de tipo "block", sino "inline", pero al ponerlo "inline" de disparan esos margenes...
Por qué ocurre esto? Qué puedo hacer?
Ah! Olvidé comentar que esto lo he notado en Explorer 6.
Gracias!
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 22/08/2007, 04:19
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 13 años, 9 meses
Puntos: 63
Re: De donde sale este margen???

Hola

Bueno, por lo que dices, supongo que lo que quieres es un vínculo de tipo inline, como es en su valor repdeterminado y que haya poca distancia entre los elementos dentro del div y su borde.

En principio, no es complicado lo que quieres, pero debes controlar un poco los estilos en general, empieza por poner esto:
Código HTML:
* {border: 0; margin: 0; padding: 0;}
Eso eliminará todos los bordes y espacios en todos los objetos.

Después elimina display:block del div ya que es redundante.

Prueba eso y habrás avanzado en el diseño.

También recuerda usar una DTD válida en tu documento, de lo contrario, los resultados son menos predecibles.

Tras estos cambios, deberías tener un resultado satisfactorio, si no es así, describe nuevamente y en detalle tu problema.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #3 (permalink)  
Antiguo 22/08/2007, 04:44
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 12 años, 11 meses
Puntos: 9
Re: De donde sale este margen???

Hola PatomaS,
Felicidad ante todo!
Bueno, este es el DTD
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
El display: block redundante del DIV esta quitado.
El único elemento en el interior del DIV es el enlace, y ya le he agregado esto a su estilo:
Código:
border: 0; margin: 0; padding: 0;
Y la cosa sigue igual, tanto Explorer 6 como Explorer 7, muestran un margen exagerado tanto por encima del link, como por debajo.

Esto es muy facil de probar, puesto que solo es englobar un enlace dentro de un div, y aplicar el estilo del enlace. Podrán ver que ocurre esto.

Ya probé esto:
Código:
* { border: 0; margin: 0; padding: 0; }
Pero la cosa seguía igual, así que lo quité y se lo dejé solamente al estilo del enlace, pero ya comento que tampoco tengo éxito.
Gracias por las opiniones!
Saludete!
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 22/08/2007 a las 04:51
  #4 (permalink)  
Antiguo 22/08/2007, 04:51
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 12 años, 11 meses
Puntos: 9
Re: De donde sale este margen???

De hecho, la cosa debería poder solucionarse desde el estilo del enlace. No se que cosas provocará el display: block , pero soluciona el problema.
Hay algún aspecto en los enlaces, que es modificado por el display: block. Sería cuestión de modificar solamente esa propiedad (cual será?), puesto que no quiero un tipo block, como comenté más arriba.
__________________
..:: moNTeZIon ::..
  #5 (permalink)  
Antiguo 22/08/2007, 06:43
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 13 años, 9 meses
Puntos: 63
Re: De donde sale este margen???

Hola

Bueno, veamos. mira este ejemplo que te paso:

Código HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
	<style type="text/css">
		* {border: 0; margin: 0; padding: 0;}
		html,body { width: 100%; height: 100%; background-color: #fff; }
		#Base { width: 100%; background-color: inherit;}
		img {border: 1px solid #f00;}
	</style>
	<script type="text/javascript">
		function leerpropiedades(x) {
			alert (document.getElementById(x).style.top);
		}
	</script>
	<title>Pruebilla</title>
</head>
<body>
<div id="Base">
	<p>&nbsp;</p>
	<div style="border-top: solid 1px #ddd; border-bottom: solid 1px #ddd;">
		<a href=""><img src="http://www.forosdelweb.com/customavatars/avatar85076_1.gif" style="vertical-align: middle;" /> Texto Link</a>
	</div>	
	<p>&nbsp;</p>
	<p>&nbsp;</p>
	<p>&nbsp;</p>
</div>
</body>
</html> 
Lo puedes copiar en un documento en blanco, ponerle nombre y visualizarlo, verás que la imagen, a la que le puse un borde rojo para que se vea mejor, llega justo a los bordes del div. En tu sistema debería verse exactamente igual. No lo he probado en explorer esta vez, pero debería ir bien.

Una vez hayas usado y revisado el ejemplo, juega un poco con él hasta lograr la misma situación que tienes ahora, así descubres que pasa y quien es el responsable del problema.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #6 (permalink)  
Antiguo 23/08/2007, 05:09
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 12 años, 11 meses
Puntos: 9
Re: De donde sale este margen???

De acuerdo, pero le voy a hacer algún cambio a tu code para que puedas ver el resultado de lo que estoy intentando explicar.
1 - Copia y pega tu código en un documento nuevo.
2 - Añade el siguiente CSS para los links "normales" (solo le cambio el tipo, tamaño y color de letra, como puedes ver, para conseguir un tipo más estético)
Código:
a:link {
  text-decoration: none;
  font-family: MS Sans Serif, Sans-Serif, Tahoma, Helvetica;
  font-size: 10px;
  color: #666666;
}
a:visited {
  text-decoration: none;
  font-family: MS Sans Serif, Sans-Serif, Tahoma, Helvetica;
  font-size: 10px;
  color: #666666;
}
a:hover {
  text-decoration: underline;
}
3 - Y por último, mi ejemplito concreto trataba con una imagen más pequeña que el propio link, así que al tag IMG que muestra la imagen añádele este height a su style:
Código:
... style="vertical-align: middle; height: 8px;" />
De esta forma tienes mi ejemplo tal cual está.
Ahora, para reproducir las diferencias entre un caso y otro, tanto en el estilo del enlace LINK, como en el VISITED, añádele "display: block;", y vuelve a refrescar, verás que se come un margen que estaba y que ahora no está. Yo quiero comerme ese margen, pero sin darle un "display: block" al vínculo.
A ver si ahora si...
Saludos.
__________________
..:: moNTeZIon ::..
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 19:14.