2012-02-17 199 views
1

我在驗證一段代碼時遇到了一個簡單的問題。想要一些關於我做錯了什麼的意見。當我驗證它時,會發出警告說我應該關閉錨標記。但我需要使用CSS高亮顯示標題和段落。 html代碼低於HTML驗證錨標記

<li> 
    <a href="#">Home</a> 
    <div class="menu-dropdown"> 
     <div class="menu-items"> 
      <a href="#"> 
      <h4>Why Choose Cyberskills?</h4> 
      <p>There are a number of reason to choose Cyberskills. Click here to find out more...</p> 
     </a> 
     </div> 
    </div> 
</li> 

的CSS代碼如下

menu-items a{ 
    display: block; 
    padding: 10px; 
    text-shadow: 1px 1px 1px #666666; 
    text-decoration: none; 
    color: #000000; 
} 
.menu-items a:hover{ 
display: block; 
background: #666666; 
-moz-border-radius: 3px; 
    -webkit-border-radius: 3px; 
    border-radius: 3px; 
} 

回答

2

在HTML5中,這是有效的。在XHTML 1.0 Transitional中,不允許將「塊標籤」放入鏈接中。塊標籤是HTML標籤其中有display: block每默認,如:divph1h2,...

你可以使用<span>代替h4p把鏈接h4p內。

+0

我有興趣聽到社區對此有何看法。這兩種解決方案在創建有效的HTML時都很難看。如何在'h4'中使用'a',省略'p'並將文本置於'a'的標題中? – 2012-02-17 10:09:56

+0

你有什麼建議會產生完全不同的輸出。 - 好的,使用'span'會刪除不是推薦解決方案的文本部分 - 但是在每個項目中寫一個鏈接並不難看!這是必要的,如果你想保持有效! – Armin 2012-02-17 10:53:39

+0

@Mr利斯特,所有的替代品都會產生較長的鏈接文本,這對可用性,可訪問性和搜索引擎都不利。也許最好的方法是將「p」文本的最後一部分作爲鏈接進行重新表達,例如:閱讀全文:'Reasons for Choosing Cyberskill'。 – 2012-02-17 10:55:46