A muito tempo que os desenvolvedores vem construindo sites com aquelas práticas herdadas do príncípio da web, onde se usavam editores  WYSIWYG, como Dreamweaver e FrontPage, usando tabelas, estilos in-line. Mas com a evolução da Web, isso deixa de existir, com os WebStandards, você consegue facilmente separar o conteúdo da apresentação, e é sobre isso que vou falar aqui, sobre as camadas de desenvolvimento: conteúdo, apresentação e comportamento.

Camada de Conteúdo: HTML
É o conteúdo da página propriamente dito, aqui é onde você deve categorizar seu conteúdo semanticamente correto, ou seja, usar as tags HTML para que elas foram realmente feitas. Isso é vital para os buscadores. Idealmente, um documento HTML deveria ser legível sem a necessidade de um browser gráfico e ser perfeitamente funcional sem a necessidade de imagens ou JavaScript. O HTML se encarrega exclusivamente de estruturar o conteúdo com independência de conteúdo visual.

Camada de Apresentação: CSS
Essa camada é responsável pelo desenho estético do conteúdo estruturado em HTML(ou XHTML). Deve estar contido em arquivos separados independentes da camada de conteúdo. Aqui é onde você vai usar aquele seu layout desenvolvido no Photoshop ou qualquer outro programa para edição gráfica.

Camada de Comportamento: JavaScript
Sua função é inserir dinamismo a nossa página. Um exemplo são menus flutuantes, rollovers complexos, onde você pode manipular livremente os elementos de nossa página. A ausência de JavaScript não deve impedir a acessibilidade as distintas seções do seu website.

Desenvolvendo dessa forma, você não terá mais problemas em sua página, principalmente quando necessitar fazer alguma alteração, pois está tudo separado em camadas.