Can you have multiple lines in an <option> element?

前提是你 提交于 2019-11-27 08:56:03
Álvaro González

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.

Neil

This 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>

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.

Shadow Wizard

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!