我想要在超大鏈接內部看起來和表現爲超鏈接的東西。下面是它應該看起來像ASCII的藝術表示:在HTML源代碼中沒有嵌套鏈接元素的嵌套超鏈接區域
|-------------------------------------------| | Some text [_link_] | |-------------------------------------------|
整個外部矩形(塊元素)是超鏈接。在這個矩形裏面應該有一些文本,並且在這個文本的最後應該有另一個鏈接。
不幸的是嵌套鏈接(A元素)是在(X)HTML非法:
12.2.2嵌套鏈接是非法
鏈接和錨由A元素定義不能嵌套; A元素不得包含任何其他A元素。
(從http://www.w3.org/TR/html401/struct/links.html#h-12.2.2),所以實現上述
<a href="xxx" style="display: block">
Some text
<a href="yyy">link</a>
</a>
的最自然的方式是無效的HTML。更糟糕的是,有些瀏覽器在某些情況下通過將內部鏈接元素移動到外部鏈接元素的關閉元素之外來強制執行此要求。這當然完全打破布局。
所以想什麼,我要問的是如何在佈局以上使用HTML和CSS(但沒有的JavaScript)來呈現,但不嵌套鏈接元素在HTML源代碼。如果行爲儘可能接近具有嵌套鏈接元素的行爲(對於實現HTML標準的瀏覽器不太嚴格),那將會很好。
編輯(16-01-2009)
澄清:解決方案,使用兩個以上的環節要素是完全可以接受的
<a href="xxx" ...>Some text</a>
<a href="yyy" ...>Link</a>
<a href="xxx" ...>& nbsp;</a>
...
有幾個我能想到的解決方案,但我認爲他們都使用JavaScript。我有興趣看看是否有人可以用純CSS + HTML – 2009-01-16 00:28:21
做一個......你知道從可訪問性的角度來看聽起來有多糟糕,是嗎?你不應該把鏈接*下一個*放在另一個裏面,更不用說在裏面了! :-) – 2009-01-16 00:46:10
另一方面,一些可用性/可訪問性提示表明類菜單鏈接應該跨越整個寬度,因爲不需要查找和單擊文本。 – 2009-01-20 15:52:25