關(guān)于圖片與文字垂直方向不對(duì)齊問題的解決方法

前言
可能很多人一開始學(xué)前端時(shí)都會(huì)覺得CSS簡(jiǎn)單,沒錯(cuò),CSS沒有語言邏輯,入門確實(shí)很簡(jiǎn)單,可要是想深入挖掘的話……嘿嘿,水可深著呢!
就比如說今天要跟大家分享的這個(gè),表面上看可能覺得也沒多大問題,但是就是這個(gè)不太起眼的“小玩意”,困擾了我很久……下面話不多說了,來一起看看詳細(xì)的介紹吧。
接下來我們步入正題~~
比如說,現(xiàn)在我要做一個(gè)簡(jiǎn)單的刪除按鈕,只由一個(gè)icon和“刪除”兩個(gè)字組成,你會(huì)如何布局,給你30秒時(shí)間考慮。
好,先亮出HTML代碼如下:
<div class="del"><span class="icon"></span><span>刪除</span></div>
很簡(jiǎn)單,就是一個(gè)class為del的div元素下有兩個(gè)span標(biāo)簽,當(dāng)然icon你也可以直接用偽元素代替(還不知道偽元素的面壁思過去...)。
接下來你可能會(huì)這么寫CSS:
.del{ font-size: 18px;} .del .icon{ display: inline-block; width: 16px; height: 24px; margin-right: 5px; background: url("imgs/delete.png") no-repeat center; background-size: 100%;}
然后它就變成這個(gè)樣子了:
咦?好像跟想象的不太一樣??!為什么圖片和文字垂直方向上不能對(duì)齊呢?Why?
這是因?yàn)閳D片和文字在行內(nèi)垂直方向默認(rèn)是以基線(baseline)對(duì)齊的,圖片基線在圖片底部,而文字基線卻在文字中點(diǎn)偏下的位置,所以才會(huì)顯示成上圖的樣子。那么這個(gè)問題該如何解決呢?
很簡(jiǎn)單,我們只需給圖片和文字分別加上 vertical-align: middle即可:
.del .icon{ display: inline-block; width: 18px; height: 24px; margin-right: 5px; vertical-align: middle; background: url("imgs/delete.png") no-repeat center; background-size: 100%;} .del span{ vertical-align: middle;}
這樣的話,圖片和文字就以其中心線對(duì)齊了:
說到這里,其實(shí)本文基本已經(jīng)結(jié)束了,但是經(jīng)過本人親測(cè)發(fā)現(xiàn),在移動(dòng)端卻會(huì)發(fā)現(xiàn)圖片和文字又會(huì)出現(xiàn)不對(duì)齊的情況了,但這只是部分瀏覽器出現(xiàn)的兼容性問題,解決方法也是有的,就是在設(shè)置文字字體大小和icon大小時(shí)盡量設(shè)置為5的整數(shù)倍,并盡量讓icon高度與字體大小相同。那么本例的代碼將寫成下面這樣:
.del{ font-size: 20px;} .del .icon{ display: inline-block; width: 20px; height: 25px; margin-right: 5px; vertical-align: middle; background: url("imgs/delete.png") no-repeat center; background-size: 100%;} .del span{ vertical-align: middle;}
這樣基本也沒有什么問題了……
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
- 本文給大家介紹的是如何讓同一行的圖片和文字巧妙的居中對(duì)齊的方法,思路非常好,這里分享給大家,希望大家能夠喜歡。2015-03-16
- 當(dāng)文字和圖片出現(xiàn)在同一行或者同一個(gè)div里面的時(shí)候,在瀏覽器中運(yùn)行出來的顯示效果往往是在不同的行,那么我們?cè)趺床拍茉赾ss中控制他們?cè)谕恍酗@示呢2014-06-15
- 在文字旁邊加上一個(gè)圖標(biāo),通過css如何解決文字與圖片不能水平居中對(duì)齊的問題,下面有個(gè)示例,大家可以參考下2014-05-31