【发布时间】:2012-04-10 17:10:00
【问题描述】:
我遇到了一些奇怪的 CSS 行为。但是,它在 Firefox、Chrome 和 IE (9) 上的工作方式完全相同,所以我怀疑它是 CSS 标准的一部分,但是,我找不到任何关于为什么会出现这种情况的参考。
我有一个 div,里面有一些文字。当我设置font-size大于line-height时,div的高度是用line-height计算的,但是内容要大很多。也就是说,框中的文本比框本身大得多。我对这里的情况有一个 jsfiddle:
如果您将鼠标移动到边界框上方,您可以在进入 div 之前看到悬停 css 激活。同样,单击靠近但仍在框外会激活 javascript 单击事件。在这里查看内容框的位置稍微容易一些:
当 div 上的 display 属性设置为 inline 时,高度计算正确(由于各种样式原因,我不能这样做)。另外,如果我将溢出属性设置为隐藏,问题就解决了。对我来说,这表明内容大于其包含框,但我不知道为什么。特别想知道为什么对象的“height”css box模型属性小于页面上显示的实际高度。
我查看了 CSS 规范,但没有看到我的答案,但我怀疑那里可能有我遗漏的东西。
编辑
我找到了以下链接,其中提到了我遇到的问题,但我不知道它们的来源是什么,或者为什么会这样。
另外,对于我收到的一些答案,我不是在寻找如何修复我的 CSS 以使悬停问题不再出现,我在寻找 为什么 它发生在第一名。
再次编辑 显然,框的任何内容,无论是否在框的边界内都会调用悬停在框上。 (请参阅 Lister 先生对 This answer 的评论。我真正想知道的是规范中这种行为的来源。它在那里?还是所有浏览器都同意的实现?
【问题讨论】:
-
既然你可以通过增加其中文本的行高来使 div 变大,当然你也可以通过降低行高来使 div 变小。对我来说唯一的惊喜是悬停区域变成了非矩形。
-
是的,这也是我感到惊讶的地方。我希望使用 line-height 使框更小,我不想要的是悬停行为(正如我所提到的,可以通过使用 overflow:hidden 来解决)
标签: css