2010-12-08 39 views
1

Pourquoi les 2 heures suivantes ne sont pas affichées de la même manière et que faire pour que la deuxième fois ressemble à la première?Espacement des caractères HTML et travées

<!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> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <div> 
    8:00 
       <span>8</span> 
       <span>:</span> 
       <span >00</span> 
    </div>    

</body> 
</html> 

Répondre

1

Débarrassez-vous des retours à la ligne entre les balises span. Comme ceci:

<div> 
8:00 
      <span>8</span><span>:</span><span >00</span> 
</div>  

Je suis difficile de trouver dans la spécification, mais il semble que pratiquement tous les navigateurs prennent tous les espaces blancs et « compressent » vers le bas à un seul espace. Il s'agit d'un related SO post.

La réponse acceptée ici recommande d'utiliser String.Format pour gérer le rendu de manière plus précise - cela peut vous aider dans votre situation particulière.

Mise à jour:

Selon le HTML 4 spec:

SGML (voir [ISO8879], section 7.6.1) précise qu'une rupture de ligne immédiatement après une balise de début doit être ignoré , tout comme un saut de ligne juste avant une étiquette de fin. Ce s'applique à tous les éléments HTML sans l'exception .

Il existe également une description intéressante décrivant cela comme un bug here.

+0

Merci pour la réponse valide. Mais il s'agit en fait d'une sortie sur une page aspx où elle place des segments pour les contrôles d'étiquette. Je suppose que je dois y remédier. – tim

+0

BTW: J'ai résolu mon problème grâce à votre réponse. J'ai mis toutes les étiquettes d'étiquette d'asp.net sur une ligne. – tim