`opacity: 0`、`visibility: hidden`、`display: none` 有啥区别, 主要使用场景是啥子?

opacity: 0visibility: hiddendisplay: none 都可以使元素不可见,但它们之间有一些区别。

  • opacity: 0:设置元素透明度为0,元素依然占据原来的空间,并且可以接收到鼠标事件。通常用于实现淡出效果。
  • visibility: hidden:元素不可见,但是仍然占据原来的空间,并且可以接收到鼠标事件。常用于实现菜单的展开和收起。
  • display: none:元素不可见,且不占据空间,也不接收鼠标事件。通常用于实现元素的隐藏和显示。

因为这三种属性的区别,它们在使用场景上也有所不同:

  • opacity: 0:适用于需要实现淡出效果的场景,比如弹出层的显示和隐藏。
  • visibility: hidden:适用于需要占据原来空间的元素,但不需要显示的场景,比如菜单的展开和收起。
  • display: none:适用于需要完全隐藏元素的场景,比如实现一个开关,点击开关后可以隐藏或者显示某个元素。