Лучше не марджин использовать, а паддинг. Исключит баги, а так да. Решение почти правильное.
1. Три колонки с float:left и равной шириной 33.33%
2. В первом и последнем, внутренний отступ 200 пикселей.
3. При ширине меньшей 960 пикселей с помощью меди квери , убрать у колонок плавающее свойство и сбросить ширину в auto, убрать у первого и последнего отступы.
div {
float:left;
width:33.3%
}
div.first,
div.last {
padding:200px 0 0
}
@media screen and (max-width: 960px) {
div {
paddint:0;
float:none;
width:auto;
}}