Height 如果body或h2具有线条高度,则链接高度大于父级h2

Height 如果body或h2具有线条高度,则链接高度大于父级h2,height,css,Height,Css,我试图理解为什么会发生这种情况 如果我有一个来尝试理解这一点 从我对规范的阅读来看,一个块级元素h2中的内联元素a应该继承父行高度。我在h2上编辑了一个较大的行高的示例。给a一个内联块的显示显然使它更合适,但它仍然不能行通过并完全删除行高(因此使用浏览器默认的行高1.2) 这可能不是问题本身,我只是想了解行为 [更新3]我意识到,如果我将a的行高更改为大于h2,则h2框的总高度(上面的示例中为粉红色)确实会增加,因此a从h2继承行高。令人困惑的是链接高度(可点击区域)和边框底部位置不会改变,而h

我试图理解为什么会发生这种情况

如果我有一个
来尝试理解这一点

从我对规范的阅读来看,一个块级元素
h2
中的内联元素
a
应该继承父行高度。我在
h2
上编辑了一个较大的行高的示例。给
a
一个内联块的显示显然使它更合适,但它仍然不能行通过并完全删除行高(因此使用浏览器默认的行高1.2)

这可能不是问题本身,我只是想了解行为


[更新3]我意识到,如果我将
a
行高更改为大于
h2
,则
h2
框的总高度(上面的示例中为粉红色)确实会增加,因此
a
h2
继承
行高。令人困惑的是链接高度(可点击区域)和边框底部位置不会改变,而
h2
上的边框底部会随着行高移动。

我看不出您的问题。在你提供的链接中,绝对没有什么奇怪的。在h2中有一个链接。所以链接的字体大小得到h2的字体大小。但是a比h2大不了多少。

这不是问题吗


但是添加
显示:块到你的锚,它的行为将更像你期望的那样

你有一个包含链接的h2

h2和链接的行高为1(继承),但链接的显式字体大小为3em

这意味着,字体大小与容器一样大,这可能会导致在不同的浏览器中产生不同的结果


在Firefox(版本13)中,结果是父容器(h2)的顶部和底部出现溢出。

您是否尝试删除
的边距?在大多数浏览器中,它的默认边距为0.5em

如果这是你能读到的问题

编辑:
你有两种容器,一种是高度固定的牙线块; 一个内联女巫有自动仇恨。。默认边距和间距(将链接想象为段落的一部分…)


要获得预期结果,您可以在

上添加
display:inline block
。。。我不能理解这个问题..不知道你所说的“链接高度”是什么意思你是指
font size:3rem
有效为
字体大小:3em
或其他一些度量值如
rem
无效。如果我在
上设置了一个通用线高度,那么这也应该适用于
?基本上,我没有得到我期望的行为,我试图理解为什么。
rem
不是无效的,它是一个CSS3单元。它的意思是“root em”,指的是
字体大小。在生产代码中,您在px中显然会有一个后备
font size
font size
为3rem,而
行高
为1(继承)。
作为
的子项,是否应同时继承
行高和
字体大小?我还尝试在
上显式设置
行高
,并将其
字体大小
更改为3rem,这两种方法都没有任何效果。另外,删除
行高
会使它们按预期排列得很好。是的,但问题是,“行高:1;”等于浏览器的1*字体大小,“字体大小:3em;”等于浏览器的3*字体大小,这意味着字体大小比行高大3倍。据我所知,线高度继承不是这样工作的。声明
行高:1是继承的,而不是
行高的结果:1应用于正文
字体大小
。因此,在h2上,线高度等于1×3.3em,等于48px。如果我将body line height声明更改为1.5,则
h2
行高将更改为72px。我之前尝试过此操作,以查看其效果。它显然得到了一个更接近预期的结果;但它仍然有几个像素的距离
在代码中,
边框
边框
从不重叠。“高度”=“边框宽度x2”+“高度”请参阅我上面的更新,以了解我认为的问题所在。