在前端交互过程中,经常会遇到div层级的显示与隐藏--场景包括弹窗,弹窗嵌套部分隐藏部分显示等等,而处理方法不外乎js和css

js:dom.show()、dom.hide()

css:通过js添加相关类名(.show{display:block}/.hide{display:none})

然而这两种方法都有局限性

js:不可拓展,如果要在显示的同时添加部分特效或者父级显示同时子级添加特效

css:类名的的不可拓展,添加额外特效css中可以直接添加,但是这个类名就不符合内容描述了,show和hide

所以综上,可以对父级添加类名而对应控制子级,例:

.box h1{display: none;}
.box.active h1{display: block;}
.box.active h2{display: none;}
<div class="box">
    <h1>我是h1</h1>
    <h2>我是h2</h2>
</div>
<a href="#">switch</a>

以往的控制box下h1和h2显示与隐藏的方法,就可以通过给父级box添加类名就行

$('.box').addClass('active') or $('.box').removeClass('active');

拓展的特效等也可以在active下关联,这就节省了阅读和编辑的工作量,并且拓展性更强