(前端)面试300问之(4)页面元素暗藏的10种形式

一 问题

1 如何将页面上的元素进行暗藏?

2 问题剖析

1)所谓暗藏,就是让用户不可见该页面元素即可。
2)没有限度任何的形式,所以咱们需发散思维、从各个角度对该问题提出不同的解法。
3)咱们能够从几何空间、视觉(色彩)、visibility、display,大抵可分为3大类、10小类,对应的思维导图如下:

二 具体解法

0 前言

1)以下所有解法的 CSS款式 + DOM构造 均如下:
.main {    width: 500px;    background-color: lightskyblue;}<div class="main">    <div class="visible">失常显示的元素,by 码农三少</div>    <div class="hidden">被暗藏的元素,by 码农三少</div></div>

1 几何空间

1)子的width、height同时设为0,父亲设overflow: hidden
.main {    // 很外围、很要害!!    overflow: hidden;}.hidden {    // 其实这里只有将 height:0 即可    width: 0;    height: 0;}

成果如下:

2)子transform: scale(0)
.hidden {    transform: scale(0);}

成果如下:

3)子scale:0 [存在IE兼容性问题]
.hidden {    clip-path: circle(0); }

成果如下:

2 地位挪动

1)子定位,如 position: fixed、absolute 等
.hidden {    position: fixed;    top: -10000px;}或.main {    position: relative;}.hidden {    position: absolute;    top: -10000px;}

成果如下(2种形式成果均统一~):

2)子z-index设为正数[需联合position应用,只是“在父区域不可见”!]
.hidden {    position: fixed;    z-index: -100000;}

成果如下:

3 视觉(色调)

1)设为通明色 color: transparent
.hidden {    color: transparent }

成果如下:

2)透明度opacity: 0
.hidden {    opacity: 0;}

成果如下:

3)color设为父容器的背景色
.hidden {    // 跟 父的背景色 统一    color: lightskyblue;}

成果如下:

4 罕用的CSS暗藏形式

1)visibility设为hidden
.hidden {    visibility: hidden;}

成果如下:

2)display设为none
.hidden {    display: none;}

成果如下: