使用css让元素不可见的方法有很多种,裁剪、定位到屏幕外边、透明度变换等都是可以的。但是最常用两种方式就是设置元素样式为display: none或者visibility: hidden。很多公司的面试官也常常会问面试者这两者之间的区别。

display与元素的隐藏
如果给一个元素设置了display: none,那么该元素以及它的所有后代元素都会隐藏,它是前端开发人员使用频率最高的一种隐藏方式。隐藏后的元素无法点击,无法使用屏幕阅读器等辅助设备访问,占据的空间消失。

<body><div><strong>给元素设置display:none样式</strong><p>A元素</p><p style='display:none;'>B元素</p><p>C元素</p></div>
</body>

效果图:

visibility与元素的隐藏
给元素设置visibility: hidden也可以隐藏这个元素,但是隐藏元素仍需占用与未隐藏时一样的空间,也就是说虽然元素不可见了,但是仍然会影响页面布局。

<body><div><strong>给元素设置visibility:hidden样式</strong><p>A元素</p><p style='visibility:hidden;'>B元素</p><p>C元素</p></div>
</body>

效果图:

display: none与visibility: hidden的区别
很多前端的同学认为visibility: hidden和display: none的区别仅仅在于display: none隐藏后的元素不占据任何空间,而visibility: hidden隐藏后的元素空间依旧保留 ,实际上没那么简单,visibility是一个非常有故事性的属性

1、visibility具有继承性,给父元素设置visibility:hidden;子元素也会继承这个属性。但是如果重新给子元素设置visibility: visible,则子元素又会显示出来。这个和display: none有着质的区别

2、visibility: hidden不会影响计数器的计数,如图所示,visibility: hidden虽然让一个元素不见了,但是其计数器仍在运行。这和display: none完全不一样

    <body><div><strong>给元素设置visibility:hidden样式</strong><ol><li>元素1</li><li style="visibility:hidden;">元素2</li><li>元素3</li><li>元素4</li></ol></div><div><strong>给元素设置display:none样式</strong><ol><li>元素1</li><li style="display:none;">元素2</li><li>元素3</li><li>元素4</li></ol></div></body>


3、CSS3的transition支持visibility属性,但是并不支持display,由于transition可以延迟执行,因此可以配合visibility使用纯css实现hover延时显示效果。提高用户体验。

display:none和visibility:hidden两者的区别相关推荐

  1. [css] 说说display:none和visibility:hidden的区别

    [css] 说说display:none和visibility:hidden的区别 display:none dom对象不渲染. visibility:hidden 隐藏但是dom对象渲染. 个人简介 ...

  2. display:none和visibility:hidden的区别

    在使用CSS隐藏一些元素时,我们经常用到 display:none 和 visibility:hidden.两者差别如下: 1. 是否占据空间 display:none,该元素不占据任何空间,在文档渲 ...

  3. _blank 和 _self的区别以及display:none和visibility:hidden的区别

    _blank 和 _self的区别 target=_blank会在当前窗口之外再打开一个新窗口来显示新的页面 target=_self在当前窗口打开新页 面 display:none和visibili ...

  4. CSS隐藏属性display:none;visibility:hidden;overflow:hidden

    前端CSS元素隐藏的知识(display:none:visibility:hidden:overflow:hidden:opacity: 0) 欢迎来到CSS隐藏属性界面 你好! 可以仔细阅读这篇文章 ...

  5. display:none和visibility:hidden的qubie

    隐藏元素 - display:none或visibility:hidden 隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为" ...

  6. display:none和visibility:hidden和透明度的区别

    **当想实现一个区域或者内容的消失(隐藏)**,我们有多种代码可以实现.但是根据要求和用户体验,应该选择最合适的方法实现.代码中最常用的代码包括:display:none; visibility:hi ...

  7. display: none;、visibility: hidden、opacity=0区别总结

    display: none; 1.浏览器不会生成属性为display: none;的元素.  2.display: none;不占据空间(毕竟都不熏染啦),所以动态改变此属性时会引起重排.  3.di ...

  8. display:none;与visibility:hidden;的区别

    display:none;不会占用任何空间 visibility:hidden;会占用隐藏前的空间大小 转载于:https://www.cnblogs.com/yaser/p/4414825.html

  9. display:none和visible:hidden两者的区别

    display:none和visible:hidden都能把网页上某个元素隐藏起来,但两者有区别: display:none ---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就 ...

最新文章

  1. 人工智能大牛的新年启示:未来要看无监督学习、自然语言处理
  2. 计算机常用端口一览表
  3. java静态变量,静态代码块,普通代码块,构造函数加载顺序
  4. 多线程,并发,异步,死锁
  5. 【Flink】SqlValidatorException: Column xxx not found in any table
  6. mysql修改内置函数,Mysql常见内置函数
  7. python类详解_python面向对象编程:python类和实例讲解
  8. 谈谈VIP漂移那点破事
  9. JAVA实现简单计算器布局与功能(附完整源码)
  10. 【Android系统源码修改】去掉开机时显示的正在优化应用对话框
  11. SPSS详细图文教程:手把手教你配对样本t检验,
  12. Turbo码,接近完美的编码
  13. 系统分析与设计的三个发展阶段
  14. acs代表什么_思科的ACS是什么?
  15. java wed 1
  16. access中本年度的四月一日_《四月一日灵异事件簿》一部打工人的励志故事,哈哈哈~(诙谐,温馨,人性,可爱,悬疑,友情,羁绊)...
  17. 《都挺好》苏大强,锦鲤杨超越,表情包为何会刷屏?
  18. 转帖(http://hi.baidu.com/johnehuang/blog/item/e1e96782a4b04e97f703a6dc.html)
  19. MySQL数据库操作练习题-各种操作掌握MySQL查询操作
  20. 2018年(第17届)中国软件业务收入前百家企业名单

热门文章

  1. java ews_Java---使用EWS 写个ExchangeMailUtil
  2. python编程软件排行榜_PYPL 9月编程语言排行榜发布 Python一枝独秀
  3. 认证服务器协议,基于口令的客户端/服务器认证协议
  4. 可变悬挂调节软硬_【5040地推合作品牌】荷兰高性能减震器及悬挂系统品牌—KONI...
  5. python-上传下载文件
  6. Linux C学习---递归函数
  7. React开发(265):ant design InputNumber
  8. [react] React.createClass和extends Component的区别有哪些?
  9. 重学java基础第十四课:java特性和优势
  10. 前端学习(3296):显示和隐藏