爲什麽有些前端一直用div當按鈕,而不是用button

說論金 2024-05-14 03:50:35
爲什麽有些前端一直用 div 當按鈕,而不是用 button?

難道他們不知道語義化嗎?

純手寫效果,我是用button好,還是div好。

能規範用標簽的地方還是規範使用。

但就我自己的經驗而言,這個還真的是看項目。

<button>

有些政府機構的項目,它們不要求頁面多花裏胡哨,但要求頁面需要嚴格遵循一些設計准則。特別是字體樣式,行間距,頁面顔色等等……特別有些政府公告的頁面,配色布局在我們看來簡直不忍直視,殊不知這個布局甚至可以適配到IE 6,殊不知這個顔色是色盲和色弱人群都可以清晰辨別的配色,殊不知有些視覺障礙的人士在“聽”這個網頁的內容時,加粗的字體是可以重音念出來的等等(我相信很多前端分不清 <strong> 和 <b> 的區別)。

對于這類項目,標簽的規範使用尤爲重要。該用<button>的時候別給我整些幺蛾子。

<custom-button>

對于一些産品/個人展示用的頁面,項目要求是“新穎,酷炫,吊炸天”。所謂的“按鈕”其實是指“擁有複雜動畫效果的可點擊元素”,比如仿安卓Ripple效果的按鈕(雖然也可以用 button 做出來,這裏供理解用),擬物的開關等等。在或者是只有部分浏覽器支持的新標簽/屬性:<progress> <input type="date" /> 等等,爲了達到浏覽器兼容,通常都是用 <div> 封裝。

加上現在 Chrome 爲首的一衆浏覽器又在大力擁抱 Web Components。用戶可以自定義/封裝標簽,打開源代碼全都是見都沒見過的標簽等等。所以針對這部分用戶而言,爲打到最終的體驗效果,不得不用封裝過後的可點擊元素。

圖爲 Github 源碼中使用的 Web Component

爲什麽要用語義化標簽?

語義化是給其他程序猿,更是給搜索引擎。

比如我一個頁面可以這樣寫

<div>我也可以這樣寫

<body> <nav> <ul> <li>Home</li> <li>My Articles</li> </ul> </nav> <aside> <ul> <li>Like</li> <li>Share</li> <li>Add to favorite</li> </ul> </aside> <section> <h3>This is the heading</h3> <article> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quidem, assumenda? </article> <button>Next Page</button> </section> <footer> copyright@2018 </footer></body>

明顯後者的SEO友好程度更高,搜索引擎也更容易將你的內容准確的展示出來。

0 阅读:10

說論金

簡介:感謝大家的關注