实现隐藏页面元素
- 移动到屏幕外面,眼不见心不烦
a.margin
b.left + position
c.transform:translate
- 使用特性
a.display
b.visibility
c.opacity
d.overflow:hidden + 0宽高
e.transform:scale
f.hidden 属性
- 移出 DOM 树,年轻人不讲武德
- removeChild
实现代码
.demo1{ margin: -9999px 9999px 9999px -9999px; } .demo2{ display: none; } .demo3{ visibility: hidden; } .demo4{ opacity: 0; } .demo5{ width: 0;height: 0;border: none;outline: none;overflow: hidden; } .demo6{ left: -9999px;top: -9999px;position: absolute; } .demo7{ left: -9999px;top: -9999px;position: relative; } .demo8{ left: -9999px;top: -9999px;position: fixed; } .demo9{ transform: translate(-9999px, -9999px); } .demo10{ transform: scale(0,0) }
留作业
如何隐藏页面元素?(扩展题)
- 可以使用 css、html、js
- (扩展)vue、react、angular 的方法也可以
- 元素为一个
100*100
的红色矩形,里面包含一个50*50
黑色矩形
- 只要在页面上看不到就算隐藏
- (扩展)是否占据位置?如果占据位置的话,是否可以监听到事件?比如说 click 。
- 如果可以监听到事件,那么如何让他无法监听事件。
- 如果不可以监听到事件,那么如何让他监听到事件?如果无法实现请说明理由
- (扩展)是否存在于 DOM 树中?
- 比如说是否可以通过 children 获得?
- 比如说是否可以通过 querySelector 获得?
- 是否可以在开发者工具中看到?
- (扩展)是否触发回流(Layout)和重绘(Painting)?