} after property list
; and (matched) };: present, debugThen style it if possible




Mozilla Developer Network

If you have to entirely re-engineer for IE… you’re Doing It Wrong.
Not identical, but equivalent

There is a difference between support and optimization.

- Identify core functionality.
- Make that functionality available using the simplest possible technology.
- Enhance!

You can use it and not use it at the same time, because it works and it doesn’t work at the same time. It’s Quantum CSS! It’s Magic!
/* IE6 and below */
* html #uno { color: red }
/* IE7 */
*:first-child+html #dos { color: red }
/* IE7, FF, Saf, Opera */
html>body #tres { color: red }
/* IE8, FF, Saf, Opera (Everything but IE 6,7) */
html>/**/body #cuatro { color: red }
.no-cssgradients .header {
background: url("images/glossybutton.png");
}
.cssgradients .header {
background-image: linear-gradient(deeppink, rebeccapurple);
}
@media & @supports

Is a progressive-enhancement feature

:has(): present, debuglight | dark | no-preference
low | high | no-preference
reduce | no-preference
reduce | no-preference
Not reduced animation
/* touch screens */
@media (hover: none) and (pointer: coarse) { }
/* stylus-based screens */
@media (hover: none) and (pointer: fine) { }
/* gesture-based screens */
@media (hover: hover) and (pointer: coarse) { }
/* mouse & touch pad */
@media (hover: hover) and (pointer: fine) { }
It’s just the job we do

