Как поместить пробел перед текстом опции в элементе выбора HTML? - PullRequest
24 голосов
/ 25 августа 2008

В выпадающем списке мне нужно добавить пробелы перед опциями в списке. Я пытаюсь

<select>
<option>&#32;&#32;Sample</option>
</select>

для добавления двух пробелов, но без пробелов. Как я могу добавить пробелы перед текстом опции?

Ответы [ 14 ]

26 голосов
/ 25 августа 2008

Не является ли &#160 сущность для пространства?

<select>
<option>&#160;option 1</option>
<option>    option 2</option>
</select>

У меня работает ...

EDIT:

Только что проверил это, может иметь проблемы с совместимостью с этим в старых браузерах, но мне кажется, здесь все работает нормально. Просто подумал, что я должен сообщить вам, как вы можете заменить на &nbsp;

15 голосов
/ 25 августа 2008

Я думаю, что вы хотите &nbsp; или &#160;

Так что исправленная версия вашего примера может быть ...

<select>
  <option>&nbsp;&nbsp;Sample</option>
</select>

или

<select>
  <option>&#160;&#160;Sample</option>
</select>
14 голосов
/ 25 июля 2013

Используйте \ xA0 со строкой. Это прекрасно работает при привязке данных модели C # к выпадающему списку ...

  SectionsList.ForEach(p => { p.Text = "\xA0\xA0Section: " + p.Text; });
8 голосов
/ 10 сентября 2010

Как отметил Роб Купер, существуют некоторые проблемы совместимости со старыми браузерами (IE6 будет отображать настоящие буквы "& nbsp;"

Вот как я обхожу это в ASP.Net (у меня нет открытой VS, поэтому я не уверен, на какие символы это фактически переводится):

Server.HtmlDecode("&nbsp;") 
6 голосов
/ 20 июля 2014

Я пробовал несколько вещей, но единственное, что мне помогло, - это использовать javascript. просто обратите внимание, что я использую код Unicode для пространства, а не сущность html, так как js знает кое-что о сущностях

$("#project_product_parent_id option").each(function(i,option){
  $option = $(option);
  $option.text($option.text().replace(/─/g,'\u00A0\u00A0\u00A0'))
});
5 голосов
/ 27 октября 2010

Вы также можете нажать Alt + пробел (на Mac) для неразрывного пробела. Я использую его для модуля Drupal, потому что Drupal декодирует html-сущности.

4 голосов
/ 25 августа 2008

@ Brian

Я почти уверен, что вы можете сделать это и с помощью CSS-отступов. Тогда вы не будете женаты на космических символах, жестко закодированных во всех ваших тегах.

Хорошее мышление - но, к сожалению, оно не работает (любимый браузер каждого ...) IE7: - (

Вот некоторый код, который будет работать в Firefox (и я предполагаю, что Op / Saf).

<select>
    <option style="padding-left: 0px;">Blah</option>
        <option style="padding-left: 5px;">Blah</option>
            <option style="padding-left: 10px;">Blah</option>
    <option style="padding-left: 0px;">Blah</option>
        <option style="padding-left: 5px;">Blah</option>
</select>
4 голосов
/ 25 августа 2008

Я почти уверен, что вы можете сделать это и с помощью CSS-отступов. Тогда вы не будете женаты на космических символах, жестко закодированных во всех ваших <option> тегах.

2 голосов
/ 11 июня 2012

Просто используйте символ 255 (введите Alt + 2 + 5 + 5 на цифровой клавиатуре) с моноширинным шрифтом, например Courier New.

1 голос
/ 23 февраля 2011

Server.HtmlDecode("&nbsp;") единственный, кто работал на меня.

В противном случае chr печатается как текст.

Я попытался добавить заполнение в качестве атрибута для элемента списка, однако это не повлияло на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...