2
<form class="form" id="profile_form">
   <legend>Your profile</legend>
     <div class="control-group ">
         <label class="control-label">Phone</label>
         <div class="controls">
         <input type="text" id="phone" class="span5">
         <div class="help-block phone_not_confirmed need_confirm">
          To confirm your phone number, please check for a text message from us.
         </div>
         <label class="checkbox">
         <input type="checkbox" id="phone_visible">
           Display my phone number to the public
         </label>
       </div>
     </div>

…………

在 IE8 中,文本“您的个人资料”出现,但它没有样式。注意:我正在使用 Bootstrap。

4

2 回答 2

7

IE 中有一个奇怪的行为。IE7 和 IE8 会关闭它在不在 fieldset 元素内时遇到的图例元素,并将其内容移出到相邻​​的文本节点。

因此,一种解决方法是将您的图例包装在字段集中。

来源:http ://html5doctor.com/legend-not-such-a-legend-anymore/

于 2013-04-26T05:51:32.697 回答
5

IE8 是在 HTML5 发明之前发布的。因此,它对 HTML5 规则一无所知,并坚持使用 HTML4 规则。

在 HTML4 规则下,<legend>标签只有在它是标签的子标签时才有效<fieldset>

因此,您的代码被 IE8 视为无效标记。一旦你得到了无效的标记,你就不能保证浏览器会做什么。

在 HTML5 下,关于它在 a 中的规则<fieldset>不再适用,因此现代浏览器应该可以接受它。但是像 IE8 这样的旧浏览器可能会遇到困难。

如果您需要支持 IE8,我的建议是改用 a<div>或其他通用标签,或者将其包装在 a 中,<fieldset>如果这样做是语义的话(在这种情况下就是这样)。

于 2013-04-26T14:27:10.193 回答