2010-05-17 7 views
4

고정 폭의 열을 표시합니다 :이 blog에 따르면 명예 공백 패딩 내가이 예에서와 같이 공백으로 패딩 텍스트로 드롭 다운의 열 효과를 만들기 위해 노력하고 <select>

<select style="font-family: courier;"> 
<option value="1">[Aux1+1] [*] [Aux1+1]    [@Tn=PP] </option> 
<option value="2">[Main] [*] [Main Apples Oranges] [@Fu=$p] </option> 
<option value="3">[Main] [*] [Next NP]    [@Fu=n] </option> 
<option value="4">[Main] [Dr] [Main]    [@Ty=$p] </option> 
</select> 

, 그것은 가능합니다.

문제는 공백이 줄어들어 열이 정렬되지 않는다는 것입니다. SAme는 FF, IE6 및 Chrome을 사용합니다.

무엇이 누락 되었습니까?

답변

7

일반 공백 대신 &nbsp;을 사용해야합니다.

예를 들어, 당신은 당신의 옵션을 사용하여이 작업을 수행 할 것입니다 : HTML에서

<option value="2">[Main]&nbsp;&nbsp;&nbsp;[*]&nbsp;&nbsp;[Main Apples Oranges]&nbsp;[@Fu=$p] </option> 
+0

와 asp.net에서을 ListItem을 렌더링합니다. 어떻게 내가 그것을 놓칠 수 있었느냐? 범용 HTML 규칙이 적용됩니다. – Laramie

+0

실제로 ASP.Net 페이지의 코드 숨김에 드롭 다운 목록을로드하고 있었고  을 올바르게 렌더링하는 트릭이 있습니다. 아래 코드. – Laramie

1

공백은 기본적으로 계약을 체결한다. CSS를 사용하여 모노 스페이스 글꼴을 선택하고 (예를 들어 링크하는 예와 같이) 미리 서식이 지정된 공백을 스타일 지정합니다.

option { 
    font-family: monospace; 
    white-space: pre; 
} 
+0

옵션을 선택하면이 기능이 작동합니까? 나는 파이어 폭스 3과 IE7에서 그것을 시도해 보지 못했다. – patmortech

+0

Dangnabbit, 네 말이 맞아 보인다. 줄 바꿈하지 않는 공백을 사용하면 (' ') 작동하는 것처럼 보이므로 @ patmortech의 제안과 함께 할 수 있습니다. –

2

patmortech하여 답변을 확장은 물론 &nbsp; 대신 &amp;nbsp;

//Pad the columns 
string spaceDecode = Server.HtmlDecode("&nbsp;"); 
for (int i = 0; i < ddl.Items.Count; i++) 
{ 
    ListItem item = ddl.Items[i]; 
    item.Text = item .Text.Replace(" ", spaceDecode); 
}