2010-05-18 6 views
3

J'ai une liste de chaînes que je voudrais afficher dans un objet de sélection HTML. Les cordes ressemblent à:Conserver l'espace blanc dans la balise de sélection html

id - Nom - Description

Je voudrais que les champs d'aligner cependant. En PHP j'utilise

sprintf ("%4s%10s%20s", $id, $name, $description); 

qui fonctionne bien. Le problème est que les espaces multiples sont compactés à 1 espace dans la liste de sélection. J'ai essayé d'utiliser les propriétés CSS pre et white-space de la boîte de sélection, mais cela n'a aucun effet. Aucune suggestion?

Répondre

4

vous devez utiliser   à la place, ce sont des espaces insécables qui ne s'effondreront pas.

Vous pouvez faire:

str_replace(" ", " ", sprintf("%4s%10s%20s", $id, $name, $description)); 
+0

Arg trop tard ... – sirhc

+1

Cela fonctionne. Cela semble un peu maladroit, mais ça marche :) – Marius

3

Utilisez CSS pour définir la police des options sur une police à espacement fixe. Utilisez   au lieu d'espaces (vous pouvez utiliser str_pad() au lieu de sprintf()).

http://us3.php.net/str_pad

+0

j'utilisais polices à espacement fixe. Votre solution fonctionne aussi, mais je préfère le single str_replace à 3 str_pad. – Marius

0

remplacer les espaces par & nbsp; Entité HTML

0

Vous devrez peut-être remplacer les espaces par   pour que cela fonctionne correctement; Bien qu'une partie de moi pense qu'il y a beaucoup mieux de le faire mais mon HTML-fu est faible ...

0

Enveloppez-le dans le tag "code" html.

0

Remplacer les multiples espaces qui se suivent avec des espaces non-rupture:

  
0

espaces Convertir à  ? Essayez d'utiliser   (espace non cassant) c'est ce que vous cherchez?

Questions connexes