由@udidu提供的答案適用於你的情況。但是,您必須注意,圖片不居中的主要原因是由於應用於您的<a>
.link
的css屬性line-height
。從你的代碼示例這裏http://jsfiddle.net/zSGLy/6/
,你是否應該由事故中,有任何繼承不同的CSS屬性line-height
,設置vertical-align:-5px
將需要重新檢查,該解決方案重新調整,每一次。
有解決這個問題的幾種方法:
第1種方法
如果你真的需要的圖像,你必須通過設置要稍微有點hackish它以這種方式垂直定位。如果我不需要,這是我不喜歡使用的一種方法,因爲您需要在組合中使用另一個<span>
元素。
line-height: 1;
很重要。這裏的小提琴http://jsfiddle.net/zSGLy/8/
HTML:
<a href="javascript:void(0)" class="link">
<span><img src="http://energenius.co.uk/dash/img/settingsIcon.png" /></span>
</a>
CSS:
.link {
display: inline-table;
background-color: red;
height: 30px;
/* just to make the problem more obvious */
width: 100px;
text-align: center;
line-height: 30px;
}
.link > span {
height: 100%;
display: table-cell;
vertical-align: middle;
line-height: 1;
}
第2種方法
在分離演示內容(什麼是樣式表)的概念,更好的方法是將圖像設置爲背景圖像。
這裏舉例:http://jsfiddle.net/zSGLy/9/
CSS:
.link {
display: inline-block;
background-color: red;
height: 30px;
/* just to make the problem more obvious */
width: 100px;
text-align: center;
/* bg image*/
background-image: url(http://energenius.co.uk/dash/img/settingsIcon.png);
background-repeat: no-repeat;
background-position: center center;
}
HTML:
<a href="javascript:void(0)" class="link"></a>
希望它能幫助。
任何有效的原因,爲什麼應該工作(顯然它確實,但我不明白爲什麼)? –
您可以在這裏獲得更多關於'vertical-align'的詳細信息:http://www.impressivewebs.com/css-vertical-align/ – udidu