В раскрывающемся списке мне нужно добавить пробелы перед параметрами в списке. я пытаюсь
<select>
<option>  Sample</option>
</select>
для добавления двух пробелов, но не отображает пробелов. Как я могу добавить пробелы перед текстами опций?






Вы можете это попробовать? Или это то же самое?
Разве   не создан для космоса?
<select>
<option> option 1</option>
<option> option 2</option>
</select>
Работает на меня...
Только что проверил, у май есть проблемы совместимости с этим в старых браузерах, но, похоже, здесь все работает нормально. Просто подумал, что должен сообщить вам, как вы, возможно, захотите заменить на
Я думаю, вам нужен или  
Итак, фиксированная версия вашего примера может быть ...
<select>
<option> Sample</option>
</select>
или же
<select>
<option>  Sample</option>
</select>
Он работает для меня (не отображает пробел) в Chrome v23. Где вы это видите? Есть ли у вас шанс & nbsp; скорее, чем ?
не работает в firefox, отображая & ... в виде строки
Для тех из вас, кто видит буквально, а не пробел, я столкнулся с этим при использовании инспектора Chrome. Я набрал, и & превратилось в &. Мне пришлось щелкнуть правой кнопкой мыши поле, которое я хотел отредактировать, и выбрать «Редактировать как HTML». Затем это превращает в пространство.
Я почти уверен, что вы также можете добиться этого с помощью заполнения CSS. Тогда вы не будете женаты на пробелах, жестко закодированных во всех ваших тегах <option>.
Я бы хотел, чтобы ты скинул какой-нибудь код. Я думаю, что вы правы, css упростит это, но не уверен, могут ли параметры содержать div или таблицы.
@Брайан
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(" ")
Вы также можете нажать alt + пробел (на Mac) для неразрывного пробела. Я использую его для модуля Drupal, потому что Drupal декодирует html-сущности.
Это помогло мне с Perch CMS.
Server.HtmlDecode(" ") - единственный, который у меня работал.
В противном случае chr печатаются как текст.
Я попытался добавить отступ в качестве атрибута для элемента списка, но это не повлияло на него.
Просто используйте char 255 (введите Alt + 2 + 5 + 5 на цифровой клавиатуре) с моноширинным шрифтом, например Courier New.
Используйте \ xA0 со строкой. Это отлично работает при привязке данных модели C# к раскрывающемуся списку ...
SectionsList.ForEach(p => { p.Text = "\xA0\xA0Section: " + p.Text; });
Для меня это было единственное решение в JS с использованием IE / FF / Chrome.
У меня тоже была такая же проблема, и я должен был исправить ее как можно скорее. Хотя я много гуглил, я не смог найти быстрого решения.
Вместо этого я использовал свое собственное решение, хотя я не уверен, подходит ли оно, оно работает в моем случае и именно то, что от меня требовалось.
Поэтому, когда вы добавляете 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(" ", " "));
}
Эта работа для меня !!!
В 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(' '); ?>Menu 1.1', 'Menu 1.1');
Это не сработает, так как будет выходить скорее как пробел.