Open In App

What is the cascading order of the three types of CSS ?

Last Updated : 31 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Cascading Style Sheets (CSS) is a style sheet language used for describing the look and formatting of a document written in a markup language. One of the most important aspects of CSS is the cascading order, which determines the priority of styles applied to an element. In this article, we will explain the different cascading methods that can be used inside the cascading order.

The Cascading Order in CSS is a set of rules that determine which style will be applied to an element when multiple styles are conflicting. These rules can be used to achieve a desired layout or design, but understanding how they work is crucial to effectively use CSS. In this article, we will explore the different cascading methods that can be used inside the cascading order. First, let’s understand the basic concept of cascading. The term “cascading” refers to the way that styles are inherited and applied to elements in a web page. The cascading order is the order in which styles are applied, with more specific styles taking precedence over more general styles.

Three main cascading methods are:

Specificity: This method determines which style should be applied based on the specificity of the CSS selectors used. More specific selectors (such as using an ID instead of a class) will take precedence over less specific selectors. This method compares the specificity of selectors to determine which rule should take precedence. The more specific a selector is, the higher its specificity value and the more likely it is to override other styles. The higher the specificity, the higher the priority of the style. For example, an ID selector (#id) has a higher specificity than a class selector (.class) or an element selector (element).

Syntax: The specificity of a selector can be calculated by counting the number of ID selectors (#), class selectors (.), attribute selectors ([attribute]), and pseudo-elements (::). For example, in the following code, the specificity of #id is 100, .class is 10, and the element is 1.

/* More specific selector */
#id {
    /* Styles */
}

/* Less specific selector */
.class {
    /* Styles */
}

Example: In this example, we are using the above-explained method.

HTML




<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Cascading methods</title>
    <style>
        .container {
            color: green;
        }
 
        #text {
            color: red;
        }
 
        .text {
            color: green;
        }
    </style>
</head>
 
<body>
    <div class="container">
        <h1 class="text">GeeksForGeeks</h1>
        <h3>
              Different cascading methods that can
              be used inside the cascading order
          </h3>
    </div>
</body>
</html>


In this example, the text will be rendered in green. This is because the selector ‘.text’ has a higher specificity than ‘.container’ but lower than ‘#text’, and it is also declared last, overriding any previous declarations.

Output: 

 

Inheritance: This method determines which style should be applied based on the parent-child relationship between elements. Styles applied to a parent element will be inherited by its child elements unless overridden by a more specific style. This method uses the !important keyword to indicate that a rule should take precedence over all others. However, it is generally considered best practice to avoid using !important unless absolutely necessary. Inheritance is the mechanism by which styles are passed from a parent element to its children’s elements. The child element inherits the styles of its parent element unless the styles are explicitly overridden.

Syntax:

/* Parent selector */
body {
    /* Styles */
}

/* Child selector */
p {
    /* Styles */
}

Example: In this example, we are using the above-explained method.

HTML




<!DOCTYPE html>
<html>
 
<head>
    <style>
        /* Parent selector */
        body {
            background-color: yellow;
            color: black;
        }
 
        /* Child selector */
        h2 {
            background-color: green;
            color: white;
        }
    </style>
</head>
 
<body>
    <h2>GeeksForGeeks</h2>
</body>
 
</html>


The background-color of the heading ‘GeeksForGeeks’ will be green and its text color will be white. The background-color of the body will be yellow, but its text color will be overridden by the child selector (h2).

Output:

 

 Order of declaration: This method determines which style should be applied based on the order in which styles are declared. Styles declared later in the stylesheet will take precedence over styles declared earlier unless they are overridden by a more specific style. This method uses the order in which styles are declared to determine precedence. Styles declared later in the document will override those declared earlier.

Syntax: 

/* Last declared selector */
.class {
    /* Styles */
}

/* Previously declared selector */
.class {
    /* Styles */
}

Example: Another approach to creating a consistent email layout across different email clients is to use a CSS inliner tool. These tools take your HTML and CSS and automatically convert any CSS styles that are applied to elements using classes or ids, into inline styles.

HTML




<!doctype html>
<html>
 
<head>
    <meta charset="utf-8">
    <title>Cascading methods</title>
    <style>
        .container {
            background-color: #f2f2f2;
            padding: 20px;
        }
 
        .text {
            color: green;
        }
    </style>
</head>
 
<body>
    <div class="container">
        <h1 class="text">GeeksForGeeks</h1>
        <h3>
              Different cascading methods that can
              be used inside the cascading order
          </h3>
    </div>
</body>
 
</html>


Output:

 

Conclusion: Cascading order is a set of rules that determine which style will be applied to an element when multiple styles are conflicting. The three main cascading methods that can be used inside the cascading order are Specificity, Inheritance, and Order of Declaration. Specificity is determined by the CSS selectors used, Inheritance is determined by the parent-child relationship between elements, and Order of Declaration is determined by the order in which styles are declared.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads