返回

Opacity 你说清了嘛?

前端

我是怎么错误的

在字节面试的时候,我被问了一个问题,如何隐藏父元素,但是把子元素显示出来,我当时回答的是 opacity。面试官小姐姐说 opacity 是不可以的。我感觉面试官小姐姐应该是在扯。但当我认真学习之后,我才发现是我错了。

opacity 属性

opacity 属性是 CSS 中的一个属性,用于设置元素的透明度。透明度是指元素允许多少光线通过。透明度值的范围从 0 到 1,其中 0 表示完全透明,1 表示完全不透明。

visibility 属性

visibility 属性是 CSS 中的一个属性,用于设置元素的可见性。可见性是指元素是否在页面上可见。可见性的值可以是 visible 或 hidden,其中 visible 表示元素可见,hidden 表示元素不可见。

所以简单来说:

  • opacity: 0 表示元素完全透明,但仍然在页面上可见。
  • visibility: hidden 表示元素不可见,并且在页面上不占据任何空间。

案例演示:

#parent {
  background-color: red;
  width: 100px;
  height: 100px;
}

#child {
  background-color: blue;
  width: 50px;
  height: 50px;
}

如果我们给父元素添加 opacity: 0; 样式,那么父元素就会变得完全透明,但是子元素仍然可见。

#parent {
  background-color: red;
  width: 100px;
  height: 100px;
  opacity: 0;
}

#child {
  background-color: blue;
  width: 50px;
  height: 50px;
}

如果我们给父元素添加 visibility: hidden; 样式,那么父元素和子元素都会变得不可见。

#parent {
  background-color: red;
  width: 100px;
  height: 100px;
  visibility: hidden;
}

#child {
  background-color: blue;
  width: 50px;
  height: 50px;
}

总结

因此,opacity 属性不能用于隐藏父元素,但是 visibility 属性可以。如果我们要隐藏父元素,但是把子元素显示出来,那么我们应该使用 visibility 属性。