有没有办法在<option>
元素中包含多行?
像这样:
-------------------------
| Normal <option> element |
-------------------------
| <option> element broken |
| onto two lines |
-------------------------
| Normal <option> element |
-------------------------
是否有HTML / CSS方法,或者我应该使用JavaScript吗?
答案 0 :(得分:8)
这可能不是你想要的,但你可以每个选项获得两行,使用“optgroup”标签,例如:
<select>
<optgroup label="Click below for 'yes'">
<option value="yes">Yes</option>
</optgroup>
<optgroup label="Click below for 'No'">
<option value="no">No</option>
</optgroup>
</select>
答案 1 :(得分:5)
这是在<option></option>
元素中显示HTML标记的特殊情况。据我所知,浏览器在这方面的表现非常不同(Firefox显示图像,其他浏览器忽略大多数或所有标签),并且没有跨浏览器解决方案。您可能需要使用JavaScript和不同的标记来模拟它。
在http://www.w3.org/TR/2011/WD-html-markup-20110113/option.html他们说:
允许的内容:正常的字符 数据
...在http://www.w3.org/TR/2011/WD-html-markup-20110113/syntax.html#normal-character-data
定义与往常一样,规范很难理解,但据我所知,您无法插入文字<
(即<br>
等HTML标记)。我无法找到用空格定义行为的位置,但大多数浏览器似乎都会将其折叠。
答案 2 :(得分:4)
select的问题在于它们是OS表单元素而不是Web表单元素。这就是为什么不可能在某些浏览器中设置样式(咳嗽...... IE6 ),这与其他输入不同。你有没有看到这方面的例子?由于操作系统不适应这种情况,浏览器也不会。
我还要指出它不是非常用户友好。用户习惯于在单行上包含选项的选择框。如果你开始将它们放在多行上,那么你就会违背选择框的可用性和固有的可访问性。采取这条路线可能不是一个好主意。
只是我的意见,但希望它有意义。
答案 3 :(得分:4)
我不敢。浏览器似乎忽略了<br>
元素中的换行符和HTML <option>
标记,我认为JavaScript不提供任何方法来操纵此文本的显示方式。
答案 4 :(得分:3)
不,你必须为这样的事情建立自定义下拉列表。
jQuery提供了很多这些;您可以使用CSS来定义height
以获得满足您需要的特定选项。