(前端)面试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;
}
成果如下:
发表回复