Как поместить символ пробела перед текстом параметра в элементе выбора HTML?
-
09-06-2019 - |
Вопрос
В раскрывающемся списке мне нужно добавить пробелы перед опциями в списке.я пытаюсь
<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>
Использовать \xA0 со строкой.Это прекрасно работает при привязке данных модели C# к раскрывающемуся списку...
SectionsList.ForEach(p => { p.Text = "\xA0\xA0Section: " + p.Text; });
Как отметил Роб Купер, существуют некоторые проблемы совместимости со старыми браузерами (IE6 будет отображать настоящие буквы «& nbsp;»).
Вот как я обхожу это в ASP.Net (у меня нет открытой VS, поэтому я не уверен, на какие символы это на самом деле переводится):
Server.HtmlDecode(" ")
Я пробовал несколько вещей, но единственное, что мне помогло, это использование JavaScript.просто обратите внимание, что я использую код Unicode для пространства, а не объект html, поскольку js ничего не знает о сущностях
$("#project_product_parent_id option").each(function(i,option){
$option = $(option);
$option.text($option.text().replace(/─/g,'\u00A0\u00A0\u00A0'))
});
Вы также можете нажать Alt+пробел (на Mac), чтобы получить неразрывный пробел.Я использую его для модуля Drupal, потому что Drupal декодирует объекты html.
Я почти уверен, что вы можете добиться этого и с помощью CSS-дополнений.Тогда вы не будете женаты на космических символах, жестко закодированных во всех ваших <option>
теги.
@Брайан
Я почти уверен, что вы можете добиться этого и с помощью 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>
Просто используйте символ 255 (введите Альтернативный вариант+2+5+5 на цифровой клавиатуре) моноширинным шрифтом, например Courier New
.
Server.HtmlDecode(" ")
это единственный, который сработал для меня.
В противном случае chr печатается как текст.
Я попытался добавить отступ в качестве атрибута для элемента списка, однако это не повлияло на него.
Можете ли вы попробовать это?Или это то же самое?
У меня тоже была такая же проблема, и мне нужно было исправить ее как можно скорее.Хотя я много гуглил, мне не удалось найти быстрого решения.
Вместо этого я использовал свое собственное решение, хотя я не уверен, что оно подходит, оно работает в моем случае и именно то, что мне нужно было сделать.
Поэтому, когда вы добавляете ListItem в раскрывающийся список и хотите добавить пространство, используйте следующее: -
Нажимать АЛЬТ и введите 0160
на цифровой клавиатуре, поэтому это должно быть что-то вроде ALT+0160
.Это добавит пространство.
ListItem("ALT+0160 ALT+0160 TEST", "TESTVAL")
Я попробовал несколько таких примеров, но единственное, что сработало, это использование 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. Цикл Foreach в списке
3..
foreach (var item in q)
{
StringWriter myWriter = new StringWriter();
myWriter.Lable = HttpUtility.HtmlDecode(item.Label.Replace(" ", " "));
}
Для меня это работа!!!