CSS 中的垂直对齐

发布于 2024-11-03 17:48:45 字数 590 浏览 1 评论 0原文

我在

  • 中有一个
    。 Div 中是文本,该文本的大小会发生变化。
  • html:

    <li id="button_welcome"><div>Welcome</div></li>
    

    css:

    #about_nav li{
        height:48px;
        width:130px;
        margin-bottom:15px;
    }
    #about_nav li div{
        text-align:right;
        margin-right:10px;
        vertical-align:middle;
    }
    

    如何让文本保持在

  • 的中间?
  • PS 我在

  • 上有一个渐变背景,但我删除了它,因为它太大了。
  • 欢呼吧,

    弗雷泽

    I have an <div> in an <li>. In the Div is text, the size of that text changes.

    html:

    <li id="button_welcome"><div>Welcome</div></li>
    

    css:

    #about_nav li{
        height:48px;
        width:130px;
        margin-bottom:15px;
    }
    #about_nav li div{
        text-align:right;
        margin-right:10px;
        vertical-align:middle;
    }
    

    how do i get the text to stay in the middle of the <li>?

    P.S. i have a gradient background on the <li> but i removed it because it is bulky.

    cheer,

    Fraser

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(5

    沫离伤花 2024-11-10 17:48:45

    更新

    如果你想使用渐变背景,你可以尝试CSS方式;看看小提琴...

    http://jsfiddle.net/UnsungHero97/F5FEg/1/

    相反,如果您想使用图像,它不应影响文本的放置方式,因为这是“背景”图像。如果您确实遇到了一些奇怪的定位,请更新您的问题并向我们展示代码/屏幕截图/小提琴的问题所在。


    给它一个与

  • 一样高的line-height...
  • #about_nav li div{
        text-align:right;
        margin-right:10px;
        line-height: 48px; /* as tall as the li */
    }
    

    垂直对齐是一件棘手的事情。看看这篇文章,了解如何vertical-align工作以及如何一般垂直对齐事物...

    http://phrogz.net/CSS/vertical-align/index.html

    我希望这会有所帮助。
    赫里斯托

    UPDATE

    If you want to use a gradient for a background, you could try the CSS way; check out the fiddle...

    http://jsfiddle.net/UnsungHero97/F5FEg/1/

    Instead, if you want to use an image, it shouldn't affect how the text is positioned since this is a "background" image. If you do get some weird positioning, update your question and show us exactly what the problem is with code/screenshots/fiddle.


    Give it a line-height as tall as the <li>...

    #about_nav li div{
        text-align:right;
        margin-right:10px;
        line-height: 48px; /* as tall as the li */
    }
    

    Vertical alignment is a tricky business. Take a look at this article on getting a better understanding on how to vertical-align works and how to align things vertically in general...

    http://phrogz.net/CSS/vertical-align/index.html

    I hope this helps.
    Hristo

    卷耳 2024-11-10 17:48:45

    神奇之处在于使用 css 模拟表格布局

    #about_nav li{
        height:48px;
        width:130px;
        margin-bottom:15px;
        display:table-row;
    }
    #about_nav li div{
        text-align:right;
        margin-right:10px;
        vertical-align:middle;
        display:table-cell;    
    }
    

    The magic is to use simulate a table layout with css

    #about_nav li{
        height:48px;
        width:130px;
        margin-bottom:15px;
        display:table-row;
    }
    #about_nav li div{
        text-align:right;
        margin-right:10px;
        vertical-align:middle;
        display:table-cell;    
    }
    
    长安忆 2024-11-10 17:48:45

    使 line-height 与 height 的值相同。字体大小应小于高度。

    <style>
        #my_div{
            height: 30px;
            line-height: 30px;
            font-size: 10px;
            border: 1px solid black;
            width: 200px;
            text-align: center;
        }    
    </style>
    <div id="my_div">My DIV</div>
    

    Make the line-height the same value as the height. The font size should be smaller than the height.

    <style>
        #my_div{
            height: 30px;
            line-height: 30px;
            font-size: 10px;
            border: 1px solid black;
            width: 200px;
            text-align: center;
        }    
    </style>
    <div id="my_div">My DIV</div>
    
    盛夏已如深秋| 2024-11-10 17:48:45

    我非常喜欢 Hristos 的回答 =) 这是另一个解决方案:

    #about_nav li{
        height:48px;
        width:130px;
        margin-bottom:15px;
        border:1px solid;
    }
    #about_nav li div{
        height:inherit;
        width:inherit;
        padding-right:10px;
        display: table-cell;
        text-align:right;
        vertical-align: middle;
        border:1px solid;
    }
    

    如果设置 div 的高度和宽度,则可以使用 Vertical -align 属性

    请参阅示例: http://jsfiddle.net/3asEN/

    I like Hristos answer a lot =) Heres another solution:

    #about_nav li{
        height:48px;
        width:130px;
        margin-bottom:15px;
        border:1px solid;
    }
    #about_nav li div{
        height:inherit;
        width:inherit;
        padding-right:10px;
        display: table-cell;
        text-align:right;
        vertical-align: middle;
        border:1px solid;
    }
    

    If you set the height and width of the div you can use the vertical -align property

    See an Example: http://jsfiddle.net/3asEN/

    多孤肩上扛 2024-11-10 17:48:45

    添加文本对齐:居中;到 div 或 li。

    Add text-align: center; to the div or the li.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文