button
是平时使用最广泛的一个 HTML 元素了,只要有点击交互的地方都推荐使用这个。但是,仍然有大部分网站使用的还是div
,比如某博,所到之处几乎都是 div
。
既然要这么麻烦,为何不直接用 button
呢?
六、为何不使用button呢
以下是我个人的一些猜想
button
在各个浏览器的样式表现不一致button
不能包含某些标签或者会导致无效,比如a
标签- 历史原因,以前就用
div
实现了,不想折腾 - 不知道
button
有这么多好用的特性 - 不在乎这些,能实现就行,我的
js
非常强 - 实际项目中不需要键盘访问或者屏幕阅读
- 某些第三方组件库的封装
七、总结和说明
以上从样式和功能上介绍了原生 button
元素的几个特性,同时还猜想了一些没有使用button
的原因,下面总结一下:
button
支持禁用特性,通过:disabled
伪类自定义禁用样式button
默认盒子模型是border-box
button
内默认水平垂直居中button
支持键盘访问,在聚焦状态下可以通过enter
或者space
触发点击事件button
键盘聚焦的outline
可以通过outline-color
修改颜色,也可以通过:focus-visible
自定义键盘聚焦样式button
在表单中支持enter
提交表单button
在表单中有重置功能button
默认支持屏幕阅读
虽然有这么多好用的特性,但是实际开发中还是有很多原因没有使用。不过不管以前如何如何,从现在开始,只要碰到”按钮”,第一优先选择button
就可以了,不用做过多修饰,就能在不知不觉中提升用户体验。