2011-01-26 264 views
2

有一個腦凍...嵌套HTML標籤

我想這樣做:

<li> 
<a> 
    <p>text</p> 
    <p class="x">text</p> 
</a> 
</li> 

我知道我不能。那麼我怎麼樣? (沒有JS/jQuery等)

+0

您是否在尋找符合標準?因爲你可以做到這一點。 – 2011-01-26 17:08:45

+0

不幸的是,我是! – Mike 2011-01-26 17:10:46

+0

如果您使用HTML 4.01 Transitional,則符合「符合標準」,否則不符合。你不能用一個內聯元素(* a *)包裝一個塊元素(* p *)。 – BryanH 2011-01-26 17:19:51

回答

5

更改<p>某些行內元素(例如<span>)並給li a span風格display: block;,我猜。

<li> 
<a> 
    <span>text</span> 
    <span class="x">text</span> 
</a> 
</li> 
+0

當然。但它不符合標準,因爲塊內嵌入 – Mike 2011-01-26 17:11:26

0

這證實爲XHTML 1.1:

<li> 
    <p><a href="example.com">text</a></p> 
    <p class="x"><a href="example.com">text</a></p> 
    </li> 
0

我假設你正在爲是要在列表項文本的整個塊,也許整個列表項獲得,是點擊?

首先,段落標記是塊級別的項目,但錨定標記本質上是內聯元素。你不能把它放在一個錨標籤裏,它在語義上是不正確的,它不會被驗證。代替這樣做:

<ul class="myList"> 
<li> 
    <a href="#"> 
     <strong>This is the title</strong> 
     <span>This is the link text</span> 
    </a> 
</li> 
</ul> 

假設您希望列表項的整個區域都是可點擊的,您可以應用display:block;使用CSS的錨標記。請注意,如果您爲列表項目指定了不同的高度,並希望所有內容都可點擊,則還需要在標籤上設置高度。

.myList a { display:block; } 

如果你想強標籤斷行(你的「正文」中的鏈接)...

.myList a strong { display:block;} 

希望幫助!