The alternative to relying on the inheritance mechanism is to use the property value . Doing so ensures that the inherited value is included in the CSS cascade calculations, but be careful when you use , as browser support for this property value is limited in Internet Explorer.2 If a property isn’t set via the CSS cascade, and it’s not inherited, it’s up to the user agent to supply a default value for the property.
The conclusion of this whole process is that the CSS property for the element is set. However, you may be wondering about all the properties the CSS cascade doesn’t set. For example, what happens when there’s no applicable declaration to set the property for an element? How does it get a foreground color? In the absence of such a declaration, some properties are inherited from the parent of the element.
The CSS cascade uses selector pattern matching to apply to elements style declarations that have cascaded down through the document from various sources. But when two or more declarations apply to the same element, and set the same property, how does the browser determine which declaration to apply?