面试题:使用 css 隐藏页面元素

image

咱们先来讲一下限制条件css

  1. 能够使用 css、html、js
  2. 元素为一个 100*100 的红色矩形,里面包含一个 50*50 黑色矩形
  3. 只要在页面上看不到就算隐藏

测试地址:https://www.lilnong.top/static/html/hidden-dom.htmlhtml

实现隐藏页面元素

  1. 移动到屏幕外面,眼不见心不烦vue

    1. margin
    2. left + position
    3. transform:translate
  2. 使用特性react

    1. display
    2. visibility
    3. opacity
    4. overflow:hidden + 0宽高
    5. transform:scale
    6. hidden 属性
  3. 移出 DOM 树,年轻人不讲武德dom

    1. 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)
}

留做业

做业就留给大家啦,反正我此次不写(下次是何时我也不知道)。工具

如何隐藏页面元素?(扩展题)

  1. 能够使用 css、html、js测试

    1. (扩展)vue、react、angular 的方法也能够
  2. 元素为一个 100*100 的红色矩形,里面包含一个 50*50 黑色矩形
  3. 只要在页面上看不到就算隐藏
  4. (扩展)是否占据位置?若是占据位置的话,是否能够监听到事件?好比说 click 。spa

    1. 若是能够监听到事件,那么如何让他没法监听事件。
    2. 若是不能够监听到事件,那么如何让他监听到事件?若是没法实现请说明理由
  5. (扩展)是否存在于 DOM 树中?code

    1. 好比说是否能够经过 children 得到?
    2. 好比说是否能够经过 querySelector 得到?
    3. 是否能够在开发者工具中看到?
  6. (扩展)是否触发回流(Layout)和重绘(Painting)?
相关文章
相关标签/搜索