回复内容:
效果上没有什么不同,但是只要是写在 CSS 里面的都只是纯展现,可以不遵循任何道理(比如 display,狗都可以伪装成猴的样子),而 HTML 则可能带有语义。
hidden 表示该元素是不相关的、不需要的,这个含义是主要内容,“隐藏”的效果只是附带。也许看上去跟 display: none 没有任何区别,但是在我们不知道的地方,比如屏幕阅读器或其他一切依赖语义的地方,可能就有它的价值体现。
更多信息可参考:hidden - HTML (HyperText Markup Language)
不管什么情况,你知道一个原则就 OK 了:
HTML 是内容展示带有语义,CSS 是界面样式相关。
那么 hidden 这个属性,就表示与浏览者不相关、不重要,浏览器在解析的时候,既然不相关就直接隐藏掉了。如果你有些东西与用户不相关,比如 提交信息的 input 等,就可以用 hidden。
display none 就是从界面、视觉上的隐藏。如果你需要临时隐藏一些东西后面会再切换出来,比如 下拉菜单 等,就可以用 display none。因为它不是跟用户不相关,只是目前还不能展示出来。
没区别,几乎一模一样。
html5这么多知识点需要学习和掌握,建议不要在这样无关紧要的地方抠细节,没有太大意义。