點擊這裡返回腳本之家 HTML教程 欄目.
上文:標記語言——短語元素
原文出處 Chapter 7 錨點
HTML中的鏈接,正確的說法應該稱作"錨點",它不僅讓我們能指向文檔,還能指向頁面裡的特定段落,更能當作"精准鏈接"的便利工具.讓鏈接對 象接近焦點.在這一章裡,我們將看到四種不同的錨點做法,說明每個方法的優點,也會介紹title屬性如何能提升鏈接的易用性,另外也將使用CSS為鏈接 設計樣式. 在需要指定到頁面的特定部分時,標記錨點是最佳的方法
這是在設計網站時經常遇到的情況,你想鏈接到某個頁面的特定部分,可是使用者正在閱讀的可能是在另外的一個頁面,接下來討論的四種方法之中任選一種都能讓你達成目標.
在示例中,假設我們打算鏈接到同一個頁面中的特定標題: 方法A:空洞的名稱
<p><a href="#oranges">About Oranges</a></p>
...一些文字...
<a name="oranges"></a>
<h2>Oranges Are Tasty</h2>
...更多文字...
使用一個內容空白的錨點標簽再配上name屬性,標記特定的鏈接點,或許這是你熟悉的方法,在標題前放一個內容空白的<a>,並且連 向它(使用#符號,後面加上name屬性的值),就能讓我們連到頁面的特定部分了,當頁面包含了很長需要滾動的項目清單時,我們能通過這個方法十分方便的 連到特定的項目.
圖7-1顯示了點擊"About Oranges"鏈接之後的結果,也就是跳到我們標識<a name="oranges"></a>的地方,正好在標題上面.
圖7-1.點擊連上具體錨點鏈接的示例
效果不錯,但是浪費一個內容空白的標簽來標識鏈接位置有點不合語義,方法B能改進這點. 方法B:全部在名稱之內
<p><a href="#oranges">About Oranges</a></p>
...一些文字...
<h2><a name="oranges">Oranges Are Tasty</a></h2>
...更多文字...
與方法A一樣,我們仍然使用<a>標簽配上name屬性,但這次我們把它包在我想要鏈接的標題外面,這麼做看起來的確比較符合語義,在方法A裡頭,我們的連接對象是...恩,什麼都沒有,但是在方法B裡,我們不僅說明了這段文字是標題標簽的一部分,同時也是這個頁面的連接錨點之一. 小心<a>的全局樣式
如果使用了方法B的話,有個地方必須要注意.如果你為所有的<a>元素指定了全局的CSS樣式的話(顏色,文字大小,文字裝飾等 等),這些樣式就會覆蓋你為<h2>元素指定的樣式.會發生這種情況的原因是,在這個例子裡頭,<a>標簽是位於包圍它 的<h2>標簽之內的子元素.
舉例來說,假如你的CSS內有類似這樣的聲明:
a{
color:green;
font-weight:bold;
text-decoration:underline;
}
方法B配上這段CSS就會讓標題與其他頁面內的<a>一樣變成綠色,粗體,加上下劃線,或許與你期望的<h2>樣式不同.
我們能使用<a>的:link偽類以避免這種現象(同時也能獲得其他好處),在本章稍後的"技巧延伸"中會詳細討論. 更豐富的名稱屬性
使用方法B(以及方法A)的好處之一,就是name屬性可以處理更豐富的錨點名稱,具體來說,就是能在名稱之內使用符號
舉例來說,如果使用方法B的話,你可以這麼做(在此é代表符號"e"):
<p><a href="#resumé">My Resumé</a></p>
...一些文字...
<h2><a name="resumé">Dan's Resumé</a></h2>
...更多文字...
在處理不屬於英文字母的字符時,這個功能十分重要.
但是還有幾個方法值得一提,下面這個方法完全不需要使用<a>設定錨點,讓我們看看方法C.
<p><a href="#oranges">About Oranges</a></p>
...一些文字...
<h2 id="oranges">Oranges Are Tasty</h2>
...更多文字...
<p><a href="#comments">Add a Comment!</a></p>
...很多文字...
<form id="comments" action="/path/to/script">
...表單元素...
</form>
<p><a href="#oranges">About Oranges</a></p>
...一些文字...
<h2><a id="oranges" name="oranges">Oranges Are Tasty</a></h2>
...更多文字...
技巧延伸
在這個單元內,我們會看看