Home >Web Front-end >Front-end Q&A >How to dynamically change CSS classes in angular (three ways)
AngularJS is a very popular front-end framework that provides many useful instructions and functions to help us write better JavaScript applications, and is easy to use.
In AngularJS, we can use the ng-class directive to dynamically change CSS classes and thereby change the style of HTML elements. The ng-class directive can be used in three different ways, we can use the following syntax:
<div ng-class="{'class1': expression1, 'class2': expression2}">Some Content</div>
In this example, we define Gets an object where the keys are CSS class names and the values are Boolean expressions. If the expression is true, the corresponding CSS class is applied to the element.
<div ng-class="['class1', 'class2']">Some Content</div>
In this example, we pass an array directly, where each element is a CSS class name. These class names will be applied to elements.
<div ng-class="getClass()">Some Content</div>
In this example, we use a function to dynamically return a CSS class name. When we call the ng-class directive, it automatically calls the getClass() function and applies the return value as the CSS class name to the element.
Sample code:
<!doctype html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>AngularJS ng-class</title> <style> .big { font-size: 40px; } .red { color: red; } .green { color: green; } </style> </head> <body ng-controller="myCtrl"> <div ng-class="{'big': isBigFont, 'red': isRedText, 'green': isGreenText}"> <p>Some content here</p> </div> <button ng-click="toggleFont()">Toggle Font Size</button> <button ng-click="toggleColor()">Toggle Color</button> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.isBigFont = false; $scope.isRedText = false; $scope.isGreenText = false; $scope.toggleFont = function() { $scope.isBigFont = !$scope.isBigFont; }; $scope.toggleColor = function() { $scope.isRedText = !$scope.isRedText; $scope.isGreenText = !$scope.isGreenText; }; }); </script> </body> </html>
In this example, we first define three CSS classes, namely big, red and green. Then use the ng-class directive to dynamically change the CSS class and style of the element.
In the controller, we define three variables: isBigFont, isRedText and isGreenText. By clicking the button, we can dynamically change the values of these variables and thereby change the style of the element.
To summarize, using AngularJS’s ng-class directive allows us to easily dynamically change CSS classes in order to inject styles into HTML elements. Its support in AngularJS is very high, so we can use it in our application with confidence.
The above is the detailed content of How to dynamically change CSS classes in angular (three ways). For more information, please follow other related articles on the PHP Chinese website!