关于flex布局时,菜单隐藏 弹出会失效的问题

关于flex布局时,菜单隐藏 弹出会失效的问题

第一次总结一些小知识点,帮助自己加深理解。我被这个问题困扰过,所以总结了几种方式,下面开始。

  1. display: none; display: block;
    给我们要隐藏的元素加上display: none 元素消失,且不占空间,盒子模型也不存在。display:block 则可以让它再次显示出来,这里有一个小问题,就是它以及它的子级是以block块的样式显示出来,如果这个块你是用的flex布局的话,给他添加了display: block,则布局不出意料是会崩掉的。所以你如果让他再显示出来,就要换一条语句,换成display: flex,还变回原先的布局样式
    关于flex布局时,菜单隐藏 弹出会失效的问题这是我的一个例题,我直接粘过来了,红箭头处是先判断它的display是none,然后执行display: flex 让它显示出来,如果是显示的,则执行下面的else,让它变成none 。这个方法逻辑比较好理解,只是比较麻烦

2.关于hide() show() toggle()
hide()方法和display: none起到的作用是一样的(不可见,且不占空间),而show()的话和display: block起到的效果是一样的,会使你的flex布局崩掉,pass掉,所以我要说的toggle(),它可以让隐藏的变成显示,让显示的变为隐藏。
关于flex布局时,菜单隐藏 弹出会失效的问题关于flex布局时,菜单隐藏 弹出会失效的问题关于flex布局时,菜单隐藏 弹出会失效的问题关于flex布局时,菜单隐藏 弹出会失效的问题
定义了两个div块,并给第二个div块加了点击事件,当点击下面的“点击”时,上面的会消失,“点击‘块会上移,再点击一次,会回到初始状态。
所以我们可以用toggle()方法控制元素的隐藏出现,方便快捷,而且布局如初不会崩掉。

3.overflow: hidden + 定高
这是老师讲的一个思路,我还没有去实践,先加上:overflow:hidden; 就是如果你想让他隐藏,就将它的高定成你想要的高度,其余溢出的部分就会隐藏掉,当点击显示更多或某个按钮时,触发绑定的事件,会将这个块的高度改为新的值,就能显示出来更多,相应的 再点击可以再改回去。

好了,总结就先到这里。