温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Angular中ngClass和ngStyle如何使用

发布时间:2022-12-08 09:41:52 来源:亿速云 阅读:121 作者:iii 栏目:web开发

这篇文章主要讲解了“Angular中ngClass和ngStyle如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Angular中ngClass和ngStyle如何使用”吧!

项目场景:

前端开发中经常会遇到这样一种情况:不同的页面会共用同一段代码,同时我们要根据页面的具体信息或者某种操作(例如点击某个按钮)去决定是否展示这段代码或使页面样式做出一定的改变,这时就用到我们angular中的样式绑定!

问题描述

例如:网站的两个页面需要用到同样一段代码,重复写两遍不符合dry(don’t repeat yourself)原则,效率也很低,所以公司里angular的前端开发项目中通常不会这么做。如果有一天领导告诉你:zzz,麻烦你改下代码,这句提示语我在这个页面想要呈现这个效果,在另一个页面要那个效果,这时你该怎么办呢?下面以一个简单的例子来说明。

公用的代码片段(修改前):

<div class="normalTxt">      
	<span >I love angular</span>         
</div>

原因分析:

angular中的样式绑定可以实现上述需求,angular有两种样式绑定指令:[ngStyle],[ngClass]
注意:使用时必须用[ ] 方括号把他们括起来!

1.[ngStyle]

<any [ngStyle]=“obj”>

说明:

  • any代表样式绑定的标签类型可以是任何类型,比如是div,p,span等等都行。

  • 在这里插入代码片ngStyle绑定的值必须是一个对象。

  • 对象属性就是css样式名,对象的值是具体的样式。

简单用法(html文件):

//将这段div的背景色改为绿色
<div [ngStyle]="{'background-color':'green'}">
xxxx
</div>

复杂用法(html文件):

//如果当前页面为主页则将背景色改为绿色,否则改为红色
<div [ngStyle]="{'background-color':pageName== 'homepage' ? 'green' : 'red' }">
xxxx
</div>

2.[ngClass]

<any [ngClass]=“obj”>

说明:

  • any代表样式绑定的标签类型可以是任何类型,比如是div,p,span等等都行。

  • ngClass绑定的值必须是一个对象。

  • 对象属性就是 class名,属性值为boolean类型结果只能为true/false,true的话该class就出现,否则该class不出现。

简单用法(html文件):

//使用.homepageText样式
<div [ngClass]="{'homepageText':true}">
xxxx
</div>

复杂用法(html文件):

//当页面名称是homepage时使用.homepageText样式,否则不使用
<div [ngClass]="{'homepageText':pageName =='homepage'}">
xxxx
</div>

(css文件):

.homepageText {    
font-size: 14px;
font-weight: bold;
}

解决方案:

以下是开头问题的解决方案,希望给各位带来一些启发

公用的代码片段(修改后):

<div [ngClass]="{'normalTxt':pageTitle=='portal' ,'specialTxt':pageTitle=='detail'}">   
   <span>I love angular</span>         
</div>

说明:portal页面想要展示normalTxt的效果,detail页面想要展示specialTxt的效果。normalTxt和specialTxt具体样式需要我们在相应的.css/.scss文件里添加。

感谢各位的阅读,以上就是“Angular中ngClass和ngStyle如何使用”的内容了,经过本文的学习后,相信大家对Angular中ngClass和ngStyle如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI