Progressive enhancement based on browser-, device-, or feature-detection
The developments in the arena of HTML and CSS are so fast it is tough to ensure that the latest techniques are used while creating the code. What further complicates things for designers and developers is that browsers are updated randomly and different elements of HTML and CSS code are implemented at a different pace.
Graceful Degradation is a term used for writng code where the code is first written catering for the latest techniques and then fixing things so that they work for older technologies
. For example you would code your website so that users are able to browse the website properly using the latest browser like Chrome 16.0.912.63 m. Once the code is written later you would write the code so that the website is displayed properly using other browsers like Firefox.
The opposite of Graceful Degradation is Progressive Enhancement.
When practicing Progressive Enhancement code is written so that it displays properly even if basic techniques are supported (for example write the code for Internet Explorer 5.0) and then gradually update the code to take advantage for the latest techniques (like for accessing the website using Internet Explorer 9).
Both the techniques are practiced by developers and designers as both of them have their own advantages and disadvantages. Which one do you practice?