Adjacent margins will overlap if they do not have a set float (ie, defaulted to 'none'). This effect is only apparently seen in vertical margins, as adjacent horizontal margins will never come in contact without the use of float. This is because block elements attempt to take up the maximum available width (through auto margins) unless floats force them to be their real width (plus any margin and padding).
margin adjacent, vertical, no float
margin
margin
padding
◀ There!
padding adjacent, vertical, no float
padding
padding
margin
margin adjacent, vertical, float left
margin
margin
padding
padding adjacent, vertical, float left
padding
padding
margin
margin adjacent, horizontal, float left
margin
margin
padding
padding adjacent, horizontal, float left
padding
padding
margin
margin adjacent, horizontal, float right
margin
margin
padding