ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

v-show,v-if,display:none,visibility:hidden 的区别和本质

2022-02-09 11:02:01  阅读:248  来源: 互联网

标签:none 浏览器 渲染 dom show visibility 子孙后代 display


渲染树=dom树+cssom树

浏览器真正渲染在浏览器屏幕是根据渲染树。

display:none;

节点还在dom树上,但是不会进入渲染树。所以它不会显示,因为浏览器不会渲染它。
同时它的子孙后代都不会显示,即使子孙后代改变display样式也没用,因为渲染树里面压根没有它们。
它们也不占据物理空间。

visibility:hidden;

节点在渲染树上,浏览器隐藏它了,你看不见它,但是它依然占据物理空间,同时如果是有序列别它依然占据一个有序的数字。
它的子孙后代也继承 visibility:hidden;这个样式,都隐藏了。但是,如果你改变子孙的样式 visibility:visible; 就能看见子孙了。

v-show 的实现原理

就是自动加上 display:none;这个样式

v-if

节点不在dom树上,自然也就不在渲染树上了。
子孙后代也不在dom树上。
所以不会显示节点和它的子孙后代。
它们也不占据物理空间。

标签:none,浏览器,渲染,dom,show,visibility,子孙后代,display
来源: https://www.cnblogs.com/phoenixzhang/p/15874150.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有