admin管理员组文章数量:1178553
Is there a way to have multiple lines in an <option>
element?
Like this:
-------------------------
| Normal <option> element |
-------------------------
| <option> element broken |
| onto two lines |
-------------------------
| Normal <option> element |
-------------------------
Is there any HTML/CSS approach, or should I use JavaScript?
Is there a way to have multiple lines in an <option>
element?
Like this:
-------------------------
| Normal <option> element |
-------------------------
| <option> element broken |
| onto two lines |
-------------------------
| Normal <option> element |
-------------------------
Is there any HTML/CSS approach, or should I use JavaScript?
Share Improve this question edited Jan 20, 2011 at 12:08 Paul D. Waite 98.8k57 gold badges202 silver badges271 bronze badges asked Jan 20, 2011 at 11:57 DarkLeafyGreenDarkLeafyGreen 70.4k134 gold badges390 silver badges614 bronze badges 5- what is mean by multiple lines in an option element? – Vivek Commented Jan 20, 2011 at 12:02
- normally you have a one line in an option element that you select, I want to have two lines in that element, so e.g. each option has 2 lines – DarkLeafyGreen Commented Jan 20, 2011 at 12:03
- possible duplicate of multi-line options in htm select – Mark Rogers Commented Nov 19, 2014 at 19:06
- Possible duplicate of Word wrap options in a select list – DavidRR Commented Jul 2, 2018 at 20:26
- Does this answer your question? Line Break in HTML Select Option? – Heretic Monkey Commented Nov 29, 2021 at 22:52
5 Answers
Reset to default 7This may not be what you want, but you can get two lines per option, by using the "optgroup" tag e.g:
<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>
It's a particular case of displaying HTML tags inside an <option></option>
element. As far as I know, browsers behave very differently in this area (Firefox displays even images, other browsers ignore most or all tags) and there isn't a cross-browser solution. You'll probably need to emulate it with JavaScript and a different markup.
At http://www.w3.org/TR/2011/WD-html-markup-20110113/option.html they say:
Permitted contents: normal character data
... which is defined at http://www.w3.org/TR/2011/WD-html-markup-20110113/syntax.html#normal-character-data
The spec is hard to understand, as usual, but I understand that you cannot insert a literal <
(i.e., an HTML tag such as <br>
). I cannot find where it defines the behaviour with blank space but most browsers appear to collapse it.
The problem with select's is that they are OS form elements as opposed to web form elements. That's why it's not possible to style them in some browsers (cough... IE6) unlike other inputs. Have you seen an example of this anywhere? As the operating system doesn't accommodate this, the browser won't either.
I'd also point out that it's not very user friendly. Users are used to the idea of a select box containing options on single lines. If you start to put them on multiple lines, you are going against the grain of the select box's usability and inherent accessibility. It might not be such a good idea to take this route.
Just my opinion, but hope it makes sense.
I’m afraid not. Browsers seem to ignore newline characters and HTML <br>
tags inside <option>
elements, and I don’t think JavaScript provides any way to manipulate how this text appears.
No, you'll have to build custom drop down list for such a thing.
jQuery offers lots of these; you can probably use CSS to define height
for specific options to achieve what you need.
本文标签: javascriptCan you have multiple lines in an ltoptiongt elementStack Overflow
版权声明:本文标题:javascript - Can you have multiple lines in an <option> element? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738075288a2059478.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论