2010-10-16 118 views

回答

2

試試這個:

<style type="text/css"> 
.menu { 
} 
.menu a { 
    float: left; 
    display: inline; 
    width: 42px; 
    height: 42px; 
    text-decoration: none; 
} 
.menu a span { 
    display: block; 
    overflow: hidden; 
    height: 0; 
} 
.menu .home { 
    background: transparent url(http://img826.imageshack.us/img826/6568/homebi.png) 0 0 no-repeat; 
} 
.menu .link:hover { 
    background-position: 0 -42px; 
} 
</style> 

<div class="menu"> 
    <a href="#" title="Home" class="link home"><span>Home</span></a> 
</div> 
0

繼承人的裸骨頭圖像翻轉。

的CSS

.rollover{display:block; height:42px; width:42px; background:url(http://img826.imageshack.us/img826/6568/homebi.png) top;} 
.rollover:hover{background-position:bottom;} 
.rollover span{display:none} 

在HTML

<a href="#" class="rollover"><span>Home</span></a> 

最重要的部分是背景的位置,這對按鈕正常狀態設置爲「頂部」,當翻轉背景現在的位置是'底部'。

假設您的圖像包含兩個按鈕狀態是84px高這將工作正常。

3

全部關於background-position的初始值(非:hover)和最終值(:hover)的值。

#test { 
    height: 42px; 
    width: 42px; 
    background-image: url(http://img826.imageshack.us/img826/6568/homebi.png); 
    background-repeat: no-repeat; 
    background-color: transparent; 
    background-position: top; /* <-- key step #1 */ 
} 
#test:hover { 
    background-position: bottom; /* <-- key step #2 */ 
} 

Demo


根據您的評論回覆:包裹<div>用錨(<a>),這裏是做什麼:

  1. 交換<div>出去<span>。這是因爲錨的有效孩子必須是內嵌元素
  2. 但內聯顯示的元素不會表現出接受維度!因此,使用一個額外的CSS屬性修復這個新問題:跨度上的display: inline-block

Demo 2

+1

嘿馬特這對我見過的一個翻轉的最佳實施。很好很簡單。我喜歡'頂部'和'底部'的定位,幾乎萬無一失。 – MikeAinOz 2010-10-16 21:50:55

+1

@Mike:謝謝!我認爲,避免**背景:......速記更爲清晰。希望它能顯示出你需要的確切最小值。 – 2010-10-16 21:57:31

+0

這是完美的。 :)但這裏的小問題是,我怎樣才能使這個鏈接,以及 – Ampix0 2010-10-17 03:08:29