【问题标题】:Bootstrap rendering inconsistencyBootstrap 渲染不一致
【发布时间】:2013-04-17 09:15:37
【问题描述】:

在使用 Bootstrap 时,Chrome(正确)和 Firefox(错误)之间的渲染不一致。这是我的代码(小提琴here):

<div class='container'>
    <form class='form-horizontal well span6 offset3'>
        <label class='control-label'>Testy</label>
        <div class='controls'>
            <select></select>
        </div>
    </form>
    <legend>Hello!</legend>
</div>

不一致的原因是什么?如何修复 Firefox 渲染以使其与 Chrome 匹配?

【问题讨论】:

  • 你使用 吗?
  • @NitzanShaked:是的,当然。

标签: html css google-chrome firefox twitter-bootstrap


【解决方案1】:

这似乎是 Firefox 和 Chrome 呈现 fieldset 标记的方式,至少在您引用的 Bootstrap 的非响应版本中是这样。为了消除变量,我删除了对 Bootstrap 的引用并链接到 bootstrapcdn.com's version,这似乎解决了问题。

如果不出意外,您总是可以在 fieldset 标记中添加一些 CSS,以确保它在所有现代浏览器中呈现相同。

fieldset { clear: both; }

更新:看起来我没有注意,我更新了这个答案以在legend标签上反映CSS,而不是fieldsetJSFiddle Here.

legend { clear: both; }

【讨论】:

  • 我已经用支持小提琴和 正确 CSS 选择器更新了我的答案。希望这会有所帮助。
【解决方案2】:

图例标签应放置在表单标签内,并且还应在其周围放置一个字段集标签。

从 Bootstrap 看这个例子:

<form>
<fieldset>
<legend>Legend</legend>
<label>Label name</label>
<input type="text" placeholder="Type something…">
<span class="help-block">Example block-level help text here.</span>
<label class="checkbox">
<input type="checkbox"> Check me out
</label>
<button type="submit" class="btn">Submit</button>
</fieldset>
</form>

对于您的代码,它将是:

<div class='container'>
 <form class='form-horizontal well span6 offset3'>
  <fieldset>
   <label class='control-label'>Testy</label>
   <div class='controls'>
    <select></select>
   </div>
   <legend>Hello!</legend>
  </fieldset>
 </form>
</div>

【讨论】:

  • 图例只能用作 fieldset 元素的子元素,而 fieldset 元素又是表单标签的子元素。 developer.mozilla.org/en-US/docs/HTML/Element/legend
  • What he siad。事实上,从技术上讲,只是作为fieldset 标签的子标签,正如@BillyMoat 在他的回答中指出的那样。
  • 好的,知道了:jsfiddle.net/zzxRC/4。请看我的回答。 @BillyMoat:那不是我想要的!
  • 要使其成为有效的 HTML,您仍然需要围绕它的字段集。我怀疑你并不需要一个图例标签来表示你想要的东西。使用自定义样式的 h2 或 div 可能会更好。