A CSS declaration is one styling instruction: a property paired with a value, such as `color: black;`. Declarations sit inside a declaration block, the curly-braced part of a rule. The selector before that block identifies which elements the rule targets. A CSS property is not an HTML attribute: `color` is a property, while `href` on a link is an attribute. section 1.0
When declarations conflict
Suppose a heading matches `h1 { font-family: serif; }`, `#page-title { font-family: sans-serif; }`, and `.title { font-family: monospace; }`. All three declarations address the same property on the same element. The browser uses the cascade to choose one; here, the ID selector makes `sans-serif` win. A declaration’s position matters too: when the other cascade criteria are equal, the later declaration takes precedence. section 1.1 section 1.1.4
Later does not always mean better. A later `a.featured { background-color: orange; }` declaration can give a featured navigation link its orange background. But if the same class appears on a link outside the navigation, that link gets the orange background without the navigation rule’s text color, padding, or rounded corners. Check which rules match each element, not just which declaration wins. section 1.1.4
aside {
background-color: #333333; #1
background-color: #333333aa; #2
}
Two `background-color` declarations provide a fallback: browsers that understand eight-digit hex use the later, partly transparent color; browsers that do not understand it ignore that declaration and retain the earlier color. section 1.5.1



