2

我意识到嵌套在选项元素中(除了optgroup)是违反 w3c 标准的。但是,是否有任何元素不违反此标准?

4

2 回答 2

6

不,它的内容模型text

http://www.w3.org/TR/html5/forms.html#the-option-element

于 2012-05-04T19:15:59.267 回答
1

根据 HTML 语法规则,您不能将任何元素嵌套在option. (你可以嵌套option在里面optgroup,但这是一个不同的问题。)

浏览器强制执行此操作:它们丢弃option. 您可以通过<option>foo <em>bar</em></option>使用 Firebug 进行测试和查看文档来了解这一点。

但是,可以option使用脚本在元素内插入 DOM 元素,例如

<option id=foo>
...
<script>
  document.getElementById('foo').innerHTML = 'Hello <em>world</em>';
</script>

option这并不是特别有用,因为浏览器对元素内容的样式施加了严格的限制。em在我测试的浏览器中,只有 Firefox以通常的方式(斜体)在此上下文中呈现元素,em并让我在 CSS 中设置它的颜色和背景。

而且,当然,以违反 HTML 规则的方式使用 DOM 是有风险的。

于 2012-05-05T04:38:00.590 回答