2010-05-18 4 views
3

У меня есть список строк, которые я хотел бы отображать в объекте select HTML. Струны выглядеть примерно так:Сохранение пробела в html select tag

идентификатор - имя - описание

Я хотел бы поля для выравнивания однако. В PHP я использую

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

который отлично работает. Проблема состоит в том, что несколько пробелов уплотняются до 1 пробела в списке выбора. Я попытался использовать свойства CSS pre и white-space в поле выбора, но это не влияет. Какие-либо предложения?

ответ

4

Вы должны использовать   вместо этого, они являются неразрывными, поэтому он не разрушается.

Вы можете сделать:

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

Арг слишком поздно ... – sirhc

+1

Это работает. Кажется, немного неуклюжий, но он работает :) – Marius

3

Используйте CSS, чтобы установить шрифт параметров в моноширинный шрифт. Используйте вместовместо пробелов (вместо sprintf() можно использовать str_pad()).

http://us3.php.net/str_pad

+0

Я использую моноширинный шрифты. Ваше решение работает тоже, но я предпочел единственное str_replace на 3 str_pad. – Marius

0

Заменить пространства с & NBSP; HTML-объект.

0

Возможно, вам придется заменить места  , чтобы сделать эту работу правильно; хотя часть меня думает, что есть намного лучше сделать это, но мой HTML-fu слаб ...

0

Оберните его в тег html "code".

0

Заменить несколько пробелов следуют друг за другом с не разрушающих пространств:

  
0

Преобразовать пространства в  ?

Попытайтесь использовать   (Non break space), это то, что вы ищете?