angular cli 切换 css_angularjs中ng-show与css中display:none的优先级问题

本文介绍了在使用Angular.js的ng-show指令时遇到的一个问题,即ng-show无法覆盖CSS中display:none样式,导致元素无法显示。通过F12调试工具发现,CSS样式设置的优先级高于ng-show。解决这个问题后,强调了理解JavaScript和Angular.js中控制样式的优先级对于前端开发的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用过angular.js的童鞋都知道,ng-show指令在其条件符合时可以使元素显示,条件不符合时使元素隐藏。

我却在前两天写代码的时候发现一个有意思的现象:

angular.js中的ng-show 并不能像jQuery中控制CSS样式那样,使样式设置为display:none的元素显示。这个小发现的过程如下:

先看一下当时要实现的效果(很简单,就是一个tab切换):

8d3290f1eb716c5fbe6e4e58a7d229d0.png

957386afbb591849193bd61944198a3f.png

3af23022813aaaed767470984a020c4f.png

1、简单的布局完成后:

cafb56aaa4a04327223290899a3ceb62.png

2、在写博客内容的样式时,习惯性地给每一个tab的内容div添加了display:none样式:

ede07948dab2496aa0b962281757593f.png

3、然而,在页面中就看不到任何一个tab的内容页:

764643f5eb34889dff9dd5f86cddae9c.png

4、代码写完之后没有出现想要的效果,不要着急,不要惊慌。F12 打开调试面板,首先并没有报错,那就找对应的样式,发现是CSS中的display:none 还在起作用:

1776d617b7c6dbe7b34c8ef97d6909b9.png

5、既然 display:none 还在起作用,就把它去掉:

b46a6e5e6cf09ff21864ac6a9353d003.png

6、效果出来了:

cbc0a97bc31429c52d15b7f022354b7f.png

好了,在细小的知识点也会在某个时候引发难以发现的大问题。这就是一般发现并解决问题的过程,最终的结论是:js中控制CSS的优先级会高于在CSS代码中设置该样式;但angular.js中的ng-show条件成立时,让元素显示的优先级并不会覆盖CSS中display:none

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值