css面试题:css隐藏元素的方式

css隐藏元素的方式

visiblity:hidden

#father {
  visibility: hidden;
  width: 300px;
  height: 300px;
  background-color: pink;
}

#son {
  /* visibility:visible; */ /* 子元素设置该属性后可以改变自身显示状态*/
  width: 100px;
  height: 100px;
  background-color: green;
}

特点:父元素设置该属性时,子元素同样会生效,但可以通过visibility:visible;修改子元素的显示效果;

display:none

#father {
  display: none;
  width: 300px;
  height: 300px;
  background-color: pink;
}

#son {
  width: 100px;
  height: 100px;
  background-color: green;
}

特点:作用是从dom中移除节点,所以子元素也会被移除掉,

opacity:0

#father {
  opacity: 0;
  width: 300px;
  height: 300px;
  background-color: pink;
}

#son {
  opacity: 1;
  width: 100px;
  height: 100px;
  background-color: green;
}

该方法通过改变元素透明度来实现隐藏,但需要注意父元素设置为opacity:0后,子元素会继承父元素该属性的效果,即便子元素设置opacity:1;也无法显示自身。

hidden属性隐藏元素

<div hidden> div>

添加 hidden 属性并不会从文档流中移除该元素,而是将其隐藏起来。因此,被隐藏的元素仍然会占据空间,并且可能会影响布局

position:absolute

#father {
  position: relative;
  width: 300px;
  height: 300px;
  background-color: #fab;
}

#son {
  position: absolute;
  left: -200%;
  width: 100px;
  height: 100px;
  background-color: black;
}

transform: scale(0);

#ele{
	transform:scale(0);
	// ...
}

max-height:0

#father {
  width: 300px;
  height: 300px;
  background-color: pink;
}

#son {
  width: 100px;
  height: 100px;
  max-height:0;
  background-color: green;
}

你可能感兴趣的:(css,前端)