1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 在网页应用中,显示/隐藏某个元素或组件是一件经常要做的事情,尤其是在目前比较流行的单页应用中。 总体而言,有 3 种方式来实现 CSS 的 display: none; CSS 的 visibility: hidden; HTML5 的 hidden 属性(boolean) 它们之间有相同点和不同点。相同点很简单,都能使添加了这个属性的元素及其子元素『不被看见』。这篇文章着重来比较一下它们之间的差异。 display: none; 添加了这个属性的元素: 不占据页面空间(不影响布局),因为这个属性不是让这个元素『不可见』,而是压根没有把它渲染出来 依旧可以通过 DOM API 来获取到 比如把它变成 display: block; visibility: hidden; 添加了这个属性的元素: 仍占据页面空间(影响布局),仅仅让元素变“透明”,不画出来罢了 依旧可以通过 DOM API 来获取到 比如把它变成 visibility: visible; HTML5 hidden E.g. <p hidden>hello, world!</p> 添加了这个属性的元素: 不占据页面空间(不影响布局),未被渲染出来 什么情况下使用? 当这个元素和当前页面状态不相关时 这个元素仅仅用来被页面中的其它元素重复使用,提供某种信息,而非直接展示给用户使用时 总之,当此元素不应该被用户获取到时使用。(因此,不能把此元素链接给某个 href 上) 对比 display: none; 的优势在于,如果使用 display: none;,想要恢复显示时,该恢复成哪个值呢?block 吗?flex 吗?不好确定。但是使用 HTML5 的 hidden 属性就不存在这个问题了。 在易用性(Accessibility)方面,标注了 hidden 的元素不会被读屏器读到。 由于这个属性其实是用 CSS 实现的,所以,如果你给带有 HTML hidden 属性的元素,添加了 CSS display 属性,这个 display 属性会覆盖掉 HTML hidden 属性。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2019-05-29 python 中字符串转 二进制 /ASCII码
2019-05-29 websocket协议解决消息发送问题 Could not decode a text frame as UTF-8.