你還在用a標簽嗎?——用button替代a


前言:a標簽,不止你在用,我也在用。但某些時候我們可以考慮用button替代a。

 

在多頁應用中,a標簽很常見,我們常用來作為一個普通超鏈接,進行頁面跳轉。

而在單頁應用中,我們使用路由進行頁面切換,a標簽的使用就少了。

不過當我們不需要跳轉,只需要點擊某個元素來達到一些效果的需求時,常常使用a標簽。

如圖,智聯招聘上的這些選項,就是a標簽,沒有使用a標簽進行頁面的跳轉,而是監聽點擊事件然后進行一些操作,這其實也是我們比較普遍的a標簽用法。

這是一個修改了樣式的a標簽——

a{ text-decoration: none; color: #666666; font-size: 20px; } a:hover{ color: #3EA4DA; }

看似很好,但隱藏着一些我們不想要的效果——

1.能拖拽  

 2.會跳轉,即使不寫href地址,也會刷新頁面

當然,我們可以通過js解決以上兩個問題:

href值為javascript:;   點擊后執行一條空代碼不跳轉頁面

ondragstart='return false'   阻止拖動事件的默認行為

<a href="javasricpt:;" ondragstart='return false' >我是一個a標簽</a>

不過我想提出另一個思路:用button替代a

這是同樣進行了樣式修改的button標簽  

和a標簽對比,差別不大,只需修改樣式,無需寫js代碼。

且樣式修改也很簡單,三個關鍵——border、background、outline設為none即可

button{ border: none; background: none; outline: none; font-size: 20px; color: #666666; } button:hover{ color: #3EA4DA; }

  

最后,並不是要求大家都要使用button,而舍去a,而且我個人有時也會習慣用a,只是提供一個思路:可用button替代a

 


 

補充:

Q:反正都是要去除默認樣式的,為什么不直接用一個span標簽?

A:

1.鼠標樣式:當鼠標移入span時,顯示的樣式為,不像button和a標簽是我們比較喜歡的效果:

  當然,這個可以通過樣式cursor:default;修改。default是默認樣式,箭頭,同button;pointer是手指,同a。

2.雙擊選中文本:雙擊span就會選中文本,如圖。用戶點擊某一元素時,有時會多次點擊,點擊時間間隔短,便會產生雙擊效果,就會選中文字如圖,這個效果就不是很好了。

3.HTML語義化:HTML100多個標簽的存在,就是為了HTML語義化,而不是讓我們所有元素都是div或span。

  HTML豐富的標簽,目的在於通過標簽名傳達標簽內容類型的一些信息,就像h1標簽傳達了標題,header標簽傳達了頭部...

  在這里a標簽和button標簽,則傳達了是鏈接、按鈕,都是用於點擊的元素

 

 Q:為什么要語義化?(轉載自:https://blog.csdn.net/qq_38128179/article/details/80811339

A:

  1. 代碼結構: 使頁面沒有css的情況下,也能夠呈現出很好的內容結構
  2. 有利於SEO: 爬蟲依賴標簽來確定關鍵字的權重,因此可以和搜索引擎建立良好的溝通,幫助爬蟲抓取更多的有效信息
  3. 提升用戶體驗: 例如title、alt可以用於解釋名稱或者解釋圖片信息,以及label標簽的靈活運用。
  4. 便於團隊開發和維護: 語義化使得代碼更具有可讀性,讓其他開發人員更加理解你的html結構,減少差異化。
  5. 方便其他設備解析: 如屏幕閱讀器、盲人閱讀器、移動設備等,以有意義的方式來渲染網頁。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM