淺談css中vertical-align和line-height的用法

(1)、將一個(gè)圖片放入一個(gè)div塊中,div塊背景顏色設(shè)置為aquamarine。將會(huì)發(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塊的圖片后面放入一個(gè)span標(biāo)簽,內(nèi)容為xxxx!,會(huì)發(fā)現(xiàn)span標(biāo)簽內(nèi)的元素與圖片是在底線(xiàn)對(duì)其的,當(dāng)給span加一個(gè)背景時(shí),可以看到圖片底部是與字母x底部對(duì)齊的。
實(shí)例:
實(shí)例:放大之后可以很明顯的看出來(lái)!
代碼如下:
- <!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>
為什么會(huì)出現(xiàn)這種現(xiàn)象呢?
答:原因是行內(nèi)元素默認(rèn)都受vertical-align(垂直對(duì)齊方式)和line-height(行高)的影響,而vertical-align默認(rèn)的對(duì)齊方式是baseline,即基線(xiàn)對(duì)齊。這個(gè)基線(xiàn)就是span標(biāo)簽里的字母X的下邊沿,故圖片底部是與字母底部相對(duì)齊的(不是與span標(biāo)簽的背景對(duì)齊)。又因?yàn)樽帜副旧碛衛(wèi)ine-height(行高)值,所以span標(biāo)簽加上背景后比字母要高一些。
解決方法:(四種方法任意一種都可解決該問(wèn)題)
(1)、將整個(gè)div內(nèi)的font-size設(shè)置為0;
(2)、將圖片img變?yōu)閴K級(jí)元素,即設(shè)置其為display:block;
(3)、給div設(shè)置一個(gè)行高(值盡量小些),設(shè)置為line-height:5px;
(4)、設(shè)置圖片img垂直對(duì)齊方式vertical-align,值為top/middle/bottom任意一個(gè)都可以(為了覆蓋默認(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、圖片垂直居中的問(wèn)題
在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的用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
原文地址:http://www.cnblogs.com/gaotenglong/archive/2016/07/26/5708793.html
相關(guān)文章
- 本文向大家介紹一下CSS vertical-align 屬性的用法,該屬性定義行內(nèi)元素的基線(xiàn)相對(duì)于該元素所在行的基線(xiàn)的垂直對(duì)齊。2014-10-22
css中圖片于文本的基線(xiàn)對(duì)齊與vertical-align屬性設(shè)置
默認(rèn)的情況是圖片頂對(duì)齊而文字底對(duì)齊,通過(guò)設(shè)置css屬性可以使得圖片與文字對(duì)齊,接下來(lái)為大家詳細(xì)介紹下設(shè)置各對(duì)象的vertical-align屬性,感興趣的朋友可以參考下哈2013-04-02css 垂直對(duì)齊 css中vertical-align屬性(垂直對(duì)齊)的使用說(shuō)明
這兩天寫(xiě)個(gè)頁(yè)面css的時(shí)候用到了vertical-align屬性,使用過(guò)程中踩到了坑,因此整理了一些,以備不時(shí)之需,感興趣的朋友可以了解下哦2013-01-09css vertical-align屬性的一些理解與認(rèn)識(shí)(二) text-top篇
vertical-align是個(gè)相當(dāng)復(fù)雜與精深的屬性,所理解的一些內(nèi)容多少會(huì)有不準(zhǔn)確之處,本集內(nèi)容主要講講我對(duì)在一般情況下vertical-align其作用的理解,以及vertical-align相關(guān)的2013-01-07css vertical-align屬性的一些理解與認(rèn)識(shí)(一)
就說(shuō)說(shuō)我對(duì)vertical-align屬性的一些理解吧,純屬個(gè)人見(jiàn)解,若有不準(zhǔn)確之處還望見(jiàn)諒,若有不準(zhǔn)確之處還望見(jiàn)諒。還有,vertical-align屬性牽扯到的知識(shí)實(shí)在是太多了,不是一2013-01-07CSS實(shí)例:vertical-align屬性讓網(wǎng)頁(yè)層居中
網(wǎng)頁(yè)制作Webjx文章簡(jiǎn)介:CSS實(shí)例:vertical-align屬性讓網(wǎng)頁(yè)層居中. vertical-align屬性使網(wǎng)頁(yè)層居中 網(wǎng)頁(yè)源代碼如下: <html> <2009-04-02深入理解CSS中的vertical-align屬性和基線(xiàn)問(wèn)題
這篇文章主要介紹了深入理解CSS中的vertical-align屬性和基線(xiàn)問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考2020-04-03