一次內聯元素錯位引發對line height的思考

2021-09-11 09:16:28 字數 1253 閱讀 9820

line-height 對於乙個前端小可愛來說,應該是乙個會經常碰面的老朋友了。可是有一天,我突然發現自己好像對他沒那麼了解,他也沒有外表看起來的那麼簡單。

事情的經過是這樣的……

在偶然一次工作中,我寫了這樣的模板:

class="name">重大疾病險span>

class="tip">保額每月可累計span>

div>

複製**

div

.name

.tip

複製**

兩個相鄰的內聯元素,字型一大一小,行高相同,由於第二段文字需要有字多情況就自動去下一行的效果,所以第二個spaninline-block我暢想的結果是,兩個 span 高度都是 20px, div 高度也是 20px,多麼完美。但結果往往不近人意……

div 的高度怎麼是 28??

再一看子元素,乙個 28 乙個 20??

明白了上述的疑問以及原理,接下來就看下怎麼解決這個問題。

解決一我們可以給父divline-height設定乙個很小的值

div

em.name

.tip

複製**

這樣,幽靈節點的行高就只有 5px,父元素行高 20px,沒毛病。但這個方法還不夠完美,因為你需要想一下這個很小的值……

解決二當 line-height 設定為乙個無單位的數值時,表示是某倍的font-size。

div

em.name

.tip

複製**

給父元素設定line-height為1,這樣,子元素高度都是自己的font-size,包括幽靈空白節點。這樣就不會再有人無意間撐高父元素了。當然,除非你的幽靈空白節點繼承下來了乙個很大的 font-size, 這點你得明白。

解決三既然行高可以與 font-size 有關,font-size 也是可繼承的,那我們將父元素的 font-size 設為 0

div

em.name

.tip

複製**

可以看到,我們模仿的那個幽靈節點已經沒有了,寬高都是 0 了,父元素的高度也自然就回到了 20px。

前端小白,有講解錯誤或不全之處,還望大佬們嘴下留情,歡迎指正~

一次對spfile錯誤的修改引發的問題

2009 11 27,在對oracle的學習過程中,嘗試修改spfile裡定義的初始化引數。直接開啟spfile檔案 solaris平台下 用vi命令修改了其中的部分引數,修改強制儲存後,資料庫無法啟動 出現如下錯誤 ora 01078 failure in processing system pa...

一次線上故障引發的警示

這次引發的線上故障和我有直接關係,現分析一下這次故障產生的原因和經驗教訓,還請大家引以為戒。原因分析 1 在 公升級包開發過程中,編寫偽登陸介面測試用例時走讀介面 發現對介面引數控制不嚴格 判斷引數是否為null 對其重構為更嚴格引數控制 判斷null或空字串 但未考慮到 中的潛規則 呼叫方就是傳遞...

一次執行緒引發的髒資料

專案新增新功能,功能做完測試階段在資料庫出現髒資料,正常的資料有兩種 但是不定時會出現 這樣的資料,排查思路是這樣的 一 問題分析。髒資料應該不是憑空出現的,按照資料內容情況比較像兩種型別的資料拼接而成。而chargedate是date型別的資料轉換而成所以問題應該出現在date型別處理這方面,查詢...