簡體   English   中英

如何在HTML選擇元素中的選項文本之前放置空格字符?

[英]How do I put a space character before option text in a HTML select element?

在下拉列表中,我需要在列表中的選項前添加空格。 我在嘗試

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

添加兩個空格但不顯示空格。 如何在選項文本之前添加空格?

&#160是空間的實體?

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

對我有用......

編輯:

剛檢查一下,在舊版瀏覽器中可能存在兼容性問題,但在這里似乎一切正常。 只是想我應該讓你知道,因為你可能想要替換為&nbsp;

\\ xA0與String 一起使用。 這項工作完美,同時將C#模型數據綁定到下拉列表...

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

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

所以你的例子的固定版本可能是......

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

要么

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

正如Rob Cooper指出的那樣,舊瀏覽器存在一些兼容性問題(IE6會顯示實際的字母“&nbsp;”

這就是我在ASP.Net中解決這個問題的方法(我沒有打開VS所以我不確定這些字符實際上被翻譯成了什么):

Server.HtmlDecode("&nbsp;") 

我嘗試了很多東西,但唯一對我有用的是使用javascript。 只是注意到我使用的是unicode代碼用於空間而不是html實體,因為js doenst知道關於實體的事情

$("#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(在數字鍵盤上輸入Alt + 2 + 5 + 5 )和Courier New等等寬字體。

&nbsp;

你能試試嗎? 還是一樣嗎?

Server.HtmlDecode("&nbsp;")是唯一適合我的。

否則chr將打印為文本。

我試圖將填充添加為listitem的屬性,但它並沒有影響它。

我也有同樣的問題,我被要求盡快解決這個問題。 雖然我搜索了很多,但我找不到快速的解決方案。

相反,我使用了自己的解決方案,雖然我不確定它是否合適,但它適用於我的情況以及我需要做的事情。

因此,當您在下拉列表中添加ListItem並且想要添加空間時,請使用以下內容: -

ALT鍵並在數字鍵盤上鍵入0160 ,因此它應該類似於ALT+0160 它會增加一個空間。

ListItem("ALT+0160 ALT+0160 TEST", "TESTVAL")

在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');

我嘗試了幾個這樣的例子,但唯一有用的是使用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。 啊。

1.Items返回列表

2.Foreach循環列表

3 ..

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

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

這項工作對我來說!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM