CSS 隐藏元素的几种方式

147 阅读1分钟

前言

一问到css如何隐藏一个元素,那我们首先反应的就是display:none拉,其实是不全面的,那么还有哪些方法咧,我们来探讨一下

隐藏方法

主要有三大类

  • 完全隐藏:元素从渲染树中消失,不占据空间。
  • 视觉上的隐藏:屏幕中不可见,占据空间。
  • 语义上的隐藏:读屏软件不可读,但正常占据空间。

完全隐藏

  • display: none;会让元素完全从渲染树中消失,渲染的时候不占据任何空间, 不能点击
  • hidden(html5 新增的属性)
<div hidden></div>
<div class="hide"></div>

<style>
.hide{
    display: none;
}
</style>

视觉上隐藏

  • opacity: 0; 不会让元素从渲染树消失,渲染元素继续占据空间,只是内容不可见,可以点击
  • visibility: hidden; 不会让元素从渲染树消失,渲染元素继续占据空间,只是内容不可见
  • 绝对定位(移除屏幕)
  • margin(移出屏幕)
  • 宽高为0 + overflow:hidden
<div class="box">
    <div class="hide"></div>
</div>

<style>

/*opcity*/
.hide{
    opacity: 0;
}

/* visibility */
.hide{
    visibility: hidden;
}

/*绝对定位*/
.box{
    position: relative;
}
.hide{
    position: absolute;
    left: -9999px;
    top: -9999px;
}

/*margin*/
.hide{
    margin: -9999px;
}

/*宽高为0*/
.hide{
    width: 0;
    height: 0;
    overflow: hidden;
}


</style>

语义上隐藏

  • aria-hidden: true 使读屏软件不可读,但是元素仍然占据空间并且可见
<div aria-hidden="true"></div>

总结

以上有多种可以实现隐藏的效果,每一种都有一点点差别,我们可以根据需求来选择~