對vertical-align的理解

vertical-align的理解:

設置元素的垂直對齊方式,是以父元素作爲參照的。

多用於圖片和文字的並排對齊。

適用於內聯元素,內聯塊元素和表單元素。

  • display:inline;
  • display:inline-block;
  • display:table;
  • display:table-cell;

瀏覽器支持所有瀏覽器都支持 vertical-align 屬性。

允許指定負長度值和百分比值。

在表單元格中,這個屬性會設置單元格框中的單元格內容的對齊方式。

默認值:baseline

繼承性:無

JS語法:

object.style.verticalAlign="bottom"

基線

下面紅線就是基線。

clipboard.png

取值

baseline

默認。元素基線與父元素的基線對齊。

一些 可替換元素,比如 `` , HTML標準沒有說明它的基線,這意味着使用這個關鍵字,各瀏覽器表現可能不一樣。

sub

元素基線與父元素字體的下標基線對齊。

super

元素基線與父元素字體的上標基線對齊。

text-top

元素頂端與父元素字體的頂端對齊。

text-bottom

元素底端與父元素字體的底端對齊。

middle

元素中線與父元素的小寫x中線對齊。把此元素放置在父元素的中部。

<length>

元素基線超過父元素的基線指定高度。可以取負值。

<percentage>

同 <length> , 百分比相對於 line-height 。可以爲負值。基線對於百分數來說就是0%。

用百分比指定由基線算起的偏移量。

下面兩個屬性不像上面的屬性相對於父元素,而是相對於整行:

top

元素及其後代的頂端與整行的頂端對齊。

bottom

元素及其後代的底端與整行的底端對齊。

如果元素沒有基線baseline,則以它的外邊距的下邊緣爲基線。

取值 (table-cell元素)

baseline (and sub, super, text-top, text-bottom, <length>, and <percentage>)

與同行單元格的基線對齊。

top

單元格的內邊距的上邊緣與行的頂端對齊。

middle

單元格垂直居中。

bottom

單元格的內邊距的下邊緣與行的底端對齊。

可以取負值。

例子

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8"/>
    <title>vertical-align</title>
    <style>
        .test p {
            border: 1px solid red;
            font-size: 26px;
            line-height: 1;
        }
        

        .test a {
            margin-left: 5px;
            font-size: 18px;
            text-decoration:none;
        }

        .baseline a {
            vertical-align: baseline;
        }

        .sub a {
            vertical-align: sub;
        }

        .super a {
            vertical-align: super;
        }

        .top a {
            vertical-align: top;
        }

        .text-top a {
            vertical-align: text-top;
        }

        .middle a {
            vertical-align: middle;
        }

        .bottom a {
            vertical-align: bottom;
        }

        .text-bottom a {
            vertical-align: text-bottom;
        }

        .length a {
            vertical-align: 10px;
        }
    </style>
</head>
<body>
<ul class="test">
    <li class="baseline">
        <strong>與基線對齊</strong>
        <p>參考內容X<a href="?">baseline基線對齊</a></p>
    </li>
    <li class="sub">
        <strong>與參考內容X的下標對齊</strong>
        <p>參考內容X<a href="?">sub下標對齊</a></p>
    </li>
    <li class="super">
        <strong>與參考內容X的上標對齊</strong>
        <p>參考內容X<a href="?">super上標對齊</a></p>
    </li>
    <li class="top">
        <strong>對象的內容與對象頂端對齊</strong>
        <p>參考內容X<a href="?">top要對齊的內容</a></p>
    </li>
    <li class="middle">
        <strong>對象的內容與對象中部對齊</strong>
        <p>參考內容X<a href="?">middle要對齊的內容</a></p>
    </li>
    <li class="bottom">
        <strong>對象的內容與對象底端對齊</strong>
        <p>參考內容X<a href="?">bottom要對齊的內容</a></p>
    </li>
    
    <li class="text-top">
        <strong>對象的文本與對象頂端對齊</strong>
        <p>參考內容X<a href="?">text-top要對齊的內容</a></p>
    </li>
    <li class="text-bottom">
        <strong>對象的文本與對象底端對齊</strong>
        <p>參考內容X<a href="?">text-bottom要對齊的內容</a></p>
    </li>
    <li class="length">
        <strong>與基線算起的偏移量</strong>
        <p>參考內容X<a href="?">length偏移量對齊</a></p>
    </li>
</ul>
</body>
</html>

clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章