Верстка блоков горизонтально без лишних классов

Довольно часто приходиться верстать блоки, когда они расположены горизонтально, с расстоянием между собой и впритык к краям родительского блока. Например, вот так:

верстка блоков горизонтально

Основная трудность здесь возникает с размещением блоков и отступов между ними. Т.е. каким образом разместить блоки, чтобы они были одновременно и прижаты к краям, и имели одинаковый отступ?

Как видно на картинке, у всех блоков, кроме последнего, есть отступ справа. Однако, если для всех этих блоков прописать margin-right: 20px, то последний блок не поместится в блок parent и окажется внизу. Обычным решением является задание отдельного класса для последнего блока, и прописать отступ равный нулю. Однако есть решение лучше, можно обойтись и без класса.

Для этого нужно увеличить ширину блока parent на расстояние отступа, в нашем случае на 20px, тогда последний блок станет на место. При этом parent раздвинет на 20px и блок container, а это может поломать структуру страницы, поэтому для container надо прописать overflow: hidden;

верстка блоков горизонтально

Прием полностью кроссбраузерный. Возможно не идеальный, но он работает, а это главное.