麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 關于vertical-align那些事

關于vertical-align那些事

來源:千鋒教育
發布人:wjy
時間: 2022-06-02 10:20:00 1654136400

## 一、 vertical-align到底是個啥?

vertical-align設置的是元素的垂直對齊方式,這個說法看起來很簡單,但是用起來卻難以捉摸;還有一個說法是內聯元素的基線相對于該元素所在行的垂直對齊方式,那么該元素所在行又是個啥?總體來說呢都不是特別好理解,那么請看下面一些關于vertical-align的運用,也許你會理解得更透徹一些。

vertical-align

## 二、 vertical-align對行內塊元素造成哪些影響?

1、如果給子元素的vertical-align設置為Top

```html
<style>
    .all{
        width: 300px;
        height: 300px;
        background: #0f0;}       
    .box1{
        display: inline-block;
        width: 200px;
        height: 200px;
        background: #ff0;
        vertical-align: top;}     
</style>
<body>
    <div class="all">
        <div class="box1"></div>
    </div>
</body>
```

那么子元素的top會出現在在父元素的top上,也就是子元素會靠在上面

2、如果給子元素的vertical-align設置為bottom

```html
<style>
    .all{
        width: 300px;
        height: 300px;
        background: #0f0;}       
    .box1{
        display: inline-block;
        width: 200px;
        height: 200px;
        background: #ff0;
        vertical-align: bottom;}     
</style>
<body>
    <div class="all">
        <div class="box1"></div>abcdefg
    </div>
</body>
```

子元素的bottom會出現在父元素的bottom上,這里需要強調的是父元素的bottom并不是盒子的最下邊,而是父元素里面文本或者inline-block元素的最下面

3、如果給子元素的vertical-align設置為Middle

```html
<style>
    .all{
        width: 300px;
        height: 300px;
        background: #0f0;}       
    .box1{
        display: inline-block;
        width: 200px;
        height: 200px;
        background: #ff0;
        vertical-align: middle;}     
</style>
<body>
    <div class="all">
        <div class="box1"></div>abcdef
    </div>
</body>
```

子元素的middle會在父元素的middle上

4、如果給子元素的vertical-align設置為Baseline

```html
<style>
    .all{
        width: 300px;
        height: 300px;
        background: #0f0;}       
    .box1{
        display: inline-block;
        width: 200px;
        height: 200px;
        background: #ff0;
        vertical-align: baseline;}     
</style>
<body>
    <div class="all">
        <div class="box1"></div>abcdef
    </div>
</body>
```

子元素的baseline在父元素的baseline上,vertical-align的默認值就是baseline

## 三、 基線是個啥?

為什么說vertical-align會說到基線呢?那是因為該屬性的默認值就是baseline,那到底什么是基線,請看圖:

![img](https://pic3.zhimg.com/80/v2-f2a5439994243acc24f894207691a54a_720w.jpg)

通過這個圖片我們可以一目了然的發現,其實基線就是我們英文格子的第三條線。

vertical-align這個屬性的默認值就是baseline,請看如下效果:

```html
<style>
    .all{width: 500px;height: 300px;background: #0f0;}  
    .all div{ display: inline-block;background: #ff0;}    
    .box1{font-size: 12px;}     
    .box2{font-size: 18px;}     
    .box3{font-size: 26px;}     
    .box4{font-size: 40px;}     
</style>
<body>
    <div class="all">
        <div class="box1">1000phone</div>
        <div class="box2">meimei</div>
        <div class="box3">dalian</div>
        <div class="box4">hahaha</div>
    </div>
</body>
```

頁面中我放了四個行內塊元素,里面放了不同字號的文本內容,子盒子也沒有設置高度,所有的盒子我都沒設置vertical-align,看看他們會怎么樣排列:

![img](https://pic3.zhimg.com/80/v2-2ce94657674a5fb57091795b52f1006a_720w.jpg)

不錯,所有元素都按照基線的位置對齊了,就是因為他們的默認垂直對齊方式的取值正是baseline的原因。

## 四、 行高控制的到底是哪里垂直居中?

做為一個資深的前端開發,大家都清楚的知道:行高等于容器高可以設置單行文本的垂直居中,那么萬一容器里面裝的是圖片呢?裝的是盒子呢?

如果盒子里面裝的是行內塊元素,不管是圖片還是其他元素,它身上的vertical-align就會在行高范圍內進行運動。

```html
<style>
    .all{width: 500px;height: 500px;background: #0f0;line-height: 400px;}  
    .all img{vertical-align:bottom;width: 100px;}
</style>
<body>
    <div class="all">
        <img src="1.jpg" alt="">
    </div>
</body>
```

![img](https://pic1.zhimg.com/80/v2-bd91b028c0a7f47cb200af5848fe75e4_720w.jpg)

![img](https://pic2.zhimg.com/80/v2-4f85a5084ebcf7f31014612c476cfef1_720w.jpg)

![img](https://pic2.zhimg.com/80/v2-f92705d90d7384a7e7f61b698d670339_720w.jpg)

![img](https://pic3.zhimg.com/80/v2-995599023ab728540526dcf876b59e62_720w.jpg)

分別調整了圖片的vertial-align的取值,你會發現他其實就是在行高范圍內進行移動的,所以圖片的垂直居中通常也會選擇取值為middle的做法。

## 五、 關于圖片默認間隙的問題?

通過上面幾種情況的比較,相信大家也能知道這圖片間隙是什么原因導致的了,不錯,就是因為vertical-align默認值是baseline

```html
<style>
    .all{width: 500px;background: #0f0;}
</style>

<body>
    <div class="all">
        <img src="1.jpg" alt="">
    </div>
</body>
```

我的父盒子設置了背景顏色,但是我沒有設置高度

![img](https://pic3.zhimg.com/80/v2-2760f0a52a4b929ad7ffd8d0d0a4f3b2_720w.jpg)

這個間隙正是因為圖片的最下邊源被認為是基線所在的位置,所以這個縫隙就是英文格子第三條和第四條之間的距離

![img](https://pic3.zhimg.com/80/v2-b88b8002a264b7929ea53edd9bad88c6_720w.jpg)

加了幾個字母,可以清楚的看到這個距離的原因所在了。

那么原因知道了,解決方案也得有啊:

1、將圖片的元素類型進行轉換,轉為塊元素就不會存在這個問題了,因為只有行內塊元素才會受vertical-align的影響

```html
<style>
    img{display:block}
</style>
```

2、改變圖片vertical-align的取值,只要不是默認的baseline就好啦(三選一即可)

```html
<style>
    img{vertical-align:top;}
    img{vertical-align:middle;}
    img{vertical-align:bottom;}
</style>
```

3、給圖片的父元素設置字號為0,沒有文本在圖片旁邊作祟了,也就沒有間隙了

```html
<style>
    .all{font-size:0;}
</style>
```

```更多關于“web前端培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的提升班,高品質課程助理你實現夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 在线看福利影| 攵女yin乱合集高h小丹| 哆啦a梦エロ本| 波多野结衣1区| 动漫乱理伦片在线观看| 中国一级黄色| 成人亚洲欧美日韩在线观看| 青青草原1769久久免费播放| 日本边添边摸边做边爱的视频| 久久亚洲国产精品五月天婷| 午夜视频免费成人| 欧美性生活视频免费| 小泽玛利亚番号| 国产系列在线播放| 天堂网中文字幕| 老鸭窝在线播放| 午夜三级黄色片| 经典三级在线播放| 狍和女人一级毛片免费的| 亚洲痴女| swag剧情系列在线观看| 性按摩xxxx| 韩国伦理电影年轻的妈妈| 全彩熟睡侵犯h| 女扒开尿口让男桶30分钟| 老鸭窝在线播放| 欧美日韩免费在线视频| 国产悠悠视频在线播放| 花季传媒下载免费安装app| 中文字幕一区精品| 午夜视频免费成人| 亚洲日韩中文字幕一区| 妖精的尾巴国语版全集在线观看| 伊甸园在线观看国产| 黄色a级| 欧美精品xxxxbbbb| 北美伦理电线在2019| 一个上面吃一个下免费| 欧美猛交xxxx免费看| 性一交一乱一伦一| 亚洲不卡|