You can specify CssClass in server controls and your ASP.NET page will generate the style attribute for the control.
You can also specify an external CSS file in the ASP.NET page just as you would in an ordinary HTML page.
You can also write a tag in the ASP.NET page header section just as you would for an ordinary HTML page.
Then why are ASP.NET Themes necessary?
Don’t confuse ASP.NET Themes with ASP.NET Skins. I’ve explained them here:
The Theme system in ASP.NET does not compete with CSS, instead it’s a system that’s meant to make it easier to allow users to choose the stylesheets that are applied to the site.
The idea being that you’d create a “BoringBlue.css” stylesheet and associated artwork, then make a few changes and create a new one called “HotPink.css”. Rather than doing the work to generate the markup that enables or disables the page’s style
<link>elements ASP.NET Themes will do this heavy lifting for you.However, ASP.NET Web Forms Web Controls were originally made during the IE6 love-in at Microsoft (back when they pretended Firefox didn’t exist, so this is around 2004-2005) so they don’t make heavy use of CSS, many controls render presentational attributes, such as
bgcolor. “ASP.NET Skins” are a way to control the colors and other presentational settings of WebControls (note, not HtmlControls). ASP.NET Themes provide you with a way to choose which ASP.NET Skin is also applied, in addition to CSS stylesheets.Note that under ASP.NET MVC, Themes and Skins are completely obsolete as the framework no-longer renders any complex markup, returning complete control to the developer. Finally, no more gimmicks – I haven’t really come across a “let the user set the color scheme”-site since people stopped using phpNuke around 2007.