2010-09-08 56 views
0

tab-ver.tab {

background: url(../images/16by16.png) no-repeat center center; 
    text-indent: -10000em; 
    height: 16px; 
    width: 16px; 
    padding: 4px 1px; 
    margin-right: 1px; 
    margin-left: 50px; 
} 

<div id="tab-ver" class="tab"><a href="http://www.yahoo.com">English</a></div> 

以上腳本的問題是,一個鏈接不會在所有的工作。如果用戶點擊16by16.png圖片,用戶不會重定向到yahoo.com。CSS - 如何讓一個DIV中的一個連接工作與背景圖像

但是要解決這個問題?

謝謝

// update001// 
I have tried the following suggestion: 

#tab-ver.tab { 
    text-indent: -10000em; 
} 
#tab-ver.tab a{ 
    background: url(../images/16by16.png) no-repeat center center; 
    height: 16px; 
    width: 16px; 
    padding: 4px 1px; 
    margin-right: 1px; 
    margin-left: 50px; 
    display: block; 
} 

它爲我原來的問題。但是,顯示的圖像現在偏移到水平菜單的底部。這是由'display:block'造成的。但是,如果我刪除'display:block',那麼圖像將不可見。

謝謝

// update 1 // 

Based on the suggestion, the following script works best for me 

#tab-en-ver.tab a { 
    background: url(../images//16by16.png) no-repeat center center; 
    height: 16px; 
    width: 16px; 
    padding: 4px 1px; 
    margin-right: 1px; 
    margin-left: 50px; 
    text-indent: -10000em; 
} 

然而,這個建議確實有一個問題。文字「英文」與圖像混合。我無法弄清楚如何從鏈接中刪除「英文」文本。

通過添加下面的額外規則將導致圖像消失。

#tab-ver.tab { 
text-indent: -10000em; 
} 

有什麼想法嗎?

回答

1

如果你想要的文字(「英語」)被隱藏,比你必須使用<img/>標籤,與alt屬性,是這樣的:

<img src="english-flag.png" alt="English" /> 

您也可以使用一些CSS黑客,但:

  1. 用於什麼?使用純HTML可以輕鬆實現!
  2. 這些都是黑客行爲,所以他們可能工作或不在不同的瀏覽器。

一種這樣的黑客可以是一個背景設定爲<a/>元件,以抵消文本,到溢流設置爲隱藏,並設置固定寬度:

a{ 
    padding-left:16px; 
    overflow:hidden; 
    display:block; 
    width:16px; 
    height:16px; 
    url(../images/16by16.png) no-repeat left top;} 

<a href="...">English</a> 
+0

你好MainMa,我應該在哪裏放這個IMG?謝謝 – q0987 2010-09-08 02:10:46

+0

他們不是'黑客'的任何定義的單詞 - 圖像替換是一個有效的技術,是跨瀏覽器兼容和廣泛使用 – 2010-09-08 02:15:40

+0

你好MainMa,請檢查這個圖像http://i52.tinypic.com/245hax1 .png正如你所看到的,當鼠標懸停在圖像上時,會出現白色背景。你知道如何解決這個問題嗎?謝謝 – q0987 2010-09-08 02:17:07

3

改爲將該CSS改爲<a>。添加一個display: block,這樣它將顯示爲塊級元素,如<div><div>將擴大到適合<a>

編輯:嘗試inline-block而不是看看是否有幫助。

#tab-ver.tab a { 
    display: inline-block; 
    background: url(../images/16by16.png) no-repeat center center; 
    text-indent: -10000em; 
    height: 16px; 
    width: 16px; 
    padding: 4px 1px; 
    margin-right: 1px; 
    margin-left: 50px; 
} 
+1

或者只是使用' img'標籤 - 取決於什麼'16x16。png'當然是 – 2010-09-08 01:14:24

+0

Hello BlotClock,#tab-ver是我用於頁面的水平菜單之一。在我採納你的建議後,英文和圖像一起出現。任何修復?謝謝 – q0987 2010-09-08 01:16:29

+0

+1好的解決方案。但是它會增加你的可點擊區域,所以如果這不是你想要的,你將不得不把填充放在'div'上。 – jeroen 2010-09-08 01:17:26

1

你可以有a標籤使用填補了DIV:

a { 
    display: block; 
    height: 16px; 
} 

然後,您可以也從div刪除height,因爲它會自動增長。

+0

你好jeroen,1>我想隱藏文字2>我想讓圖像可點擊。 3> DIV是頁面上的水平菜單之一。謝謝 – q0987 2010-09-08 01:20:18

+0

當你嘗試我的答案時會發生什麼? – jeroen 2010-09-08 01:28:37

+0

當我使用'display:block'時,它打破了我的水平菜單佈局。謝謝 – q0987 2010-09-08 02:18:07

相關問題