行內元素中一個 display:none; overflow:hidden;導致的問題?
代碼如下
&& &sss&&sss&sss &&
大家也可以調一下 各個部分的 line-height 和 vertical-align 來看看渲染結果。
------------------上面為加的信息-----------下面給出解決方案。中間那個 span ,vertical-align: bottom; 或者 top ;或者改小他的 line-height 即可解決。求教各路大神,,,為撒會產生幾px的差距??瀉藥
簡化下:&
&sss&&sss&sss
&
相對於替換元素baseline認定
你的line-height沒設置用默認值 normal這玩意UA控制多大的雖然規範推薦是1-1.2 但然並卵總之UA就是給的了那麼高本來大家都是妥妥的baseline對齊來個 baseline 是底的那就往上對去唄所以你的 vertical-align 和 line-height 修改解決方案能找補回來首先引用規範中的這句話:
The baseline of an "inline-block" is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes or if its "overflow" property has a computed value other than "visible", in which case the baseline is the bottom margin edge.
這句話的意思是行級盒的baseline是這盒子下面的正常流中的最後一個行盒,除非給這個盒子以overflow不為visible的值。
也就是說,當overflow不為visible時,這個盒子的baseline就不遵循「行級盒的baseline是這盒子下面的正常流中的最後一個行盒」這一規則了。
緊接著又說了,此時的baseline是這個盒子的下外邊bottom margin edge
題主所遇到的問題,就是因為那個span給了overflow:hidden後,它的baseline變成了它的下外邊了,而其它兩個行級盒的baseline是在下底邊靠上一點的位置。而這三個行級盒默認的vertical-align值是baseline的,所以才會那樣對齊。
所以解決辦法就是讓其基線保持一致,baseline是不行了,那就換top唄,top反正是對齊的。然後就OK了嘛vertical-align:bottom咯
推薦閱讀:
※哪些網頁適合前端新手去模仿?實踐過程中需要注意什麼?
※axure既然能畫高保真模型,為什麼不技術上優化代碼,直接用於前端?
※如何評價LayUI和他的作者閑心?
※前端頁面如何做到和設計稿一比一完美實現?
※自學前端四個月怎麼樣才能找到一個實習?