Everyone should know that inline CSS is a bad thing. You always want to use external stylesheets, or in some cases (like I do with single page sites), put all your styles in the HTML <head>. You never want to use the style attribute and embed your CSS. It makes it a more difficult, time consuming process to make changes to the document since you usually have to make the same change in many places. When you do this you cannot reuse styles or apply them to multiple elements, you’ll need to have the style on every element you want it to be applied to.

This tip was meant to warn you against something worse than that, embedded CSS in dynamic content. If you have sections of your page being generated by a higher level language such as Ruby/Rails, PHP, Python, ASP.NET, etc., you should NEVER have embedded CSS code in them. Use class names and IDs instead.

This sometimes leads to the inline styles being in a completely different document than where you’re seeing them displayed. Finding and updating these is even more difficult and time consuming than regular inline styles. Some of the projects I’ve been working on at my job have inline CSS hidden deep within ASP files and it makes it very difficult to change something as simple as text color since you need to scour the project looking for where that code is generated.