angularjs中ng-show与css中display:none的优先级问题

angular中ng-show 与 css的display:none

用过angular.js的童鞋都知道,ng-show指令在其条件符合时可以使元素显示,条件不符合时使元素隐藏。
我却在前两天写代码的时候发现一个有意思的现象:
angular.js中的ng-show 并不能像jQuery中控制CSS样式那样,使样式设置为display:none的元素显示。这个小发现的过程如下:
先看一下当时要实现的效果(很简单,就是一个tab切换):
这里写图片描述
这里写图片描述

这里写图片描述

1、简单的布局完成后:
这里写图片描述
2、在写博客内容的样式时,习惯性地给每一个tab的内容div添加了display:none样式:
这里写图片描述
3、然而,在页面中就看不到任何一个tab的内容页:
这里写图片描述
4、代码写完之后没有出现想要的效果,不要着急,不要惊慌。F12 打开调试面板,首先并没有报错,那就找对应的样式,发现是CSS中的display:none 还在起作用:
这里写图片描述
5、既然 display:none 还在起作用,就把它去掉:
这里写图片描述
6、效果出来了:
这里写图片描述

好了,在细小的知识点也会在某个时候引发难以发现的大问题。这就是一般发现并解决问题的过程,最终的结论是:js中控制CSS的优先级会高于在CSS代码中设置该样式;但angular.js中的ng-show条件成立时,让元素显示的优先级并不会覆盖CSS中display:none 。
希望这个小细节对您有所帮助。
个人微信公众号:小禾子的魔法盒子,欢迎关注!
这里写图片描述

猜你喜欢

转载自blog.csdn.net/JaneLittle/article/details/79575055