我有一个<option>列表,其中的项目按字母顺序列出.问题是字母字符后面的标题不是垂直排列的.特别是在选项中可以看到这一点:I.亨廷顿剧院,它离左边太远.
理想情况下,我希望字母字符(a,b,c)对齐,标题左对齐.
有关垂直对齐每个标题的第一个字符的建议吗?

这是代码:
<select id="selectLocation" style="color:#09F; font-size:18px;" name="categories">
<option style="color:#999999;">Choose an Attraction</option>
<option></option>
<option value='boscenChoice'>A. Boston Medical Center</option>
<option value='boslibChoice'>B. Boston Public Library</option>
<option value='chrcenChoice'>C. Christian Science Center</option>
<option value='chuapaChoice'>D. Church Park Apartments</option>
<option value='copplaChoice'>E. Copley Place Shopping</option>
<option value='fenparChoice'>F. Fenway Park</option>
<option value='findisChoice'>G. Financial District</option>
<option value='houbluChoice'>H. House of Blues</option>
<option value='huntheChoice'>I. Huntington Theatre</option>
<option value='isamusChoice'>J. Isabella Stewart Gardener Museum</option>
<option value='logairChoice'>K. Logan International Airport</option>
<option value='lonmedChoice'>L. Longwood Medical and Academic Area</option>
<option value='mashosChoice'>M. Massachusetts General Hospital</option>
<option value='mastecChoice'>N. Massachusetts Institue of Technology</option>
<option value='musartChoice'>O. Museum of Fine Arts</option>
<option value='newstrChoice'>P. Newbury Street Shopping</option>
<option value='prucenChoice'>Q. Prudential Center Shopping</option>
<option value='pubgarChoice'>R. Public Garden</option>
<option value='symhalChoice'>S. Symphony Hall</option>
</select>
Run Code Online (Sandbox Code Playgroud)
您可以使用其中一种等宽字体,例如Courier:
style="color:#09F; font-size:18px; font-family:Courier"
Run Code Online (Sandbox Code Playgroud)
UPDATE
作为JS替代方案,您可以使用jQuery SELECT2插件.它允许您以多种不同方式格式化下拉列表并添加许多选项.
例如,您可以像这样定义它:
$('#selectLocation').select2(
{
width:'400px',
formatResult: format,
formatSelection: format,
});
Run Code Online (Sandbox Code Playgroud)
此方法允许您传递自定义格式设置功能,您可以像这样定义:
function format(option) {
if (option.id.indexOf('Choice') != -1) {
return "<span style='display:inline-block;width:20px'>" + option.text.substring(0,2) + "</span>" + option.text.substring(2)
} else {
return option.text
}
}
Run Code Online (Sandbox Code Playgroud)
这样做 - 将字母字符分隔为自己的固定宽度SPAN - 为您提供所需的外观.
演示2:http://jsfiddle.net/fmsFF/1/