I find it helpful to modify a default skin rather than build something new from scratch. It lets you add the new design one small chunk at a time, and you can test and make nessesary adjustments at each step. If there are problems, you already have the problem code isolated and therefore waste less time.
Here's how i would do it:
Setting up a new skin
1) Go to your skins folder: something like "C:\Inetpub\wwwroot\DNN\Portals\_default\Skins"
2) Make a copy of the directory 'DNN-Blue' and rename it 'Custom'
3) Go into your new ''Custom' skin folder, and delete everything except
- Horizontal Menu - Fixed Width.ascx
- Horizontal Menu - Fixed Width.jpg
- skin.css
4) Rename:
- Horizontal Menu - Fixed Width.ascx ---to--> CustomSkin.ascx
- Horizontal Menu - Fixed Width.jpg ---to--> CustomSkin.jpg
5) Load your new skin into DNN by logging into your portal as admin or host, go to and set either the Admin->Skins menu, Select 'Custom' from the skins dropdown, then when the page refreshes click the 'apply' link below the 'CustomSkin' item.
Now you're ready to start skinning...
6) Hello World: Open up CustomSkin.ascx in your HTML editor (i recommend macromedia dreamweave 8 - you can grab a 30 day trial from adobe.com). If you did everything right, any changes you make to this file will now be reflected on your dnn site. So go to the top of the html and type "Hello World" between the last <%@ Register tag and the first table tag. Go back to your DNN site and hit refresh, see if your changes appear at the top.
Start hacking the design up...
Load up your design in photoshop and first focus on an easy part of the site, like the header or footer. Work out if you can just cut the images up and place them in a table, or if you need to make some background images to lie undernearth your text/images. To be honest it takes practice/experience to cut up a design properly, and if your designer hasn't made the site with the restrictions of HTML/CSS in mind your job will be much much harder.
I would add blocks of the design to the top of the page, and if it works and looks right then start plugging in the controls that add the functionality (you'll see them in the .ascx file, dreamweave design view shows them as [login] [language] etc but if you look closely at the code its actually a .net control.
Containers
With DNN sites, everything is a module that you can add, remove or move around with a page, and those modules are always wrapped up in a mini-skin called a container. Container skins are kept completely seperate from site skins, and its a bit beyond the scope of this, but hopefully if you can nail the site skin you should be able to figure out the container skins, its the same basic idea, just on a smaller scale.
Hope this helps.