如何在 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; });
正如 Rob Cooper 指出的,旧版浏览器存在一些兼容性问题(IE6 将显示实际字母“ ”)
这就是我在 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+space(在 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>
只需使用 char 255 (类型 替代+2+5+5 在数字键盘上)使用等宽字体,例如 Courier New
.
Server.HtmlDecode(" ")
是唯一对我有用的。
否则,字符将作为文本打印。
我尝试将填充添加为列表项的属性,但它并没有影响它。
你能尝试一下吗?或者说是一样的吗?
我也遇到了同样的问题,我被要求尽快解决这个问题。尽管我用谷歌搜索了很多,但我无法找到快速的解决方案。
相反,我使用了自己的解决方案,尽管我不确定它是否合适,但它适用于我的情况,并且正是我需要做的。
因此,当您在下拉列表中添加 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(" ", " "));
}
这对我有用!