最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解CSS中的vertical-align屬性和基線問題

  發(fā)布時間:2020-04-03 14:42:52   作者:佚名   我要評論
這篇文章主要介紹了深入理解CSS中的vertical-align屬性和基線問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

vertical-align屬性主要用于改變行內元素的對齊方式,對于行內布局影響很大,如果不了解的話,我們開發(fā)調整樣式的時候很容易出錯。

網上關于這個屬性的原理說得很是復雜,看一眼就讓人覺得望而生畏,而且大可不必完全理解其原理,只要懂得其規(guī)律,我們足夠使用即可,下面把我的理解分享給大家:

基線

要了解vertical-align屬性,必須懂得基線,怎么理解基線呢?

1、我們寫網頁是在一個矩形的顯示屏上,經常是一行一行來布局,不可避免的是一行中會有多個內容,那么這行內容是如何上下對齊的呢?答案就是默認讓他們的基線對齊。

2、各種字體、圖片、行內html元素等可展示的內容都有各自的基線,要想知道具體內容的基線我們可以找一個簡單的參照物:小寫字母“x”,為什么找它呢?因為英文字母的基線恰好就是小寫"x"的最下方,比較容易看出。

知道了以上兩點我們就可以很容易知道其他內容元素的基線位置了,把其他元素和小寫“x”放在一行展示一下就一眼可以看出了:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    div {
      border: 1px solid cyan;
      font-size: 30px;
    }
    div .span1 {
      display: inline-block;
      background-color: green;
    }
    div .span2 {
      display: inline-block;
      overflow: hidden;
      background-color: green;
    }
  </style>
</head>
<body>
  <div>
    x
    <img src="./demo.jpg" alt="">
    漢字
    <input type="text">
    <button>按鈕</button>
    <span class="span1">span1</span>
    <span class="span2">span2</span>
  </div>
</body>
</html>

 

如上圖紅色為該行元素基線,可以發(fā)現圖片和overflow:hidden樣式的元素的基線位置是最下方,中文、輸入框和button按鈕的基線位置都在中下方的位置??梢钥闯觯@些行內元素的排列是先按基線上下對齊,然后把父元素撐開。

值得注意的一點是,如果我們直接往div中放入一個圖片,會發(fā)現圖片底部距離div的下方有一個空隙;這是因為 行內元素各自基線對齊以后還要和父元素的字體基線保持一致, 換句話說: 每個行內元素的基線都要向父元素字體基線看齊。 但當父元素的行高和字體大小樣式改變的時候,會使得父元素字體基線位置改變,從而使得行內元素的位置整體上下移動。雖然我們只看到了一個圖片沒有看到字,但是父元素有默認的line-heightfont-size,也會悄悄地影響布局,你會發(fā)現再往div中放入了一個小寫字母“x”,如下圖,它的下方剛好占據了空隙的位置。所以知道了這個原因,想去掉這個空隙的話,只需要把父元素的line-heightfont-size設置為0,或者把圖片設置成塊級元素,讓它獨占一行就可以了。同樣的,如果div中直接放入一個input輸入框,輸入框上方也會有個空隙,與此類似,只是圖片和輸入框的基線位置不同罷了。

 

vertical-align屬性

了解了上述行內元素的排序原則,我們可能會有個疑問:如果我們需要某些行內元素不按照基線排列怎么辦?答案就是使用vertical-align屬性。

首先,vertical-align屬性是針對行內元素才有效果,它改變了當前行內元素和父元素字體兩者之間的對齊方式,默認值是baseline,即兩者基線對齊,如上面我們測試的一樣。

關于各個屬性值可參考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/vertical-align ,可簡單在div中加入小寫字母“x”和一張圖片分別切換屬性進行驗證即可。

有兩個屬性稍作解釋:

1、當設置屬性為"%"的時候,指的是當前行內元素的line-height屬性值的占比,可以設置成正負值,行內元素基線相對父元素字體基線上下移動這個百分比的距離。如下圖,設置圖片vertical-align: 50%; line-height: 30px; 本來圖片最下方應該和"x"底部對齊的,現在上移了15px,如果是-50%,就會相對下移15px。當然也可以直接設置為length,vertical-align:15px;效果也是一樣的。

 

2、當設置屬性為“middle”的時候,行內元素中間位置會和父元素字體基線上方1/2"x-height"位置對齊,“x-height”其實就是父元素中小寫字母“x”的高度,簡單來說,就是行內元素的中間位置會和父元素中的小寫字母“x”的中間位置(x的交叉點)對齊,就相當于兩者中間對齊了。

 

總結

到此這篇關于深入理解CSS中的vertical-align屬性和基線問題的文章就介紹到這了,更多相關css vertical-align屬性和基線內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

相關文章

  • CSS屬性探秘系列(四):vertical-align

    本文向大家介紹一下CSS vertical-align 屬性的用法,該屬性定義行內元素的基線相對于該元素所在行的基線的垂直對齊。
    2014-10-22
  • css中圖片于文本的基線對齊與vertical-align屬性設置

    默認的情況是圖片頂對齊而文字底對齊,通過設置css屬性可以使得圖片與文字對齊,接下來為大家詳細介紹下設置各對象的vertical-align屬性,感興趣的朋友可以參考下哈
    2013-04-02
  • css 垂直對齊 css中vertical-align屬性(垂直對齊)的使用說明

    這兩天寫個頁面css的時候用到了vertical-align屬性,使用過程中踩到了坑,因此整理了一些,以備不時之需,感興趣的朋友可以了解下哦
    2013-01-09
  • CSS實例:vertical-align屬性讓網頁層居中

    網頁制作Webjx文章簡介:CSS實例:vertical-align屬性讓網頁層居中. vertical-align屬性使網頁層居中 網頁源代碼如下: <html> <
    2009-04-02
  • css vertical-align屬性詳細圖解分析

    vertical-align屬性詳細分析 最近幾天仔細研究了一下vertical-align這個屬性,結果讓我大吃一驚,這個很“資深”的CSS標準竟然在各個瀏覽器里面的表現都各不相同
    2009-02-10
  • 一文搞懂CSS中的vertical-align屬性

    CSS中的vertical-align用于設置行內塊或者行內元素行內元素的對齊方式,使用過程中的坑很多,本文就詳細的介紹一下vertical-align屬性的具體使用方法,感興趣的可以了解一
    2023-05-11

最新評論

宣威市| 平江县| 荣昌县| 莱州市| 毕节市| 若尔盖县| 格尔木市| 海安县| 丰台区| 高邮市| 凤台县| 龙海市| 武平县| 沙河市| 红原县| 宜黄县| 嘉善县| 安新县| 民丰县| 醴陵市| 泗洪县| 康保县| 甘德县| 许昌市| 镇宁| 龙川县| 普洱| 津市市| 大同县| 苍梧县| 阿巴嘎旗| 孝昌县| 大名县| 隆回县| 沧源| 武陟县| 沙雅县| 余江县| 慈利县| 云林县| 涿州市|