2011-05-19 79 views
4

我有列表元素這樣的:打開一組的div到鏈接

<div class="outer"> 
    <div>Head</div> 
    <div>Content</div> 
</div> 

我想有是什麼樣的,如果你把它包裝(但不幸的是北京時間不能在整個外層div鏈接有效)

我知道可以使用「display:block」作爲div中的「a」標籤,以獲得div的全部大小,但不幸的是div的大小取決於(動態)內容,因此不通過CSS設置。這意味着如果我將所述「a」標籤的寬度和高度設置爲100%,那麼它將採用外部div的父級大小。

有沒有一個有效的解決方案呢?

+0

你到底想要什麼?沒有清除:( – diEcho 2011-05-19 13:19:08

+0

,它可以點擊外部div中的任何地方,以跟隨鏈接 – Flo 2011-05-19 13:21:06

回答

2

以下可能的工作:

<div class="outer"> 
    <a href="" class="spec_link"></a> 
    <div>Head</div> 
    <div>Content</div> 
</div> 

和css:

.outer{ position:relative;} 

.outer .spec_link{ 
display:block; 
position:absolute; 
top:0; 
left:0; 
bottom:0; 
right:0; 
} 

無論鏈接的大小如何,鏈接都會圍繞外部環繞。我做的透明度塊類似的東西

+0

是的,這就是我一直在尋找的東西,我幾乎擁有它自己,問題是外部元素上的缺失位置,謝謝 – Flo 2011-05-19 13:24:49

+0

很高興它的工作,絕對根據一個div的位置,你總是設置父母的位置相對:) – Christophe 2011-05-19 13:26:48

1

使用JavaScript代碼,你可以達到這樣的效果:

<div class="outer" style="cursor:pointer;" 
    onclick="document.location='somepage.html';"> 
    <div>Head</div> 
    <div>Content</div> 
</div> 
+0

有什麼奇怪的令人討厭的事情...這將是什麼會告訴用戶沒有鼠標div是可點擊。什麼是屏幕閱讀器或蜘蛛將使它成爲什麼樣的視覺提示會告訴用戶它是一個可點擊的元素,除非他們移動它們的鼠標它會怎樣,如果javascript被禁用? – Xhalent 2011-05-19 13:25:10

+0

使用JS進行這樣一個簡單的任務是過度殺傷性的 – jolt 2011-05-19 13:25:53

0

您可以處理的JavaScript的鏈接:

<div class="outer" onclick="window.location.replace('yourlink.html');"> 
    <div>Head</div> 
    <div>Content</div> 
</div> 
2

你可以轉換divspan並將它們設置爲display:block

<a href="..." class="forced"> 
    <span class="outer"> 
     <span>Head</span> 
     <span>Content</span> 
    </span> 
</a> 

,並使用

.forced, .forced .outer, .forced .outer > span{ 
    display:block; 
} 
+0

最佳解決方案,符合標準。 +1 – jolt 2011-05-19 13:25:37

0

不知道CSS規則,如果你正在尋找爲純粹的CSS解決方案。 jQuery的可以讓你綁定一個click事件:

jQuery('.outer').click(function() { 
    window.location = 'http://www.google.com/'; 
}); 
0
<a href="..."> 
<div> 
... 
</div> 
</a> 

與HTML5有效。