為什麼有些前端一直用 div 當按鈕,而不是用 button?

時間 2021-05-06 03:31:15

1樓:何祖榮

在H5裡最好用div,因為不會自帶CSS,有些手機瀏覽器實在是太搞,button和input全給我加陰影什麼的,等下設計看見又BB我了

2樓:貓5號

簡單來說,就是語義化的需求根本不是你的客戶的直接需求它的優先順序很低,根本不是績效的一部分。

現代前端基本都是mv*元件化的,語義化這層需求被弱化加上他們有些還得考慮跨平台的架構,對外部依賴越大(語義化可以理解為一種依賴),對人員要求就越高,心智負擔更重

用乙個領導不關心,客戶不買單的偽需求換成維護性,何樂而不為?

如果假設有乙個專案是面向視障人士的,我相信專案肯定會重視這一點

3樓:

太醜,也不好調,原生button還有預設樣式,ui庫的button都不愛用,因為有設計稿,用div畫個自定義的button多簡單.

4樓:段王爺

你在說我嗎?

我就是這樣的前端。

曾經其實我並不是。

那時候在做電商平台,非常講究SEO,img標籤一定要帶alt屬性。

後來做後台管理系統,內部使用就不需要SEO了,但我還是保持著語義化標籤的風格。

可是我發現其他人壓根不這麼寫,在乙個團隊中,除非你是決策者,否則改變別人絕對不如改變自己。

所以我放棄了語義化標籤。

到現在,我已經是決策者,但是我們的專案本身不需要SEO,而且為了規避不同瀏覽器的樣式,原則上會重置所有樣式,所以用不用button就沒有必要性了。

當然,我們雖然拋棄了語義化標籤,但是class命名一直是有規範的。

其實如果不考慮SEO,前端元件化已經可以拋棄語義化標籤。

語義化標籤有存在的意義,但沒有也就沒有了。

無需較真。

5樓:風向決定髮型

如果是面向搜尋引擎的,需要語義化。

如果開發spa元件。語義化就是你的元件名稱。看個人習慣。

不過用div替代button,我真的是沒見過。只見過自定義checkbox radio用span或者i去替代。

6樓:

我會避免使用任何帶預設樣式的標籤,這樣能避免很多麻煩…

頁面樣式的bug是最不好改的,用純淨的div套上引入的統一css樣式多香啊

7樓:Yi Liu

當大部分的前端專案都成為spa專案,這些專案中大部分都不會做伺服器端渲染,對乙個都不做伺服器端渲染的專案來說,都不能被瀏覽器正確收錄,何談語義化。

8樓:琴梨梨

我是建議使用button的,語義化標籤,最大的優勢就是自帶的介面表現如果css因為某些原因沒有載入出來或者和瀏覽器不相容,語義化標籤可以保證頁面的內容仍然可以顯示,而如果全部div,就會導致css載入失敗時整個頁面完全無法使用

一些裝置比如kindle的瀏覽器,並不支援全部css樣式,語義化標籤可以保證這些裝置上的使用體驗

另外語義化標籤可以在使用getElementsByTagName時,獲得乙個更小的array,有效節約記憶體和js執行時間

9樓:咚門

都在說樣式問題,沒人注意最簡單的 accessbioity 問題嗎:原生 button 可以用鍵盤 tab focus,然後回車觸發。div 需要寫 js 額外支援。

大家用電腦,不只是用滑鼠的。

10樓:不坑老師

因為button自帶了樣式,不同瀏覽器展示出來不一樣。我們要想使用自己的樣式,還得覆蓋掉它一些預設的樣式。

而div,我們讓他什麼樣式,就什麼樣式。

11樓:

因為他沒有 A11y 的要求,怎麼舒服怎麼來。

12樓:軟考真題 開發者

說實話我也喜歡!

原因是大家都喜歡做加法,不喜歡做減法。

button的預設樣式非常過時,各瀏覽器表現差異太大,相容性問題居多,要手動去掉的樣式很多,

導致很多情況得不償失。

另外語義化是啥?不語義化對誰有影響?seo 我倒是沒聽說過button seo優化

13樓:咕嚕捨小二

只要沒有SEO,多裝置擴充套件和團隊內部規定的需求,其實語義化並沒有那麼的重要。div沒有button那麼多的自帶樣式,控制起來更加容易。 人嘛,一般都喜歡學那種「一招鮮」的技術。

14樓:神馬翔

我現在和小夥伴合作乙個專案的時候,其實更強調類名的規範和語意,大家的類名寫的規範了,其實頁面的結構也就一目了然了,這個可比糾結是寫 div 還是 button 更有意義。

15樓:ifican

因為不知道如何覆蓋button,習慣自己偽造手寫,某antdesign 居然用的span。所以當看到這,就明白他們的技術團隊是什麼樣的能力。submit button型別自動觸發form onsubmit事件,disable屬性。

16樓:糖醋悶油瓶

什麼?!!!

除了div外還有其他的標籤?!!!!!!

我怎麼不知道?!!!

另外當你使用:

VUEREACT

甚至與jQuery的時候,你的SEO也不是很好做。

現在的SEO最好的辦法就是——砸錢,死命的砸錢。

17樓:undefined

因為button有user agent style,不處理好可能會出問題

但你要是說用哪個好,肯定用button比div好,但用button會帶來潛在的額外工作量,所以很多人就不用了。

18樓:「已登出」

看了很多答主覺得語義化標籤,符合w3c,友好seo等等。遵守規則是好事,但是規則也是用來打破的,人的惰性本來就會推動規則的變化。喜歡div一把梭也好,喜歡強制語義化也好,只要符合自己的產品需求有何不行?

w3c自己都會廢一些舊標籤。

19樓:一紙薄涼

我用div就是懶,沒其他的。不過大多數情況都是button透明,然後用div做樣式。只用button很多時候達不到要求(UI以及相容)

20樓:正怒月神

我不是前段,但是我發現很多前端美工,喜歡用div代替table。

他們說比較靈活。

我猜測,這也是不用button的原因吧。

21樓:

因為追求極致的前端設計師,希望自己寫的前端能在不同的前端顯示效果一致。

而button作為控制項,不同的前端、甚至不同的瀏覽器都會有不同的顯示方式、樣式,造成不可控性。

而div就簡單多了,基本都一樣的。

22樓:未登出

經歷過的來說說,有些框架裡button會觸發兩次表單提交,第一次提交的不知道是啥,瀏覽器就報no respons data,後來換成div就好了。

23樓:行者

說實話,為了方便。

div寫起來相容性的問題就少很多。

少說seo,當你的專案真的做到需要seo的時候,再考慮這些吧。

據我所知,80%的專案,連上線都上不了。

要不上線了就沒人管了,也沒運營啥的。

小公司燒不起錢。

當然,你想用button也行。

行者:零基礎帶你學前端

24樓:火星的弟弟是地球

我當然一般會使用div,因為任何容器div都是預設,不需要多少改動,只要記住公共類名庫打好直接用,如果有一些button預設樣式,改來改去很麻煩的。但是有時候特殊情況下,還是會用button(例如領導或者組長、公司規範文件的要求)

不要把眼光侷限在前端上,更需要去了解全部流程,這樣對以後開發幫助更大~

25樓:香君

來大神們,鍵盤給你,用button整乙個看看。我甚至不要求你在ff,safari,safari ios,edge,ie上有統一效果,你在chrome上給我整出來就算你成功了。

前端很多問題,尤其是涉及UI/UX的問題,是沒有普適的完美解的,只有不同程度的妥協。

所以自己不懂的東西不要張口就來,這習慣真不好。

26樓:女默資淚

因為我嫌煩。

所以想到什麼就用什麼了。

這才是無招勝有招。

雖然知道也有c3大佬,但我懶得去深造,比中等高一點,比頂尖兒低一點就行了。

眾所周知,html是標籤,css是玄學,會js才勉強算程式設計師。

可想而知,那些叫著寫頁面簡單的人,讓他們自己寫就一堆問題,不是適配不好就是html css不夠強壯,不夠強壯的意思就是換裝置換瀏覽器換乙個長寬就會各種變形。

呵呵,真的以為辣雞前端也是人人都會的麼。

不知天高地厚的後端水平還不一定有我好就敢叫前端簡單也是無知,也是這群人在用button用的一身勁。

吐槽完了。

27樓:yestodorrow

個人看1.button預設樣式已經不滿足大家日益提高的審美需求了(當然更跟不上UIUE的審美),所以有的效果樣式還要自己寫,有的預設樣式改起來雖然簡單,但在有的情況下卻相對多此一舉。

2.div代替button無可厚非,div擴充套件性好,role=「button」 ,就能將語義化提高的不要不要的,再加上type=「submit」語義化就沒得挑了,所以拿語義化來說事的,可以靠邊站了。

3.至於button在各大瀏覽器上的各種預設效果,我感覺完全不是用div代替button的理由。因為既然代替了,肯定能實現的哈,所以這個鍋也不要丟給前端菜鳥。

4.簡單易用,信手拈來,想用就用。

28樓:

雖然這樣的確實比較多,但是我還是堅持該用什麼就是什麼。

段落就用 ;

標題就用 ;

加粗就用;

至於有人說的樣式問題,不管你用什麼標籤,幾乎都要調整。

29樓:

用元件,這個才是團隊合作的基礎,每個人都想搞一套,還不亂了套。button表現力也很差勁,根本無法滿足當前時代的需求。當然,能語義化盡量語義化(說到最後還不是用元件,嘿嘿 )。

30樓:綠豆糕

切。。年輕。。這效果來試試?透明,圓角,漸變色邊框。誰來實現下?

31樓:若弱333

有UI框架用就用UI框架的,沒有的話用input,button,div看自己體會。

預設button有一點3d預設樣式,非常不扁平化,不如寫一類div樣式填充純色

32樓:咫尺天涯

為了更高的相容性

我個人而言更希望團隊用div+span模擬一切另外屏讀這東西我是更認為市場占有率不足

33樓:

button的預設樣式很醜,不同平台不同瀏覽器還長得不一樣,需要寫額外的樣式來統一。

說白了w3c整的那一套理論,瀏覽器廠商都不把它們放在眼裡,為啥要讓開發者來擦這個屁股?

34樓:yi-jy

你們看,那個前端連重置樣式都不會,既然還能說出那麼多冠冕堂皇的理由(外加一條: W3C那些人也是吃飽撐著,搞那麼多標籤出來幹嘛,直接乙個 div 不就好了嘛)

35樓:尋天淩寒

這個……我倒是第一次聽見這樣的疑問

雖然我個人比較喜歡按規矩來,但是也能理解他們為什麼用div我對這種代替倒是沒有排斥,畢竟其實很多產品還是屬於客戶定製,或者是內部使用,直接都禁掉爬蟲了而且確實得承認在一些情況下,div比button好用啊,工作是需要兼顧質量與效率的,如果某些設計確實按正常處理起來麻煩,有方便替代的我覺得還是可以接受的。

嗯這就是我的觀點了,我不太用但是我不排斥他人如此選擇。

前端學習中一直用框架是不是走偏了

dwenzhao 看國外的資料,前端程式設計中使用框架其實並不多,但會使用一些有特色的庫,別人寫好的庫用來比較方便就不需要重複開發了,節省時間精力。前端技術發展比較快,HTML5還在發展,所以無論框架還是庫,淘汰都比較快,拘泥某個框架或庫都往往會跟不上技術進步。而後端技術已經比較成熟了,發展速度比較...

為什麼國足一直用郜林?

精英牛頭人 好孩子不會成為好前鋒,怂貨也不會成為好前鋒。每個前鋒都會因為自己的10個進球被世界銘記,沒人會在乎他因此浪費了多少射門機會,但是,誰也不敢保證,這10個進球是在完成多少腳射門之後才會到來,或者完成了10個進球,又會有多少次射門再也不進,多少有潛質的射手倒在了通往偉大的謾罵和責難聲中,倒在...

為什麼有些人會對遊戲一直執迷不悟?一直充錢不斷,難道只是網癮那麼簡單?

劉蘇 社會認同感低,網路世界最起碼能用較小的金錢代價換來較高的精神收益。反正都是滿足精神需求,為什麼不選擇更廉價收益更高的網路呢。 Ooowee 大都是因為有錢啊,至少是在遊戲這一方面有錢 不一定是網癮,也許是不斷覺得空虛,又沒有什麼事情填充自己的生活,然後就用遊戲來麻木自己。感覺自己的乙個室友就是...