摘要:中線基線頂線底線中線基線頂線底線是文本的幾個(gè)基本線,其對(duì)應(yīng)位置如下圖基線小寫英文字母的下端沿。中線小寫英文字母的中間。將元素的基線與其父元素的下標(biāo)基線對(duì)齊。將元素的基線對(duì)準(zhǔn)給定長(zhǎng)度高于其父元素的基線。
今日勵(lì)志語(yǔ)
往日不可追,來(lái)日猶可期,祝大家2019年繼往開(kāi)來(lái)
迷之間隙我們創(chuàng)建一個(gè)導(dǎo)航列表,并將其列表 item 設(shè)置為 inline-block,主要代碼如下:
.nav { background: #999; } .nav-item{ display:inline-block; /* 設(shè)置為inline-block */ width: 100px; background: #ffffd; }
效果圖如下:
我們從效果圖中可以看到列表 item 之間有一點(diǎn)小空隙,但是我們?cè)诖a中并沒(méi)有設(shè)置 margin 水平間距。那么這個(gè)空隙是如何產(chǎn)生的呢?
這是因?yàn)槲覀兙帉懘a時(shí)輸入空格、換行都會(huì)產(chǎn)生空白符。而瀏覽器是不會(huì)忽略空白符的,且對(duì)于多個(gè)連續(xù)的空白符瀏覽器會(huì)自動(dòng)將其合并成一個(gè),故產(chǎn)生了所謂的間隙。
對(duì)于上面實(shí)例,我們?cè)诹斜?item 元素之間輸入了回車換行以方便閱讀,而這間隙正是這個(gè)回車換行產(chǎn)生的空白符。
同樣對(duì)于所有的行內(nèi)元素(inline,inline-block),換行都會(huì)產(chǎn)生空白符的間隙。
如何消除空白符從上面我們了解到空白符,是瀏覽器正常的表現(xiàn)行為。但是對(duì)于某些場(chǎng)景來(lái)說(shuō),并不美觀,而且間隙大小非可控,所以我們往往需要去掉這個(gè)空白間隙。一般來(lái)說(shuō)我們有兩種方法來(lái)去掉這個(gè)換行引起間隙:代碼不換行和設(shè)置 font-size。
代碼不換行我們了解到,由于換行空格導(dǎo)致產(chǎn)生換行符,因此我們可以將上述例子中的列表 item 寫成一行,這樣空白符便消失,間隙就不復(fù)存在了。其代碼如下:
但考慮到代碼可讀及維護(hù)性,我們一般不建議連成一行的寫法。
設(shè)置 font-size首先要理解空白符歸根結(jié)底是個(gè)字符,因此,我們可以通過(guò)設(shè)置 font-size 屬性來(lái)控制產(chǎn)生的間隙的大小。我們知道如果將 font-size 設(shè)置為 0,文字字符是沒(méi)法顯示的,那么同樣這個(gè)空白字也沒(méi)了,間隙也就沒(méi)了。
于是順著這個(gè)思路就有了另一個(gè)解決方案:通過(guò)設(shè)置父元素的 font-size 為 0 來(lái)去掉這個(gè)間隙,然后重置子元素的 font-size,讓其恢復(fù)子元素文字字符。
所以該方法代碼如下:
.nav { background: #999; font-size: 0; /* 空白字符大小為0 */ } .nav-item{ display:inline-block; width: 100px; font-size: 16px; /* 重置 font-size 為16px*/ background: #ffffd; }
使用該方法時(shí)需要特別注意其子元素一定要重置 font-size,不然很容易掉進(jìn)坑里(文字顯示不出來(lái))。
對(duì)齊問(wèn)題由于 inline-block 屬于行內(nèi)級(jí)元素,所以 vertical-align 屬性同樣對(duì)其適用。
在正式講解 vertical-align 之前,我們需要先說(shuō)一些基本概念。
中線、基線、頂線、底線中線(middle)、基線(baseline)、頂線(text-top、底線(text-bottom))是文本的幾個(gè)基本線,其對(duì)應(yīng)位置如下圖:
基線(base line):小寫英文字母x的下端沿。
中線(middle line):小寫英文字母x的中間。
頂線(text-top):父元素 font-size 大小所組成的一個(gè)內(nèi)容區(qū)域的頂部
底線(text-bottom):父元素 font-size 大小所組成的一個(gè)內(nèi)容區(qū)域的底部
vertical-align 的值
vertical-align 只接受8個(gè)關(guān)鍵字、一個(gè)百分?jǐn)?shù)值或者一個(gè)長(zhǎng)度值。下面我們將看看各關(guān)鍵字如何作用于行內(nèi)元素。
baseline 默認(rèn)元素的基線與父元素的基線對(duì)齊。
sub 將元素的基線與其父元素的下標(biāo)基線對(duì)齊。
super 將元素的基線與其父代的上標(biāo) - 基線對(duì)齊。
text-top 將元素的頂部與父元素的字體頂部對(duì)齊。
text-bottom 將元素的底部與父元素的字體的底部對(duì)齊。
middle 將元素的中間與基線對(duì)齊加上父元素的x-height的一半。
top 將元素的頂部和其后代與整行的頂部對(duì)齊。
bottom 將元素的底部和其后代與整行的底部對(duì)齊。
打開(kāi)微信掃一掃關(guān)注早讀君,每天早晨為你推送前端知識(shí),度過(guò)擠地鐵坐公交的時(shí)光
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/117153.html
摘要:視覺(jué)格式化模型是用來(lái)處理和在視覺(jué)媒體上顯示文檔時(shí)使用的計(jì)算規(guī)則。匿名塊盒子在某些情況下進(jìn)行視覺(jué)格式化時(shí),需要添加一些增補(bǔ)性的盒子,這些盒子不能用選擇符選中,因此稱為匿名盒子。因此最好不要將其用于正式項(xiàng)目。 今日勵(lì)志 不論你在什么時(shí)候開(kāi)始,重要的是開(kāi)始之后不要停止。 前言 對(duì)于部分前端工程師來(lái)講,有時(shí)候CSS令他們很頭疼,明明設(shè)置了某個(gè)樣式,但是布局就是不起作用。 showImg(htt...
最近開(kāi)始復(fù)習(xí)css一直在踩坑,今天分享一個(gè)inline-block 關(guān)于inline-block可能很多人都不熟悉,布局這方面很多人用的都是flex或者浮動(dòng),flex很強(qiáng)大毋庸置疑的可是關(guān)于兼容性就不是很讓人滿意,而浮動(dòng)雖然很兼容可是覺(jué)得清除浮動(dòng)就很麻煩,于此我在一些大型網(wǎng)站,例如我們的segmentfault的首頁(yè)導(dǎo)航展示用的布局就是inline-block,覺(jué)得inline-block可以擼一...
閱讀 1100·2022-06-21 15:13
閱讀 1921·2021-10-20 13:48
閱讀 1095·2021-09-22 15:47
閱讀 1423·2019-08-30 15:55
閱讀 3184·2019-08-30 15:53
閱讀 575·2019-08-29 12:33
閱讀 776·2019-08-28 18:15
閱讀 3536·2019-08-26 13:58