淺談css中vertical-align和line-height的用法
(1)、將一個圖片放入一個div塊中,div塊背景顏色設(shè)置為aquamarine。將會發(fā)現(xiàn)圖片與div塊下邊沿有一定間隙。
實(shí)例:

代碼如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css中vertical-align和line-height的用法</title>
- <style>
- *{
- margin: 0px;
- padding: 0px;
- }
- div{
- background-color: aquamarine;
- }
- img {
- width: 300px;
- }
- </style>
- </head>
- <body>
- <div>
- <img src="./131796750659172.jpg" alt="picture">
- </div>
- </body>
- </html>
(2)、在div塊的圖片后面放入一個span標(biāo)簽,內(nèi)容為xxxx!,會發(fā)現(xiàn)span標(biāo)簽內(nèi)的元素與圖片是在底線對其的,當(dāng)給span加一個背景時,可以看到圖片底部是與字母x底部對齊的。
實(shí)例:

實(shí)例:放大之后可以很明顯的看出來!

代碼如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css中vertical-align和line-height的用法</title>
- <style>
- *{
- margin: 0px;
- padding: 0px;
- }
- div{
- background-color: aquamarine;
- }
- img{
- width: 300px;
- }
- span{
- background-color: azure;
- }
- </style>
- </head>
- <body>
- <div>
- <img src="./131796750659172.jpg" alt="picture">
- <span>xxxxx!</span>
- </div>
- </body>
- </html>
為什么會出現(xiàn)這種現(xiàn)象呢?
答:原因是行內(nèi)元素默認(rèn)都受vertical-align(垂直對齊方式)和line-height(行高)的影響,而vertical-align默認(rèn)的對齊方式是baseline,即基線對齊。這個基線就是span標(biāo)簽里的字母X的下邊沿,故圖片底部是與字母底部相對齊的(不是與span標(biāo)簽的背景對齊)。又因?yàn)樽帜副旧碛衛(wèi)ine-height(行高)值,所以span標(biāo)簽加上背景后比字母要高一些。
解決方法:(四種方法任意一種都可解決該問題)
(1)、將整個div內(nèi)的font-size設(shè)置為0;
(2)、將圖片img變?yōu)閴K級元素,即設(shè)置其為display:block;
(3)、給div設(shè)置一個行高(值盡量小些),設(shè)置為line-height:5px;
(4)、設(shè)置圖片img垂直對齊方式vertical-align,值為top/middle/bottom任意一個都可以(為了覆蓋默認(rèn)的值baseline);
效果如下:

完整代碼如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css中vertical-align和line-height的用法</title>
- <style>
- *{
- margin: 0px;
- padding: 0px;
- }
- div{
- background-color: aquamarine;
- /*line-height: 5px;*/
- /*font-size: 0;*/
- }
- img{
- width: 300px;
- /*display: block;*/
- vertical-align: bottom;
- }
- span{
- background-color: azure;
- }
- </style>
- </head>
- <body>
- <div>
- <img src="./131796750659172.jpg" alt="picture">
- <span>xxxxx!</span>
- </div>
- </body>
- </html>
2、圖片垂直居中的問題
在div和img中添加以下屬性及屬性值即可實(shí)現(xiàn)圖片在div塊中的垂直居中。
- <style type="text/css">
- ...
- div{
- line-height: 500px;
- font-size: 0px;
- }
- img{
- vertical-align: middle;
- }
- ...
- <style>

代碼如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css中vertical-align和line-height的用法</title>
- <style>
- *{
- margin: 0px;
- padding: 0px;
- }
- div{
- background-color: aquamarine;
- line-height: 500px;
- font-size: 0px;
- }
- img{
- width: 300px;
- vertical-align: middle;
- }
- span{
- background-color: azure;
- }
- </style>
- </head>
- <body>
- <div>
- <img src="./131796750659172.jpg" alt="picture">
- <span>xxxxx!</span>
- </div>
- </body>
- </html>
以上這篇淺談css中vertical-align和line-height的用法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
原文地址:http://www.cnblogs.com/gaotenglong/archive/2016/07/26/5708793.html
相關(guān)文章
- 本文向大家介紹一下CSS vertical-align 屬性的用法,該屬性定義行內(nèi)元素的基線相對于該元素所在行的基線的垂直對齊。2014-10-22
css中圖片于文本的基線對齊與vertical-align屬性設(shè)置
默認(rèn)的情況是圖片頂對齊而文字底對齊,通過設(shè)置css屬性可以使得圖片與文字對齊,接下來為大家詳細(xì)介紹下設(shè)置各對象的vertical-align屬性,感興趣的朋友可以參考下哈2013-04-02css 垂直對齊 css中vertical-align屬性(垂直對齊)的使用說明
這兩天寫個頁面css的時候用到了vertical-align屬性,使用過程中踩到了坑,因此整理了一些,以備不時之需,感興趣的朋友可以了解下哦2013-01-09css vertical-align屬性的一些理解與認(rèn)識(二) text-top篇
vertical-align是個相當(dāng)復(fù)雜與精深的屬性,所理解的一些內(nèi)容多少會有不準(zhǔn)確之處,本集內(nèi)容主要講講我對在一般情況下vertical-align其作用的理解,以及vertical-align相關(guān)的2013-01-07css vertical-align屬性的一些理解與認(rèn)識(一)
就說說我對vertical-align屬性的一些理解吧,純屬個人見解,若有不準(zhǔn)確之處還望見諒,若有不準(zhǔn)確之處還望見諒。還有,vertical-align屬性牽扯到的知識實(shí)在是太多了,不是一2013-01-07CSS實(shí)例:vertical-align屬性讓網(wǎng)頁層居中
網(wǎng)頁制作Webjx文章簡介:CSS實(shí)例:vertical-align屬性讓網(wǎng)頁層居中. vertical-align屬性使網(wǎng)頁層居中 網(wǎng)頁源代碼如下: <html> <2009-04-02
深入理解CSS中的vertical-align屬性和基線問題
這篇文章主要介紹了深入理解CSS中的vertical-align屬性和基線問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考2020-04-03


