簡體   English   中英

垂直對齊 div 元素內的文本

[英]Vertically align text within div element

我知道這個問題已經被問死了,但是通過搜索對我沒有任何幫助。

你知道的,我有一個 div 元素,我需要在其中垂直對齊文本,但沒有任何效果(位置:絕對;頂部:50%;邊距頂部:-x;顯示:表格單元;垂直對齊:中間;等等等等)

這是我正在使用的(抱歉內聯 CSS)。 無論如何,我會使用 line-height 但文本可以是一兩行。 它應該與始終最大高度為 30 像素(30x50)的圖像垂直對齊。

 <div style="margin:0 0 10px 0;padding:10px;border:2px solid #606060;background-color:#2b2b2b;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;">
 <div style="float:left;width:55px;height:40px;">
 <a href="link"><img style="max-width:50px;border:1px solid #ffb92c;" src="image.jpg" alt="" /></a>
 </div>
 <div style="float:right;width:155px;font-size:0.7em;height:40px;">
 <a href="link">This is the text to vertically align</a>
 </div>
 </div>

你可以做的另一件事。 如果它只是 div 中的一行文本,則可以使用line-height

例子

div {
    line-height:40px;
}

這個想法來自這里,應該適用於所有瀏覽器。

<div style="margin: 0 0 10px 0; padding: 10px; border: 2px solid #606060; background-color: #2b2b2b;
    -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px;">
    <div style="float: left; width: 55px; height: 40px;">
        <a href="link">
            <img style="max-width: 50px; border: 1px solid #ffb92c;" src="image.jpg"
                alt="" /></a>
    </div>
    <div style="float: right; width: 155px; font-size: 0.7em; height: 40px; display: table; #position: relative; overflow: hidden;">
        <div style="#position: absolute; #top: 50%; display: table-cell; vertical-align: middle;">
            <div style="#position: relative; #top: -50%;">
                <a href="link">This is the text to vertically align</a>
            </div>
        </div>
    </div>
    <div style="clear: both"></div>
</div>

你需要這樣做:

http://jsfiddle.net/rathoreahsan/5u9HY/

在主 div 中使用fixed height而不是padding 並為左右 Divs 使用行高

這是解決方案的干凈版本

<div style="background: yellow">
<div style="width: 155px; font-size: 0.7em; height: 40px; display: table; overflow: hidden;">
    <div style="display: table-cell; vertical-align: middle;">
        <div style="">
            <a href="link">This is the text to vertically align</a>
        </div>
    </div>
</div>
<div style="clear: both"></div>

http://jsfiddle.net/5y4Nb/

您是否只需要顯示幾行很長的文本,這里是Fiddle 根據需要調整高度。

    .container-text {
    height:40px;
    width:180px;
    overflow-y:hidden;    
    display:table-cell;
    vertical-align:middle;
    text-align: center;
}

似乎是一個常見的浮動問題,可以通過clearfix修復,或者像我在下面的代碼片段中所做的那樣,使用固定的包裝器高度。

我還坐在浮動 div 的line-height上,讓它更寬一些。

看看這個:

 <div style="margin:0 0 10px 0;padding:10px;border:2px solid #606060;background-color:#2b2b2b;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;height:40px">  <div style="float:left;width:55px;height:40px;">  <a href="link"><img style="max-width:50px;border:1px solid #ffb92c;" src="image.jpg" alt="" /></a>  </div>  <div style="float:right;width:185px;font-size:0.7em;height:40px;line-height:40px">  <a href="link">This is the text to vertically align</a>  </div>  </div> 

http://jsfiddle.net/YqxPZ/3/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM