1. Home
  2. Languages
  3. AngularJS
  4. Mastering AngularJS ng-style: Dynamic Inline CSS Made Easy

Mastering AngularJS ng-style: Dynamic Inline CSS Made Easy


When it comes to dynamically styling HTML elements in AngularJS, ng-style is one of the best built-in directives you can use. It allows you to apply inline CSS styles directly from your Angular controller or scope, giving you fine-grained control over the appearance of elements based on your application’s state or logic.

In this guide, you’ll learn what ng-style is, how it works, and practical tips for using it effectively without cluttering your markup or losing maintainability.


What is ng-style?

ng-style is an AngularJS directive that lets you bind an expression that returns an object of CSS style properties and values. Unlike traditional inline style attributes where styles are static, ng-style enables dynamic binding, meaning your styles update automatically as your model changes.

Example syntax:

Styled Text

Here, textColor and fontSize are variables in your AngularJS scope or controller, and when their values change, the styles on the element update accordingly.


Why Use ng-style?

  • Dynamic styling: Easily change colors, sizes, visibility, and more based on user interactions or data.
  • Cleaner markup: Manage styles in your controller or scope instead of hardcoding them in the HTML.
  • Conditional styling: Apply styles only if certain conditions are met.
  • Avoids CSS classes explosion: Instead of creating hundreds of CSS classes for every variation, use ng-style for small, conditional adjustments.


How to Implement ng-style: Step-by-Step

1. Define your controller or scope variables

First, you’ll need variables in your AngularJS controller or $scope that hold the style values.

javascript
app.controller(‘MyCtrl’, function($scope) {
$scope.textColor = ‘blue’;
$scope.fontSize = 16;
$scope.isHighlighted = true;
});

2. Bind styles using ng-style in your HTML

Use ng-style within your HTML element. You can bind directly to scope variables or inline expressions.

3. Update styles dynamically

You can update these style variables anywhere in your AngularJS app, such as in response to an event:

Once clicked, the text inside the styled <div> will change to red color and increase font size dynamically.


Best Practices When Using ng-style

  • Prefer camelCase or kebab-case carefully: In ng-style, both 'background-color' (kebab-case within quotes) or backgroundColor (camelCase) work for CSS properties. Choose one for consistency.
  • Use units explicitly: Properties like width, height, and fontSize require units (px, %, etc.). ng-style does not add them automatically.
  • Don’t overuse ng-style: For complex or reusable styles, CSS classes with ng-class might be better.
  • Keep expressions simple: Place more complex logic in your controller rather than inline for easier readability and testing.


Real-World Example: Highlighting Items on Hover

  • ng-style=”item.isHovered ? {‘background-color’: ‘#ccc’} : {}”
    ng-mouseenter=”item.isHovered = true”
    ng-mouseleave=”item.isHovered = false”>
    {{item.name}}

javascript
app.controller(‘HoverCtrl’, function($scope) {
$scope.items = [
{ name: ‘Item 1’, isHovered: false },
{ name: ‘Item 2’, isHovered: false },
{ name: ‘Item 3’, isHovered: false }
];
});

With this setup, each list item highlights on hover by changing the background color dynamically using ng-style. It’s a simple yet effective illustration of dynamic inline styling.


Conclusion

The AngularJS ng-style directive is a powerful tool to manipulate element styles dynamically and inline within your AngularJS applications. It is especially useful when you want style changes to reflect the application state without relying solely on CSS classes.

When implemented thoughtfully, ng-style can greatly enhance your app’s interactivity and user experience while keeping your code clean and maintainable. Try incorporating it into your next AngularJS project to take advantage of dynamic styling!


Happy coding!

Updated on July 4, 2025
Was this article helpful?

Related Articles

Leave a Comment