为什么有些前端一直用div当按钮,而不是用button?

如题所述

第1个回答  2022-07-29

w3c标准其实有时候挺坑的,为了这个标准,这不能用,那不能用。

还有就是各种标签眼花缭乱,反正多而砸,很多标签可以相互替代。在一定程度上对开发者不友好,增加学习成本。

虽然标准统一是好事,但是太标准也,有时也是一件麻烦事。

比如button,就是按钮,绑定事件的。可是呢现在看来样式太丑,你要美化它,还得去边框等等。还有就是button,你嵌套一张图进去,然后添加事件。先不说是否符合标准,一看就觉得别扭,不是button该干的事。

所以使用button在当下不方便,反正事件大多元素都可以加,而且比button好用。

所以用p模拟也是可以的

因为button按钮的样式一般不符合ui需求。需要重写或覆盖原有样式比较麻烦。

其实按正常来说是应该用button来写按钮,但实际开发过程中每个人的喜好不同,再加上在代码规范上也没有那么多的条条框框,所以就用p来写按钮也是ok的。

在很多人的开发习惯中,块级元素都可用p来实现,行内元素都可用span来实现,毕竟除了特定的标签之外通过css+js都可以实现同样的功能。

其实开发人员不用纠结是用那些标签去实现功能,包括在定义class名的时候也是千奇百怪,我们做不到让每个人都共用一套模式,对于自己而言不管是怎么写的,最后保证不报错并且兼容主流浏览器这就够了。

现在越来越多的前端框架层出不穷,来我公司面试的前端人员甚至只会通过框架去做项目,连最基本的html+css+js基础都不牢固,在实现一些网页特效上显得一头雾水,不是我说掌握更多的主流框架不好,而是在不断学习框架的前提下应该把基本功掌握牢固,当然这也是和当前的培训机构有关系,很多的培训机构都是为了让学员能够最快的去找到工作而忽略了基础知识。

当下前端也在不断地扩宽自己的行业领域,除了vue、小程序之外,有的还要去了解mysql以及php等等,这也是为了在面试中能够找到一个更好的工作。

综上所述按钮用不用button都无伤大雅,主要的是功能的实现以及浏览器的兼容性。

以上是我的一些看法,感谢大家的观看。

Button适合在表单内自动触发比如type="submit",有时候前端需要更多的控制,所以可以使用p,span,a都行。

不过我们现在还是尽量用button表达按钮,type设置为button,仍然用js监听触发或者有的地方直接用onclick。

因为发展到了H5的地步,button的功能完全能用p覆盖了。

1.现在都用自定义样式,button的样式需要写css覆盖。

2.button如果在form元素下的的话,不加type="button",会直接提交表单,这样每次都加很麻烦。

样式容易控制,行为容易控制。直接用原生button,可能会出现想不到的样式行为问题[机智]。

主要因为两点:

其实从语义化思想来看,按钮不该使用,而应该使用 或 。p 虽然具备 onclick 事件响应,但本意是 html 用来布局的;而 和 本身就是 html 按钮。试一下:在一个纯 html 文档(无任何css和js内容和引用)写上 p 和 button 标签,浏览器都会有默认的渲染效果和交互方式。




主要还是 方便。

button是自带 样式 事件 的。

比如默认的巨 按钮和在表单中点击会submit 提交 表单。

而p就是一个块元素,干干净净不用重写,想怎么定义就怎么定义。

对比之下,有什么理由不用p呢?[奸笑]




个人感觉最重要的p可以直接自定义样式,button要消除原有样式很烦。




这个问题不应该问前端开发 应该问一下那些制度W3C为什么这么坑 这么反人类 但凡他们规范制定合理一点好用一点 也不至于前端用p来代替 我们也想好好用button啊