成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

「前端早讀君008」新手必踩坑之display: inline-block

sevi_stuo / 1379人閱讀

摘要:中線基線頂線底線中線基線頂線底線是文本的幾個基本線,其對應(yīng)位置如下圖基線小寫英文字母的下端沿。中線小寫英文字母的中間。將元素的基線與其父元素的下標基線對齊。將元素的基線對準給定長度高于其父元素的基線。

今日勵志語

往日不可追,來日猶可期,祝大家2019年繼往開來

迷之間隙

我們創(chuàng)建一個導(dǎo)航列表,并將其列表 item 設(shè)置為 inline-block,主要代碼如下:


.nav {
  background: #999;
}
.nav-item{
  display:inline-block; /* 設(shè)置為inline-block */
  width: 100px;
  background: #ffffd;
}

效果圖如下:

我們從效果圖中可以看到列表 item 之間有一點小空隙,但是我們在代碼中并沒有設(shè)置 margin 水平間距。那么這個空隙是如何產(chǎn)生的呢?

這是因為我們編寫代碼時輸入空格、換行都會產(chǎn)生空白符。而瀏覽器是不會忽略空白符的,且對于多個連續(xù)的空白符瀏覽器會自動將其合并成一個,故產(chǎn)生了所謂的間隙。

對于上面實例,我們在列表 item 元素之間輸入了回車換行以方便閱讀,而這間隙正是這個回車換行產(chǎn)生的空白符。

同樣對于所有的行內(nèi)元素(inline,inline-block),換行都會產(chǎn)生空白符的間隙。

如何消除空白符

從上面我們了解到空白符,是瀏覽器正常的表現(xiàn)行為。但是對于某些場景來說,并不美觀,而且間隙大小非可控,所以我們往往需要去掉這個空白間隙。一般來說我們有兩種方法來去掉這個換行引起間隙:代碼不換行和設(shè)置 font-size。

代碼不換行

我們了解到,由于換行空格導(dǎo)致產(chǎn)生換行符,因此我們可以將上述例子中的列表 item 寫成一行,這樣空白符便消失,間隙就不復(fù)存在了。其代碼如下:

但考慮到代碼可讀及維護性,我們一般不建議連成一行的寫法。

設(shè)置 font-size

首先要理解空白符歸根結(jié)底是個字符,因此,我們可以通過設(shè)置 font-size 屬性來控制產(chǎn)生的間隙的大小。我們知道如果將 font-size 設(shè)置為 0,文字字符是沒法顯示的,那么同樣這個空白字也沒了,間隙也就沒了。

于是順著這個思路就有了另一個解決方案:通過設(shè)置父元素的 font-size 為 0 來去掉這個間隙,然后重置子元素的 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;
}

使用該方法時需要特別注意其子元素一定要重置 font-size,不然很容易掉進坑里(文字顯示不出來)。

對齊問題

由于 inline-block 屬于行內(nèi)級元素,所以 vertical-align 屬性同樣對其適用。

在正式講解 vertical-align 之前,我們需要先說一些基本概念。

中線、基線、頂線、底線

中線(middle)、基線(baseline)、頂線(text-top、底線(text-bottom))是文本的幾個基本線,其對應(yīng)位置如下圖:

基線(base line):小寫英文字母x的下端沿。

中線(middle line):小寫英文字母x的中間。

頂線(text-top):父元素 font-size 大小所組成的一個內(nèi)容區(qū)域的頂部

底線(text-bottom):父元素 font-size 大小所組成的一個內(nèi)容區(qū)域的底部

vertical-align 的值

vertical-align 只接受8個關(guān)鍵字、一個百分數(shù)值或者一個長度值。下面我們將看看各關(guān)鍵字如何作用于行內(nèi)元素。

baseline 默認元素的基線與父元素的基線對齊。

sub 將元素的基線與其父元素的下標基線對齊。

super 將元素的基線與其父代的上標 - 基線對齊。

text-top 將元素的頂部與父元素的字體頂部對齊。

text-bottom 將元素的底部與父元素的字體的底部對齊。

middle 將元素的中間與基線對齊加上父元素的x-height的一半。

top 將元素的頂部和其后代與整行的頂部對齊。

bottom 將元素的底部和其后代與整行的底部對齊。

將元素的基線對準給定長度高于其父元素的基線。

像<長度>值,百分比是line-height屬性的百分比。


打開微信掃一掃關(guān)注早讀君,每天早晨為你推送前端知識,度過擠地鐵坐公交的時光

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/117153.html

相關(guān)文章

  • 前端早讀」css進階之徹底理解視覺格式化模型

    摘要:視覺格式化模型是用來處理和在視覺媒體上顯示文檔時使用的計算規(guī)則。匿名塊盒子在某些情況下進行視覺格式化時,需要添加一些增補性的盒子,這些盒子不能用選擇符選中,因此稱為匿名盒子。因此最好不要將其用于正式項目。 今日勵志 不論你在什么時候開始,重要的是開始之后不要停止。 前言 對于部分前端工程師來講,有時候CSS令他們很頭疼,明明設(shè)置了某個樣式,但是布局就是不起作用。 showImg(htt...

    Eidesen 評論0 收藏0
  • C3的坑之inline-block

    最近開始復(fù)習(xí)css一直在踩坑,今天分享一個inline-block 關(guān)于inline-block可能很多人都不熟悉,布局這方面很多人用的都是flex或者浮動,flex很強大毋庸置疑的可是關(guān)于兼容性就不是很讓人滿意,而浮動雖然很兼容可是覺得清除浮動就很麻煩,于此我在一些大型網(wǎng)站,例如我們的segmentfault的首頁導(dǎo)航展示用的布局就是inline-block,覺得inline-block可以擼一...

    luck 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<