我想知道,实现这一目标的最佳途径是什么:
而不是这个,这是默认情况:
如何将内联元素的顶部与其顶部的容器对齐?我刚看到很多答案和方法,我很困惑。什么是最佳做法?到目前为止,我只是使用了负余量,但对我来说,它看起来更像是一个肮脏而不稳定的技巧,而不是一个干净可靠的解决方案。
答案 0 :(得分:2)
您希望修复的默认行为'是因为计算计算机字体指标的方式。最近有关此主题的a very good article已发布。
你需要区分" ascent"度量和字体的资本高度以某种方式,然后通过此值向上移动文本。不幸的是,目前使用CSS是不可能的,所以一些硬编码字体特定的魔术数字'这似乎是不可避免的。
答案 1 :(得分:1)
完全取决于字体在普通大写字母之上有多少空间,例如为AAÄAA
但是有效的方法是将第一行或上边距相对的行高(在em
中,以使其适合所有字体大小)减小到文本大小。只是稍微玩一下:
*::first-line {
line-height: 0.7em;
}
答案 2 :(得分:0)
您需要使用位置属性。以下是示例代码
#met {
font-size: 30px;
background-color: green;
float:left;
display:inline-block;
z-index: 1;
}
.na{
position:relative;
}
.na p,
.na a {
position:relative;
top: -5px;
}
a {
vertical-align:top;
}
#tim {
font-size: 20px;
background-color: blue;
}
答案 3 :(得分:0)
第一部分可以使用line-height:21px;
。即使在删除填充和边距后,也无法找到带有p标签的内容
#met {
font-size: 30px;
background-color: green;
float:left;
display:inline-block;
}
a {
line-height:21px;
vertical-align:top;
}
#tim {
font-size: 20px;
background-color: blue;
#met {
font-size: 30px;
background-color: green;
float:left;
display:inline-block;
}
a {
line-height:21px;
vertical-align:top;
}
#tim {
font-size: 20px;
background-color: blue;
margin: 0; padding: 0;
}
p{
margin: 0;
padding: 0;
}

<div>
<div class="na" id="met">
<a>TITLE</a>
</div>
<div class="na" id="tim">
<p class="dummy">
Dummy dummy dummy text<br>
<span id="sp-dum">one two three it's a dummy</span>
</p>
</div>
</div>
&#13;
答案 4 :(得分:0)
以风格写 vertical-align:top 是显示fopr所有列顶部所有内容的好方法