
Originariamente inviata da
simo22
Vorrei far notare che basta solo una di queste tre.
Prima di tutto dovresti evitare di usare il float perché ti costringerebbe ad usare un clearfix.
Non è necessario usare un bordo, basta anche un padding nel div principale.
Per spiegare quello che succede: i signori HTML che governano hanno deciso che se il primo elemento figlio ha un margine allora questo si deve fondere con il margine del genitore, se possibile. Se metti un padding allora non è più possibile farlo (non sarebbe equivalente) e allo stesso modo se metti il float nel padre allora il margine non è applicabile.
Non sono sicuro di perché funzioni con l'overflow ma funziona, ed è sicuramente questa la soluzione migliore.
