css中有哪些方式可以隐藏页面元素及区别


Posted in HTML / CSS onJune 16, 2022

前言

在平常的样式排版中,我们经常遇到将某个模块隐藏的场景

通过css隐藏元素的方法有很多种,它们看起来实现的效果是一致的

但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法

实现方式

通过css实现隐藏元素方法有如下:

  • display:none
  • visibility:hidden
  • opacity:0
  • 设置height、width模型属性为0
  • position:absolute
  • clip-path

display:none

设置元素的displaynone是最常用的隐藏元素的方法

.hide {
        display:none;
    }

将元素设置为display:none后,元素在页面上将彻底消失

元素本身占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘

消失后,自身绑定的事件不会触发,也不会有过渡效果

特点:元素不可见,不占据空间,无法响应点击事件

visibility:hidden

设置元素的visibilityhidden也是一种常用的隐藏元素的方法

从页面上仅仅是隐藏该元素,DOM结果均会存在,只是当时在一个不可见的状态,不会触发重排,但是会触发重绘

.hidden{
        visibility:hidden
     }

给人的效果是隐藏了,所以他自身的事件不会触发

特点:元素不可见,占据页面空间,无法响应点击事件

opacity:0

opacity属性表示元素的透明度,将元素的透明度设置为0后,在我们用户眼中,元素也是隐藏的

不会引发重排,一般情况下也会引发重绘

如果利用 animation 动画,对 opacity 做变化(animation会默认触发GPU加速),则只会触发 GPU 层面的 composite,不会触发重绘

.transparent {
        opacity:0;
    }

由于其仍然是存在于页面上的,所以他自身的的事件仍然是可以触发的,但被他遮挡的元素是不能触发其事件的

需要注意的是:其子元素不能设置opacity来达到显示的效果

特点:改变元素透明度,元素不可见,占据页面空间,可以响应点击事件

设置height、width属性为0

将元素的marginborderpaddingheightwidth等影响元素盒模型的属性设置成0,如果元素内有子元素或内容,还应该设置其overflow:hidden来隐藏其子元素

.hiddenBox {
        margin:0;     
        border:0;
        padding:0;
        height:0;
        width:0;
        overflow:hidden;
    }

特点:元素不可见,不占据页面空间,无法响应点击事件

position:absolute

将元素移出可视区域

.hide {
       position: absolute;
       top: -9999px;
       left: -9999px;
    }

特点:元素不可见,不影响页面布局

clip-path

通过裁剪的形式

.hide {
      clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);
    }

特点:元素不可见,占据页面空间,无法响应点击事件

小结

最常用的还是display:nonevisibility:hidden,其他的方式只能认为是奇招,它们的真正用途并不是用于隐藏元素,所以并不推荐使用它们

区别

关于display: nonevisibility: hiddenopacity: 0的区别,如下表所示:

  display: none visibility: hidden opacity: 0
页面中 不存在 存在 存在
重排 不会 不会
重绘 不一定
自身绑定事件 不触发 不触发 可触发
transition 不支持 支持 支持
子元素可复原 不能 不能
被遮挡的元素可触发事件 不能

到此这篇关于css中有哪些方式可以隐藏页面元素及区别的文章就介绍到这了,更多相关css隐藏页面元素内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
使用css3绘制出各种几何图形
Aug 17 HTML / CSS
使用before和:after伪类制作css3圆形按钮
Apr 08 HTML / CSS
利用css3实现的简单的鼠标悬停按钮
Nov 04 HTML / CSS
CSS3 flex布局之快速实现BorderLayout布局
Dec 03 HTML / CSS
前端隐藏出边界内容的实现方法
Apr 14 HTML / CSS
CSS3不透明度实例讲解
Apr 26 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
Apr 26 HTML / CSS
利用纯CSS3实现动态的自行车特效源码
Jan 20 HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
Dec 09 HTML / CSS
分享全球十款超强HTML5开发工具
May 14 HTML / CSS
HTML5的postMessage的使用手册
Dec 19 HTML / CSS
CSS完成视差滚动效果
Apr 27 HTML / CSS
CSS控制继承中的height能变为可继承吗
Jun 10 #HTML / CSS
css样式important规则的正确使用方式
Jun 10 #HTML / CSS
分享几个实用的CSS代码块
Jun 10 #HTML / CSS
html中两种获取标签内的值的方法
Jun 10 #HTML / CSS
html5+实现plus.io进行拍照和图片等获取
Jun 01 #HTML / CSS
基于CSS制作创意端午节专属加载特效
聊聊CSS粘性定位sticky案例解析
Jun 01 #HTML / CSS
You might like
我的论坛源代码(四)
2006/10/09 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
python 算法 排序实现快速排序
2012/06/05 Python
Python魔术方法详解
2015/02/14 Python
python中argparse模块用法实例详解
2015/06/03 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
python中hashlib模块用法示例
2017/10/30 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
Python range与enumerate函数区别解析
2020/02/28 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
自荐书格式
2013/12/01 职场文书
教师实习自我鉴定
2013/12/11 职场文书
《雾凇》教学反思
2014/02/17 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏