2010-08-09 15 views
17

Aquí hay dos tramos (en la vida real muchos tramos) situados en la página web. Me gustaría establecer la distancia entre ellos. Quiero usar el atributo de margen inferior para esto, pero no puedo ver ningún efecto de usarlo. Los tramos están todavía en la posición anterior. Eso está mal. Aquí está mi código:Establecer distancia entre tramos usando el margen

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    <title></title> 
    <style type="text/css"> 
     .position, .name{ 
      overflow: hidden; 
     } 

     .position{ 
      margin-bottom: 40px; 
     } 
    </style> 
</head> 
<body> 
    <span class="position">Designer</span><br/> 
    <span class="name">John Smith</span> 
</body> 
</html> 

Respuesta

43

span es un elemento en línea, no es un elemento de bloque, y que no respetan (vertical) margin. Puede usar relleno o hacer el tramo display:inline-block; y luego usar márgenes. Este último ahora es compatible en la mayoría de los navegadores más nuevos.

+1

Estoy de acuerdo solo parcialmente con usted cuando dice que el lapso no respeta el margen. Respeta el margen, pero solo a la izquierda y a la derecha. No arriba y abajo. – Devner

+1

Sí, eso es correcto, CSS2.1 [especifica los elementos en línea para respetar los márgenes horizontales] (http://www.w3.org/TR/CSS21/visuren.html#inline-formatting). Aquí el problema fue con la alineación vertical, por lo que el margen no funcionará. – Pascal

+0

Estoy apurado en este momento, pero el relleno en el tramo no funcionó para mí. Terminé usando un div. O bien. –

0

Yo diría que la altura de línea es lo que estás buscando.

Cuestiones relacionadas