用div + css 实现表单与用 form 实现表单,两者各有哪些优劣势,各自适合哪些场景呢?
form
表单在写好比如 action
method
的时候 内部表单项包含 name
属性 有submit的按钮 即使在禁用了javascript时,仍然可以与服务器做简单的数据交互。
个人认为是HTML语义化吧,因为从外观看来,div+css实现的表单和form元素看不出区别。
但是语义化是HTML的发展方向(看看HTML5出现的新标签就知道),而且也是搜索引擎友好的
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
5 回答2.2k 阅读
4 回答4.6k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
5 回答800 阅读
form 实现意味着可以使用原生表单的交互,比如 form 的同步提交,比如 form 里的 input 的 pattern 和 required。
如果不用原生交互的话,两者似乎没什么差别。现在一般用 div+css 实现,因为都是定制化的表单。而且现在一般是异步提交,意味着不需要用 form 的同步提交。另外,国外网站似乎更喜欢用 form 实现。
当然如果不用 form 的话,还要注意 HTML 的语义化,即让人能理解这个 div+css 是表单。