文本不会与 div 顶部对齐

Posted

技术标签:

【中文标题】文本不会与 div 顶部对齐【英文标题】:Text will not align to top of div 【发布时间】:2015-02-12 08:02:36 【问题描述】:

我尝试了垂直对齐、顶部边距、顶部、填充、定位和任何我能想到的技巧,但在任何情况下我都无法将文本放在 div 的顶部。我以前从未遇到过这种情况,所以我觉得我忽略了一些愚蠢的东西......

重要的东西:

html

        <div id="login">
            <div class="row20">
                <p class="gray1">username</p>
            </div>
            <div class="row20">
                <p class="gray1">password</p>
            </div>
            <div class="row20">
                <p class="gray1">new here? | forgot password?</p>
            </div>
        </div>

CSS

 #login 
    position: absolute;
    border: 1px solid #ccc;
    height: 73px;
    width: 260px;
    left: 620px;
    top: 3px;
    vertical-align: top;
    padding: 0px;
    margin-top: 0px;

div.row20 
    height: 20px;
    border: 1px solid #cccccc;

p.gray1 
    font-size: 14px;
    color: #444444;

我已经从我的代码中删除了所有将文本推送到这些 div 顶部的尝试,因为它们都不起作用。但是,我确实尝试了我能找到的一切。我希望“row20” div 用作我的表单的对齐方式。如果我使用 br,会使文本框与文本对齐变得更加困难。出于某种原因,p 文本显示在距父 div 顶部约 18px 处。我所做的一切都没有改变...

【问题讨论】:

【参考方案1】:

您在row20 中具有高度,因此您在对齐时遇到困难,请使用 line-height:

p.gray1
   font-size: 14px;
   color: #444444;
   line-height: 20px;/*or something that fits your align*/
   margin: 0;/*remove default margins*/
   padding: 0;

#login 
    position: absolute;
    border: 1px solid #ccc;
    height: 73px;
    width: 260px;
    left: 620px;
    top: 3px;
    vertical-align: top;
    padding: 0px;
    margin-top: 0px;

div.row20 
    height: 20px;
    border: 1px solid #cccccc;

p.gray1 
    font-size: 14px;
    color: #444444;
  margin: 0;
  padding: 0;
  line-height: 20px;
        <div id="login">
            <div class="row20">
                <p class="gray1">username</p>
            </div>
            <div class="row20">
                <p class="gray1">password</p>
            </div>
            <div class="row20">
                <p class="gray1">new here? | forgot password?</p>
            </div>
        </div>

【讨论】:

谢谢。使用 line-height: 20px 实际上将我的文本一直推到父 div 下方。所以我使用 line-height: 0x;哪个有效。【参考方案2】:

您的内部p 元素溢出了div 容器,因为它具有顶部和底部默认margins,因此您应该删除它以满足您的需要:

p.gray1  margin:0; 

JSFiddle

【讨论】:

看...我告诉过你这很愚蠢。 :-) 我试过这个,但我一定有一些干扰它的东西,当没有任何效果时我把它去掉了。这很有效,因为它应该有。 @user3797346 :很高兴为您提供帮助【参考方案3】:

如果您想知道如何解决这些问题,最好尝试在 firefox 中使用 firebug 扩展,然后尝试您的代码,您也可以更改值并立即查看结果,这样您就不会再混淆了。

【讨论】:

以上是关于文本不会与 div 顶部对齐的主要内容,如果未能解决你的问题,请参考以下文章

将文本与按钮顶部对齐,而不在其中使用跨度

为啥是垂直对齐:文本顶部;不能在 CSS 中工作

由于浏览器大小更改,如何在标题变为两行后保持两列之一的文本与另一列的顶部标题图像对齐

顶部对齐正方形内的文本

将 SwiftUI 文本与另一个文本的基线和顶部对齐

将内联块 DIV 对齐到容器元素的顶部