Как поставить пробел перед текстом параметра в элементе выбора HTML?

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

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

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

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
27
0
75 590
15
Перейти к ответу Данный вопрос помечен как решенный

Ответы 15

&nbsp;

Вы можете это попробовать? Или это то же самое?

Ответ принят как подходящий

Разве &#160 не создан для космоса?

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

Работает на меня...

Обновлено:

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

Я думаю, вам нужен &nbsp; или &#160;

Итак, фиксированная версия вашего примера может быть ...

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

или же

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

Это не сработает, так как будет выходить скорее как пробел.

Adamantus 07.12.2012 18:57

Он работает для меня (не отображает пробел) в Chrome v23. Где вы это видите? Есть ли у вас шанс & nbsp; скорее, чем ?

Matt Sheppard 09.12.2012 03:17

не работает в firefox, отображая & ... в виде строки

Pablo Pazos 05.03.2019 00:47

Для тех из вас, кто видит буквально, а не пробел, я столкнулся с этим при использовании инспектора Chrome. Я набрал, и & превратилось в &. Мне пришлось щелкнуть правой кнопкой мыши поле, которое я хотел отредактировать, и выбрать «Редактировать как HTML». Затем это превращает в пространство.

Millar248 18.09.2019 17:43

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

Я бы хотел, чтобы ты скинул какой-нибудь код. Я думаю, что вы правы, css упростит это, но не уверен, могут ли параметры содержать div или таблицы.

Millar248 18.09.2019 17:08

@Брайан

I'm nearly certain you can accomplish this with CSS padding, as well. Then you won't be married to the space characters being hard-coded into all of your tags.

Хорошая идея - но, к сожалению, это не работает в (всеми любимом браузере ...) 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>

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

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

Server.HtmlDecode("&nbsp;") 

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

Это помогло мне с Perch CMS.

AlexKempton 28.10.2015 13:59

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

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

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

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

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

  SectionsList.ForEach(p => { p.Text = "\xA0\xA0Section: " + p.Text; });

Для меня это было единственное решение в JS с использованием IE / FF / Chrome.

Laszlo Varga 10.03.2014 13:52

У меня тоже была такая же проблема, и я должен был исправить ее как можно скорее. Хотя я много гуглил, я не смог найти быстрого решения.

Вместо этого я использовал свое собственное решение, хотя я не уверен, подходит ли оно, оно работает в моем случае и именно то, что от меня требовалось.

Поэтому, когда вы добавляете ListItem в раскрывающийся список и хотите добавить пространство, используйте следующее: -

Нажмите ALT и введите 0160 на цифровой клавиатуре, так что это должно быть что-то вроде ALT+0160. Это добавит пространство.

ListItem("ALT+0160 ALT+0160 TEST", "TESTVAL")

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

$("#project_product_parent_id option").each(function(i,option){
  $option = $(option);
  $option.text($option.text().replace(/─/g,'\u00A0\u00A0\u00A0'))
});

Я пробовал несколько из этих примеров, но единственное, что сработало, - это использование javascript, очень похожего на dabobert, но не jQuery, а просто старого ванильного javascript и пробелов:

for(var x = 0; x < dd.options.length; x++)
{
    item = dd.options[x];
    //if a line that needs indenting
    item.text = '     ' + item.text; //indent
}

Это только IE. Фактически IE11. Фу.

1.Товары вернуться в список

2. цикл поиска в списке

3 ..

foreach (var item in q)
{
    StringWriter myWriter = new StringWriter();

    myWriter.Lable = HttpUtility.HtmlDecode(item.Label.Replace(" ", "&nbsp;"));
}

Эта работа для меня !!!

В PHP вы можете использовать html_entity_decode:

obj_dat.options[0] = new Option('Menu 1', 'Menu 1');
obj_dat.options[1] = new Option('<?php echo html_entity_decode('&nbsp;&nbsp;&nbsp;'); ?>Menu 1.1', 'Menu 1.1');

Другие вопросы по теме