Ja sa CSS stále učím. I keď si myslíš že niečo fakt vieš, tak prídeš na to, že nevieš všetko. Hlavne keď sa budeš snažiť optimalizovať web na rôzne prehliadače a zariadenia... No a potom máš vždy nejaké nové veci, hlavne tie staršie, na ktoré si zabudol, lebo síce boli cool, žiaden browser ich nepodporoval, no zrazu ich podporuje všetko okrem IE a Safari (Safari je nové IE, ak nie ešte horšie).
Osobne weby robím už cca 9 rokov. No len asi posledné 4 roky sa tomu venujem viac ako nejaké osobné webíky.
Rozdiel medzi marginom a paddingom je celkom podstatný a začiatočníkom celkom uniká.
Padding je miesto medzi obsahom elementu (napr textom, obrázkom) a borderom (takže sa naň stále vzťahuje aj pozadie elementu).
Margin je zasa miesto za borderom a na ten sa už napr také pozadie nevzťahuje.
Pár príkladov:
Ak dáš pod seba 2 elementy a obom nastavíš padding na 10px hore a dole, tak medzi nimi bude 20px medzera. Ak ale použiješ margin, horné a spodné medzery sa collapsnú (prekryjú), takže veľkosť medzery medzi nimi bude len tak veľká, ako najväčší margin (horný alebo dolný), v tomto prípade by bola medzera 10px. Ak by si mal margin 15px hore a 10px dole (na oboch), tak by bola medzera 15px.
Ďalší rozdiel môžeš vidieť aj v mnou poslanom kóde. Ak nastavíš box-sizing: border-box; tak prepneš
Box model (ten vidíš aj v Chrome, keď inspectneš element, vypadá
takto) daného elementu na typ, v ktorom padding a border bude započítaný do šírky elementu. Toto najlepšie uvidíš na reálnom príklade:
http://codepen.io/MiChAeLoKGB/pen/xqJBQd
Stačí ak vieš anglicky a používaš Google a nájdeš toho dosť, väčšina otázok bola zodpovedaná na Stack Overflow (len tam dávaj pozor na dátum odpovede, odpoveď ohľadom CSS z roku < 2013 už nemusí byť takmer vôbec relevantná).
Prikladám upravený kód. Je to robené floatmi, ale ako som hovoril, flexbox je na toto až stupídne jednoduchý:
https://css-tricks.com/snippets/css/a-guide-to-flexbox/