摘要:默認(rèn)情況下,行內(nèi)元素不會(huì)以新行開始,而塊級(jí)元素會(huì)新起一行。常見的內(nèi)聯(lián)元素有分類替換元素在中,可替換元素的展現(xiàn)效果不是由來控制的。這些元素是一種外部對(duì)象,它們外觀的渲染,是獨(dú)立于的。
前言
在寫作本文章前原本打算只是復(fù)習(xí)一下 line-height 和 vertical-height 這兩個(gè)屬性而已, 結(jié)果發(fā)現(xiàn)掉進(jìn)了一個(gè)大坑網(wǎng)上有很多篇文章看的我云里霧里的, 最后決定還是從頭來一遍吧, 這篇文章是這次的一個(gè)記錄.
這次的故事雖然時(shí)因?yàn)?line-height 和 vertical-align 這兩個(gè)屬性引起的, 但是實(shí)際上本篇文章中主要探討的話題是 "文本是如何渲染", 雖然這兩個(gè)屬性與話題關(guān)聯(lián)很大但是本文中不會(huì)過多的提及它們, 請(qǐng)確保熟悉它們.
內(nèi)聯(lián)元素(行內(nèi)元素)你也可以直接跳過這章, 去閱讀后面精彩的部分, 如果遇到了概念問題可以在回來進(jìn)行查閱.
我們這里不會(huì)仔細(xì)的討論 "內(nèi)聯(lián)元素", 只是為了后面的內(nèi)容做鋪墊, 這些內(nèi)容可能需要你提前預(yù)習(xí).
另外 "內(nèi)聯(lián)元素" 和 "行內(nèi)元素" 實(shí)際上是同一個(gè)東西只是叫法不同, 但是本篇文章中沒有統(tǒng)一叫法.
表現(xiàn)一個(gè)內(nèi)聯(lián)元素只占據(jù)它對(duì)應(yīng)標(biāo)簽的邊框所包含的空間。
默認(rèn)情況下,行內(nèi)元素不會(huì)以新行開始,而塊級(jí)元素會(huì)新起一行。
常見的內(nèi)聯(lián)元素有:
b, big, i, small, tt
abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var
a, bdo, br, img, map, object, q, script, span, sub, sup
button, input, label, select, textarea
分類 替換元素在 CSS 中,可替換元素(replaced element)的展現(xiàn)效果不是由 CSS 來控制的。這些元素是一種外部對(duì)象,它們外觀的渲染,是獨(dú)立于 CSS 的。
典型的替換元素有:
那些沒有 "特異功能" 的 "內(nèi)聯(lián)元素" 就是 "非替換元素", 典型值如下:
布局
內(nèi)聯(lián)元素除了 "行內(nèi)元素不會(huì)以新行開始" 這種大家都知道的特性外, 還有幾點(diǎn)特殊的表現(xiàn). 例如塊級(jí)元素上的幾個(gè)常見屬性:
margin
padding
border
這些屬性對(duì)于內(nèi)聯(lián)元素來說不會(huì)影響其垂直高度, 但是這不意味著這些內(nèi)容被裁剪掉了而是因?yàn)?margin 是透明的而 padding 通常來說也是透明的.
唯一例外的是 border 它可以被看到, 不過依然不會(huì)影響垂直高度:
圖片中文字 "Emmm" 被 包裹了起來并且設(shè)置了 margin 和 padding 和 border 請(qǐng)仔細(xì)觀察在 "垂直方向" 實(shí)際上高度并沒有增加.
注意:這種表現(xiàn)只會(huì)出現(xiàn)在 "非替換元素" 上, "替換元素" 的表現(xiàn)是不同的后文中會(huì)提到.
字體我們先從字體開始, 因?yàn)槲谋静季值幕締挝缓翢o疑問是由文字組成的:
hello world
當(dāng)討論的文字的時(shí)候, 最常見的有關(guān) css 屬性就是 font-size 了, 通常認(rèn)為 font-size 指定的值就是文字的大小.
想要證明 font-size 不等于 "字體大小" 實(shí)際上非常簡(jiǎn)單, 打開瀏覽器的開發(fā)者工具你就可以證明這點(diǎn), 例如我們有如下的代碼:
hello world
慣性思維會(huì)讓我們認(rèn)為這個(gè)元素的大小就是 25px .
哈哈!歡迎來到css世界:
上圖中我們看到一個(gè) font-size:25px 的元素卻占據(jù)了 32.8px 的高度的空間.
實(shí)際上, font-size 屬性與你看到的實(shí)際字體大小之間的具體關(guān)系由字體的設(shè)計(jì)者來確定. 這種關(guān)系設(shè)置為字體本身中的一個(gè) em 方框(有人也稱為 em 框).css權(quán)威指南(第三版)
你設(shè)置的 font-size 實(shí)際上控制的是文字的 em框 而不是字體的本身的大小, 而 em框 與文本之間的間距是由字體的設(shè)計(jì)者決定的.
em框 的概念就類似小學(xué)使用的田字格, 所有字體都相對(duì)于田字格進(jìn)行書寫.
不過按照上面的理解, font-size 控制的是 em框 的大小, 按照這樣的設(shè)計(jì)字體大小至少不會(huì)超過 "25px" 才對(duì).
沒錯(cuò)實(shí)際上大部的字體都嚴(yán)格遵守了 em框 的大小限制, 當(dāng)我們將 line-height 大小設(shè)置為 font-size 一樣的時(shí)候:
hello world
我們發(fā)現(xiàn)字體渲染大小都是小于或者等于 "25px" 的:
那么多出去的高度是從哪里來的?
實(shí)際上字體作者有相當(dāng)大的權(quán)力來控制字體,不僅可以讓字體大小超過 em框, 還可以指定字體的上下留白空間.
具體可以參考這篇文章, 從制作字體的角度解釋了字體的渲染表現(xiàn), 從而可以解釋 "不同字體之間為什么差異這么大" 這個(gè)令人頭大的問題.
line-height 的默認(rèn)值在MDN上對(duì)于 line-height 有如下大致的描述:
當(dāng) line-height 使用默認(rèn)值的時(shí)候(這個(gè)值是 normal), 這個(gè)值約為 1.2(不同瀏覽器不同), 取決于元素的 font-family.
注意
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/54287.html
摘要:默認(rèn)情況下,行內(nèi)元素不會(huì)以新行開始,而塊級(jí)元素會(huì)新起一行。常見的內(nèi)聯(lián)元素有分類替換元素在中,可替換元素的展現(xiàn)效果不是由來控制的。這些元素是一種外部對(duì)象,它們外觀的渲染,是獨(dú)立于的。 前言 在寫作本文章前原本打算只是復(fù)習(xí)一下 line-height 和 vertical-height 這兩個(gè)屬性而已, 結(jié)果發(fā)現(xiàn)掉進(jìn)了一個(gè)大坑網(wǎng)上有很多篇文章看的我云里霧里的, 最后決定還是從頭來一遍吧, ...
摘要:源碼漫游指南一作者秘塔科技算法研究員前幾天發(fā)布了第五屆頂級(jí)語言交互排行榜,語言繼續(xù)穩(wěn)坐第一把交椅,并且相比去年的排行情況,拉開了與第二名的距離去年第二名的排名得分為。包含字節(jié)碼相關(guān)的底層抽象。字節(jié)碼對(duì)象的實(shí)現(xiàn)。源文件執(zhí)行結(jié)束后的清理工作。 Python源碼漫游指南(一) 作者:秘塔科技算法研究員 Qian Wan 前幾天IEEE Spectrum發(fā)布了第五屆頂級(jí)語言交互排行榜,Pyth...
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:深度學(xué)習(xí)浪潮這些年來,深度學(xué)習(xí)浪潮一直沖擊著計(jì)算語言學(xué),而看起來年是這波浪潮全力沖擊自然語言處理會(huì)議的一年。深度學(xué)習(xí)的成功過去幾年,深度學(xué)習(xí)無疑開辟了驚人的技術(shù)進(jìn)展。 機(jī)器翻譯、聊天機(jī)器人等自然語言處理應(yīng)用正隨著深度學(xué)習(xí)技術(shù)的進(jìn)展而得到更廣泛和更實(shí)際的應(yīng)用,甚至?xí)屓苏J(rèn)為深度學(xué)習(xí)可能就是自然語言處理的終極解決方案,但斯坦福大學(xué)計(jì)算機(jī)科學(xué)和語言學(xué)教授 Christopher D. Mannin...
閱讀 649·2023-04-26 02:59
閱讀 759·2023-04-25 16:02
閱讀 2230·2021-08-05 09:55
閱讀 3703·2019-08-30 15:55
閱讀 4813·2019-08-30 15:44
閱讀 1852·2019-08-30 13:02
閱讀 2268·2019-08-29 16:57
閱讀 2347·2019-08-26 13:35