Never override style of a CSS native tag, only expand by adding class names.
The order in which the attributes on the same level are overwritten is determined by the order in the CSS definitions, not by the order of the classes attached to the HTML element.
Attribute overwrite is determined by order the class-styles are defined in the CSS file definition order, NOT in the order of HTML class
attributes.
The styling which is defined at the end of the CSS class will be the one to be applied.
Let's say you have the following HTML:
<label class="basic extra"/>Geeks</label> <label class="extra basic"/>Geeks For Geeks</label>
Defining CSS as order of:
.extra
first, .basic
after:.extra { color: #00529B; font-size:50px; background-color: pink; } .basic { color: #00529B; font-size:30px; background-color: #90ee90; /*light green*/ }
Then the HTML would render as:
<!-- both renders with `.basic` class attribute --> <label class="basic extra"/>Light Green</label> <label class="extra basic"/>Light Green</label>
Switching the CSS definition to:
.basic
first, .extra
after:.basic { color: #00529B; font-size:30px; background-color: #90ee90; /*light green*/ } .extra { color: #00529B; font-size:50px; background-color: pink; }
Then the HTML would render as:
<label class="basic extra"/>Pink</label> <label class="extra basic"/>Pink</label>