【发布时间】:2015-06-16 19:18:19
【问题描述】:
我有以下 HTML 代码:
<header>
<h1>Title</h1>
<nav>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</nav>
</header>
我希望通过向右浮动<nav> 将其变成我网页顶部的一行。
但是,由于<h1> 的字体大小比<li> 元素大得多,因此文本会错位。 我希望元素在基线上对齐。在图片中:
注意基线的红线。这就是我现在拥有的:
#float, #nofloat { width: 300px; }
ul, h1, nav, p { margin: 0; padding: 0; }
h1 {
display: inline-block;
font-size: 3rem;
}
nav { display: inline-block; }
ul { list-style-type: none; }
ul > li { display: inline; }
ul > li:after { content: " | "; }
ul > li:last-child:after { content: ""; }
#float nav { float: right; }
<p>Everything is aligned to baseline before floating:</p>
<div id="nofloat">
<header>
<h1>Title</h1>
<nav>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</nav>
</header>
</div>
<p>But after floating it's messed up:</p>
<div id="float">
<header>
<h1>Title</h1>
<nav>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</nav>
</header>
</div>
【问题讨论】:
-
反对者,请解释一下为什么我的问题'没有显示出任何研究工作;不清楚或没用'?
-
很难说为什么投反对票;您的问题提出得很好,简洁并显示了sn-p /努力。也许SO存档中有类似的问题,但尝试搜索它...
-
@MarcAudet 我确实搜索了重复项,有类似的问题,但没有人试图在基线上对齐块内的文本。无论如何,如果它是重复的,那不是拒绝投票的正当理由 - 关闭按钮就是为此(或者如果您没有足够的声誉,则标记按钮)。
-
有时,在 SO 上找到一个预先存在的解决方案就像大海捞针;类似的问题可以用如此不同的方式来表达,以至于无论您的搜索词多么有创意,它们都不会出现在搜索中。
标签: html css layout typography