Olá André!

Tambem tive muita dificuldade em CSS, tanto que iniciei um curso sobre desenvolvimento web e estava terminando a parte de CSS, mas sentia que não conseguia fazer do jeito certo, do jeito mais simples, então, comecei outro curso sobre o tema e, então, hoje sinto que tenho uma noção bem melhor.

O curso que me ajudou muito foi o do Curso em Vídeo, sendo a versão mais nova de HTML e CSS. Se você já tem a base eatabelecida de HTML pode começar a partir do capítulo que inicia o CSS. E, caso você se identifica mais com matéria escrita, sugiro os PDFs disponibilizados no repositório dele (embora esteja disponível até alguns capítulos apenas).

Algo que pra mim fez muita diferença foi, como sugerido pelo colega abaixo, estudar Box Model. E isso acho que vai ajudar bastante na sua dificuldade.

E, junto a isso, algo que ajudou foi parar de querer usar tudo que aprendia em todo projeto e simplificar ao máximo. Por exemplo, antes colocava classes e ids em todos os elementos e ficava uma bagunça (até dava certo, mas era o mais difícil), depois passei a fazer configurações mais padrões, apenas o necessário, nos elementos do html e apenas algumas classes e ids pontuais.

Outra coisa foi a forma de usar seletores. Antes, como mencionei, usava classe e id pra tudo, depois passei a usar os seletores como se fossem "urls", por assim dizer. Ex.: quando ia estilizar, um h2 que estava dentro do section que estava dentro do main eu usava o seletor main section h2 {...}. Assim, eu conseguia direcionar bem onde eu queria o estilo.

Se não consegui me expressar bem, por favor, da um toque aí que tento explicar melhor.