如何在HTML select元素的选项文本之前放置空格字符?

如何在HTML select元素的选项文本之前放置空格字符?,html,html-select,Html,Html Select,在下拉列表中,我需要在列表中的选项前面添加空格。我正在努力 <select> <option>&#32;&#32;Sample</option> </select> 样品 用于添加两个空间,但不显示任何空间。如何在选项文本之前添加空格 &nbsp; 你能试试吗?还是相同?难道空间的实体不是吗 <select> <option>&#160;option 1</o

在下拉列表中,我需要在列表中的选项前面添加空格。我正在努力

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

  样品
用于添加两个空间,但不显示任何空间。如何在选项文本之前添加空格

&nbsp;
你能试试吗?还是相同?

难道空间的实体不是吗

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

 选择1
选择2
为我工作

编辑:
刚刚检查了这个,在旧的浏览器中可能存在兼容性问题,但是这里的一切似乎对我来说都很好。我想我应该让你知道,因为你可能想用

替换,我想你想要
&160

因此,您的示例的固定版本可能是

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

样品


  样品

我几乎可以肯定,使用CSS填充也可以实现这一点。这样,您就不会与硬编码到所有
标记中的空格字符结婚。

@Brian


我几乎可以肯定,您也可以通过CSS填充来实现这一点。那么你就不会嫁给那些硬编码到你所有标签中的空格字符了

好主意-但不幸的是,它在(每个人最喜欢的浏览器…)IE7中不起作用:-(

下面是一些可以在Firefox中使用的代码(我假设是Op/Saf)


废话
废话
废话
废话
废话

正如Rob Cooper指出的,与旧浏览器存在一些兼容性问题(IE6将显示实际字母“

这就是我在ASP.Net中处理它的方式(我没有打开的VS,所以我不确定它到底被翻译成了什么字符):


你也可以按alt+space(在mac上)来获得不间断的空格。我将其用于Drupal模块,因为Drupal解码html实体。

Server.htmlCode(“”
)是唯一对我有效的

否则,chr将打印为文本


我尝试将填充添加为listitem的一个属性,但它没有影响它。

只需使用char 255(在数字键盘上键入Alt+2+5+5)和单空格字体,如
Courier New

使用\xA0和字符串。 这在将C#模型数据绑定到下拉列表时非常有效

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

我也遇到了同样的问题,我被要求尽快解决这个问题。尽管我在谷歌上搜索了很多,但我无法找到一个快速的解决方案

相反,我使用了我自己的解决方案,虽然我不确定它是否合适,但它在我的情况下有效,并且我确实需要这样做

因此,当您在下拉列表中添加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
}
for(var x=0;x
这只是IE。实际上是IE11。呃。

1。项目返回列表

2.列表中的Foreach循环

3


这对我来说很有用!!!

在PHP中,您可以使用html\u实体\u解码:

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');
obj_dat.options[0]=新选项(“菜单1”、“菜单1”);
对象数据选项[1]=新选项(“菜单1.1”、“菜单1.1”);

这不起作用,因为将显示为而不是空间。它对我起作用(显示空间不起作用)在Chrome v23中。你在哪里看到它的显示?你有没有机会看到它而不是它?在firefox上不工作,将&…显示为字符串对于那些看到字面而不是空格的人来说,我在使用Chrome的inspector时遇到了这种情况。我输入,它将&;变成&;我必须右键单击我想要的字段要进行编辑,请单击“编辑为HTML”。这会将转换为一个空格。对我来说,这是JS中使用IE/FF/Chrome的唯一解决方案。这对我使用Perch CMS有帮助。我希望你能提供一些代码。我想你是对的,css会使这更容易,但不确定选项是否可以包含div或table。
$("#project_product_parent_id option").each(function(i,option){
  $option = $(option);
  $option.text($option.text().replace(/─/g,'\u00A0\u00A0\u00A0'))
});
for(var x = 0; x < dd.options.length; x++)
{
    item = dd.options[x];
    //if a line that needs indenting
    item.text = '     ' + item.text; //indent
}
foreach (var item in q)
{
    StringWriter myWriter = new StringWriter();

    myWriter.Lable = HttpUtility.HtmlDecode(item.Label.Replace(" ", "&nbsp;"));
}
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');