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仿造window7的开始菜单
Jun 17 HTML / CSS
纯CSS3实现手风琴风格菜单具体步骤
May 06 HTML / CSS
CSS3媒体查询(Media Queries)介绍
Sep 12 HTML / CSS
html5+css3气泡组件的实现
Nov 21 HTML / CSS
详解CSS3中border-image的使用
Jul 18 HTML / CSS
html5利用canvas绘画二级树形结构图的示例
Sep 27 HTML / CSS
整理HTML5中表单的常用属性及新属性
Feb 19 HTML / CSS
HTML5新增加的功能详解
Sep 05 HTML / CSS
html5是什么_动力节点Java学院整理
Jul 07 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
Oct 29 HTML / CSS
通过feDisplacementMap和feImage实现水波特效
Apr 24 HTML / CSS
纯CSS打字动画的实现示例
Aug 05 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
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
js 字符串转换成数字的三种方法
2013/03/23 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
跟老齐学Python之Python文档
2014/10/10 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
python 中xpath爬虫实例详解
2019/08/26 Python
python与idea的集成的实现
2020/11/20 Python
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
运动会解说词200字
2014/02/06 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
社会发展项目建议书
2014/08/25 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
自查自纠整改报告
2014/11/06 职场文书
幼师求职自荐信
2015/03/26 职场文书
车间质检员岗位职责
2015/04/08 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
go语言求任意类型切片的长度操作
2021/04/26 Golang