使一个dom不可见的几种方法——隐藏元素

本文探讨了CSS中隐藏元素的各种方法,包括display: none, visibility: hidden, opacity: 0等,并详细解析了它们在隐藏效果、空间占用及用户交互上的区别。真实隐藏如display: none会影响布局,而视觉隐藏如visibility: hidden则仍占据空间。通过理解这些差异,开发者可以更合理地选择隐藏元素的方式。" 108050412,9938177,深入理解JVM:类加载与内存分配详解,"['Java', 'jvm', '编程语言']
摘要由CSDN通过智能技术生成

隐藏元素的方法有很多,这里我们就来整理具体有哪几种方法,它们谁是真正的隐藏,谁只是视觉不可见,以及效果上都有什么区别,在开发过程中大家斟酌使用。

隐藏元素的方法

  1. display: none
  2. visibility: hidden
  3. opacity: 0
  4. <div hidden></div>
  5. position: absolute; top: -9999px; left: -9999px;
  6. clip-path: polygon(0 0, 0 0, 0 0, 0 0)
  7. width: 0; height: 0; overflow: hidden;
  8. transform: translate(-9999px, -9999px) || transform: scale(0)

区别

  1. display
.hide-dispaly{
	display: none
}

特点:

  • 真正意义上的隐藏,元素不会占据任何空间
  • 用户无法与其进行直接的交互
  • 通过DOM依然可以获取到该元素
  • 子孙元素即使重新设置dispaly: block也无法显示
  • transition动画会失效
  1. visibility
.hide-visibility{
	visibility: hidden;
}

特点

  • 隐藏元素依然占据空间,影响其他元素的布局
  • 不会影响任何用户的交互
  • 通过DOM依然可以获取该元素,无法响应DOM事件
  • 其子孙元素可以通过重新设置visibility: visibile来显示
  1. opacity
.hide-opacity{
	opacity: 0;
}

特点

  • 只是视觉上隐藏,隐藏的元素依然占据着空间,影响其他元素的布局
  • 依然能够响应用户的交互
  • 通过DOM依然可以获取该元素,可以响应DOM事件
  • 其子孙元素即使重新设置了opacity: 1也无法显示
  1. hidden
    HEML5新增的hidden属性,可以直接隐藏元素。效果与特点与display一致
<div hidden>
  我是被隐藏的元素
</div>
  1. position
.hide-position{
	position: absolute
  top: -9999px
  left: -9999px
}

特点:

  • 视觉上隐藏,实际显示在屏幕的可视区之外,不会占据空间,不影响其他元素布局
  • 用户无法与其交互
  • 通过dom可以获得该元素
  • 其子孙元素无法通过重新设置对应的属性来显示
  1. clip-path
    通过裁剪元素来实现隐藏
.hide-clip {
  clip-path: polygon(0 0, 0 0, 0 0, 0 0);
}

特点:

  • 视觉隐藏,隐藏元素占据空间,影响其他元素的布局
  • 用户无法与其进行交互
  • 通过dom可以获得该元素
  • 其子孙元素无法重新设置对应属性来显示
  1. overflow
.hide-overflow {
  width: 0;
  height: 0;
  overflow: hidden;
}

特点:

  • 视觉隐藏,不占据空间,不影响其他元素布局
  • 用户无法与其交互
  • 通过DOM可获得该元素
  • 子孙元素无法重新设置该属性来显示
  1. transfrom
.hide-transform{
	transform: translate(-9999px, -9999px)
}
// 或者
.hide-transform{
	transform: scale(0)
}

特点:

  • 视觉隐藏,占据空间,影响其他元素布局
  • 用户无法与其交互
  • 通过dom可以获得该元素
  • 其子孙元素无法重新设置该属性来显示

真实隐藏

我理解的真实隐藏只有

  • display: nono
  • <div hidden></div>

视觉隐藏

其他都是视觉隐藏

  • visibility: hidden
  • opacity: 0
  • position
  • transform
  • clip-path
  • overflow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值