簡體   English   中英

垂直對齊圖像和兩行文本

[英]Align vertically an image and two lines of text

我在這里閱讀了很多文章,很多帖子,但不幸的是我無法將2行文本和圖像垂直居中。

<a class="button" href="">
    <img src="http://dummyimage.com/30x30/cf97cf/fff">
    Button
    <span>Button alt</span>
</a>

我希望圖像旁邊的2行(居中),並將整個內容垂直居中於.button

body {
    padding: 20px;
}

.button {
    background: #000;
    color: #fff;
    text-decoration: none;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    height: 120px;
    padding: 30px 50px;
    display: inline-block;
}

span {
    font-size: 11px;
    color: #ccc;
    display: block;
}

img {
    vertical-align: middle;
}

在CSS-Tricks中我發現了一篇文章,但我不想使用position:absolute來居中。 是否有任何干凈的方法將文本/圖像集中在<a>

JsFiddle: http//jsfiddle.net/7fx3eozd/

您可以使用class .buttonvertical-align: middledisplay: table-cell添加到元素:

 body { padding: 20px; } .button { background: #000; color: #fff; text-decoration: none; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; height: 120px; padding: 30px 50px; display: table-cell;/*change display to table-cell*/ vertical-align: middle;/*add vertical align middle*/ } span { font-size: 11px; color: #ccc; display: block; } img { vertical-align: middle; } 
 <a class="button" href=""> <img src="http://dummyimage.com/30x30/cf97cf/fff">Button <span>Button alt</span> </a> 

你也可以將textspan包裝在div然后將divimg包裝在另一個div然后添加這些類:

還添加display: inline-block; 在你的img

    .center {   
      position: relative;
      top: 50%;
      transform: translateY(-50%); 
    }
   .btnText {
      vertical-align: middle; 
      display: inline-block;
    }

JSFIDDLE DEMO


 body { padding: 20px; } .button { background: #000; color: #fff; text-decoration: none; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; height: 120px; padding: 30px 50px; display: inline-block; } span { font-size: 11px; color: #ccc;; display: block; } img { vertical-align: middle; display: inline-block; } .center { position: relative; top: 50%; transform: translateY(-50%); } .btnText { vertical-align: middle; display: inline-block; } 
 <a class="button" href=""> <div class="center"> <img src="http://dummyimage.com/30x30/cf97cf/fff"> <div class="btnText"> Button <span>Button alt</span> </div> </div> </a> 

你可以將imgspan包裝在div (帶有類中心)

<a class="button" href="">
    <div class="center">
        <img src="http://dummyimage.com/30x30/cf97cf/fff">
        Button
        <span>Button alt</span>
    </div>
</a>

然后添加這個css:

.center {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

說明:將div位置設置為前50% ,然后將其移動到頂部,其高度為50%(translateY -50%)

暫無
暫無

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

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