摘要:前言之前在寫網(wǎng)頁的時(shí)候有一個(gè)展示圖片的需求我使用一個(gè)包裹一個(gè)但是在瀏覽器中預(yù)覽的時(shí)候碰到了一下的問題仔細(xì)看圖片和之間有間隙。正文指定了行內(nèi)元素或表格單元格元素的垂直對(duì)齊方式摘錄自。設(shè)置父元素字體大小為所用的值是無單位數(shù)值乘以元素的。
前言
之前在寫網(wǎng)頁的時(shí)候有一個(gè)展示圖片的需求,我使用一個(gè)div包裹一個(gè)img,但是在瀏覽器中預(yù)覽的時(shí)候碰到了一下的問題,
仔細(xì)看,圖片和div之間有間隙。
下面貼上簡易的代碼
.content{ float:left; margin:100px auto; background:pink; }
我外層容器content設(shè)置浮動(dòng),按浮動(dòng)元素會(huì)收縮的原理,本不應(yīng)該出現(xiàn)這條粉色的間隙,但為什么這里會(huì)有呢?之后去網(wǎng)上查了一下,其中涉及到了line-height以及vertical-align的問題。
正文vertical-align
vertical-align 指定了行內(nèi)(inline)元素或表格單元格(table-cell)元素的垂直對(duì)齊方式(摘錄自MDN)。
vertical-align的取值中有top、middle、baseline、bottom四個(gè)值,他們分別對(duì)應(yīng)了
vertical-align中默認(rèn)值是baseline也就是說圖片的下邊緣其實(shí)是和藍(lán)色那條線對(duì)齊的,而文字元素本身也有高度,所以會(huì)多出那么一部分空白的地方,也就是底部綠色線到藍(lán)色線之間的距離。
那么為什么在沒有文字的情況下圖片也會(huì)有底部的間隙,那是因?yàn)樵贖TML5文檔聲明下,塊狀元素內(nèi)部的內(nèi)聯(lián)元素的行為表現(xiàn),就好像塊狀元素內(nèi)部還有一個(gè)(更有可能兩個(gè)-前后)看不見摸不著沒有寬度沒有實(shí)體的空白節(jié)點(diǎn)(摘錄自張?chǎng)涡竦牟┛?,所以默認(rèn)vertical-align為baseline的圖片會(huì)和父div之間存在空隙。
知道這一點(diǎn),現(xiàn)在問題就好解決了,最直接的可以是
img{ vertical-align:bottom;//middle和top也都可以 }
前面正文的開頭說過vertical-align是設(shè)置行內(nèi)(inline)元素或表格單元格(table-cell)元素的垂直對(duì)齊方式,所以設(shè)置img為塊級(jí)元素時(shí)就不會(huì)存在baseline對(duì)齊的問題了。
img{ display:block }
.content{ float:left; margin:100px auto; background:pink; font-size:0px; }
The used value is this unitless?[
](https://developer.mozilla.org/zh-CN/docs/Web/CSS/number)?multiplied by the element"s font size. The computed value is the same as the specified?
. In most cases?this is the preferred way?to set?line-height
with no unexpected results in case of inheritance.?
**所用的值是無單位數(shù)值[
](https://developer.mozilla.org/zh-CN/docs/Web/CSS/number)乘以元素的font size。計(jì)算出來的值與使用數(shù)值指定的一樣。大多數(shù)情況下,使用這種方法設(shè)置line-height是首選方法,在繼承情況下不會(huì)有異常的值。** (摘錄自MDN)
line-height在不設(shè)置單位時(shí)是通過與font-size相乘來計(jì)算的,設(shè)置font-size為0,line-height也為0,而那一端多余的間隙(baseline和bottom之間的差值)也和line-height有關(guān),所以自然而然間隙就消除了。
結(jié)尾這是我解決img與父div空隙中的一點(diǎn)總結(jié),其實(shí)深挖了line-height和vertical-align還有更多的內(nèi)容,我一下子消化不過來,今天先到這里,日后有更深入了解了再慢慢補(bǔ)充,以上內(nèi)容有錯(cuò)誤的地方歡迎小伙伴們來拍磚。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/115020.html
摘要:我認(rèn)為應(yīng)該將理解為。如果的值是,高度就是等于。中所有的最高點(diǎn)以及最低點(diǎn)決定了它的高度該計(jì)算包括了的高度,后文會(huì)提到。非替換元素的的,以及并不會(huì)影響高度的計(jì)算。并不是兩條之間的距離。元素的垂直中點(diǎn)位置與父元素的基線加上一半的位置對(duì)齊。 文章 GitHub 地址:https://github.com/afishhhhh/blog/issues/4文章如有錯(cuò)誤,請(qǐng)各位能夠指出。 幾個(gè)概念 ...
摘要:我認(rèn)為應(yīng)該將理解為。如果的值是,高度就是等于。中所有的最高點(diǎn)以及最低點(diǎn)決定了它的高度該計(jì)算包括了的高度,后文會(huì)提到。非替換元素的的,以及并不會(huì)影響高度的計(jì)算。并不是兩條之間的距離。元素的垂直中點(diǎn)位置與父元素的基線加上一半的位置對(duì)齊。 文章 GitHub 地址:https://github.com/afishhhhh/blog/issues/4文章如有錯(cuò)誤,請(qǐng)各位能夠指出。 幾個(gè)概念 ...
CSS學(xué)習(xí)筆記 在學(xué)習(xí)CSS的過程中做的一些記錄,用于未來的快速回憶。 HTML常見元素和理解 head中的元素 指定字符集 meta name=viewport content=...定義視圖大小與設(shè)備屏幕大小的比例,用戶是否可縮放 指定基準(zhǔn)路徑 body中的元素 a[href, target] img[src, alt] table td[colspan, rowspan] for...
閱讀 2956·2023-04-26 01:32
閱讀 1552·2021-09-13 10:37
閱讀 2288·2019-08-30 15:56
閱讀 1681·2019-08-30 14:00
閱讀 3057·2019-08-30 12:44
閱讀 1972·2019-08-26 12:20
閱讀 1070·2019-08-23 16:29
閱讀 3236·2019-08-23 14:44