31

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

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

用于添加两个空格,但它不显示空格。如何在选项文本前添加空格?

4

15 回答 15

30

实体不&#160就是空间吗?

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

为我工作...

编辑:

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

于 2008-08-25T08:06:18.490 回答
25

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

  SectionsList.ForEach(p => { p.Text = "\xA0\xA0Section: " + p.Text; });
于 2013-07-25T10:21:17.957 回答
14

我想你想要&nbsp;&#160;

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

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

或者

<select>
  <option>&#160;&#160;Sample</option>
</select>
于 2008-08-25T08:06:27.507 回答
9

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

这就是我在 ASP.Net 中解决它的方法(我没有打开 VS,所以我不确定这实际上被翻译成什么字符):

Server.HtmlDecode("&nbsp;") 
于 2010-09-10T14:45:35.330 回答
8

我尝试了多种方法,但唯一对我有用的是使用 javascript。请注意,我使用的是空间的 unicode 代码而不是 html 实体,因为 js 不知道关于实体的事情

$("#project_product_parent_id option").each(function(i,option){
  $option = $(option);
  $option.text($option.text().replace(/─/g,'\u00A0\u00A0\u00A0'))
});
于 2014-07-20T05:26:00.643 回答
5

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

于 2010-10-27T12:29:26.620 回答
4

我几乎可以肯定您也可以使用 CSS 填充来完成此操作。这样您就不会与硬编码到所有<option>标签中的空格字符结婚了。

于 2008-08-25T10:26:43.770 回答
4

@布莱恩

我几乎可以肯定您也可以使用 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>
于 2008-08-25T11:37:15.910 回答
3

只需使用带有等宽字体的char 255(在数字键盘上键入++ Alt2,如.55Courier New

于 2012-06-11T19:31:36.670 回答
2
&nbsp;

你能试试吗?还是一样?

于 2008-08-25T08:03:50.243 回答
1

Server.HtmlDecode("&nbsp;")是唯一对我有用的。

否则 chr 将打印为文本。

我尝试将填充添加为列表项的属性,但它没有影响它。

于 2011-02-23T14:28:03.940 回答
1

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

相反,我使用了自己的解决方案,虽然我不确定它是否合适,但它适用于我的情况,并且正是我需要做的。

因此,当您在下拉列表中添加 ListItem 并且想要添加空间时,请使用以下内容:-

在数字小键盘上按下ALT并输入0160,所以它应该类似于ALT+0160. 它会增加一个空格。

ListItem("ALT+0160 ALT+0160 TEST", "TESTVAL")
于 2014-05-15T09:33:12.837 回答
1

在 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');
于 2019-08-08T14:23:47.310 回答
-1

我尝试了其中几个示例,但唯一有效的是使用 javascript,很像 dabobert 的,但不是 jQuery,只是普通的旧 vanilla 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。啊。

于 2017-10-31T14:55:35.873 回答
-1

1.项目返回列表

2.列表中的Foreach循环

3..

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

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

这对我有用!!!

于 2017-12-13T09:53:05.810 回答