【问题标题】:Firefox incorrectly applies vertical margin to inline elementsFirefox 错误地将垂直边距应用于内联元素
【发布时间】:2015-07-24 02:59:29
【问题描述】:

我相信理论上垂直边距不应该应用于内联元素。但是,在下面的示例中,Firefox 将margin-top 应用于<b> 元素(并且<a> 元素也有一些垂直顶部间距,尽管我不确定它来自哪里)。我尝试过的所有其他浏览器都不会这样做,即<b> 元素跟在<a> 元素下面一行,它们之间没有额外的边距。我使用的是 Firefox 39.0。

这是 Firefox 中的错误,还是 Firefox 做对了?有谁知道一个简单的解决方法?

* + * {
    margin-top: 1.5em;
}
<p>
    <a href="#" class="internal-link">The Link</a>
    <br>
    <b>September 23, 6:30-8:30 pm</b>
    <br>
    Eros odio legentis gothica videntur liber. Euismod lectores imperdiet augue putamus insitam. Typi vulputate parum praesent mirum hendrerit. 
</p>
<p>
    <a href="#" class="internal-link">The Link</a>
    <br>
    <b>September 23, 6:30-8:30 pm</b>
    <br>
    Eros odio legentis gothica videntur liber. Euismod lectores imperdiet augue putamus insitam. Typi vulputate parum praesent mirum hendrerit. 
</p>

【问题讨论】:

  • *+* 是一种不稳定的选择方式......它本质上意味着:anyTag 前面是 anyTag ...换句话说:任何事之后。
  • Ole Sauffaus,确切地说......它是“公理化的叶状体化猫头鹰选择器”:alistapart.com/article/axiomatic-css-and-lobotomized-owls
  • 您遇到了 CSS 规范中没有明确规定的内容布局情况,这有点奇怪。很好看!

标签: css firefox


【解决方案1】:

在 Firefox 中,br 元素可以采用顶部/底部边距值。

如果将其归零,则会得到预期的行为。

注意: CSS 规范中关于如何处理空行框(没有内容的行)似乎有些含糊。例如,如果您阅读:

http://www.w3.org/TR/CSS21/visudet.html#line-height

“空行内元素生成空行内框,但这些框仍然有边距、内边距、边框和行高...”这可以解释为意味着可以为 &lt;br&gt; 元素分配顶部/底部边距.这似乎是 Firefox 解释规范的方式,但 Chrome 采取了另一种方法。

另请参阅以下存档讨论:

http://lists.w3.org/Archives/Public/www-style/2008Jun/0232.html

http://community.sitepoint.com/t/br-spacing-line-height/4854

我喜欢 br 元素不应该设置样式的观点,因此一些浏览器会忽略任何指定的行高或边距值。您刚刚选择了一个适用于 br 元素的选择器。

* + * {
    margin-top: 1.5em;
}
br {
   margin-top: 0;
}
<p>
    <a href="#" class="internal-link">The Link</a>
    <br>
    <b>September 23, 6:30-8:30 pm</b>
    <br>
    Eros odio legentis gothica videntur liber. Euismod lectores imperdiet augue putamus insitam. Typi vulputate parum praesent mirum hendrerit. 
</p>
<p>
    <a href="#" class="internal-link">The Link</a>
    <br>
    <b>September 23, 6:30-8:30 pm</b>
    <br>
    Eros odio legentis gothica videntur liber. Euismod lectores imperdiet augue putamus insitam. Typi vulputate parum praesent mirum hendrerit. 
</p>

【讨论】:

  • 不幸的是,Firebug 或其他开发人员工具会在错误的元素上显示margin-top。例如,当我将鼠标悬停在&lt;b&gt; 上时,我看到黄色的margin-top,但在&lt;br&gt; 上时看不到。
猜你喜欢
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
  • 2012-09-07
  • 1970-01-01
  • 2012-03-29
  • 2012-04-02
  • 2014-01-22
相关资源
最近更新 更多