我正在尝试编写一些HTML代码,以直接在pre
文本块的顶部覆盖另一个元素。
问题是,即使最简单的例子似乎也没有正确对齐......
<div style="position:relative">
<pre style="position:absolute">
hello
</pre>
<div style="position:absolute">
world
</div>
</div>
您可以看到输出here。
div
元素呈现在pre
元素之上。为什么会这样?
有关元素定位的更多信息,请参见here。
答案 0 :(得分:3)
实际上div
元素“是”呈现在pre
元素之上。我们只是无法看到它。我添加了一个border
css属性来显示它,因为它有“预留余量”。
<div style="position:relative">
<pre style="position:absolute">
hello
</pre>
<div style="position:absolute; border:1px solid red;">
world
</div>
</div>
那就是说,你现在可以添加一些css
来改变它并得到你想要的东西,就像这样!!
<div style="position:relative">
<pre style="position:absolute">
hello
</pre>
<div style="position:absolute; border:1px solid red; top: 7px">
world
</div>
</div>
希望有所帮助!!
另外,事实证明pre
标记顶部有一些默认margin
。要看到这个检查!!
选中此Fiddle
要删除它,请轻松将margin
添加到0. Fiddle
答案 1 :(得分:1)
默认情况下,pre
标记的边距为margin: 1em 0px;
,因此您需要将边距设置为零以覆盖此范围。然后在此之后仍然存在少量差距。这是因为字体。在我的例子中。我已覆盖font-family
以继承父级的font-family
,因此元素完全对齐。另一件事是,对于font-family
代码而不是div
代码{/ 1}},可以执行相同的相反效果
pre
pre{
margin:0px;
font-family:inherit;
}