Почему бы просто не поплавать их влево? (и изменить размер контейнера, чтобы подогнать их ..)
Таким образом, вы лучше контролировать обочину, так как font-size
не влияет на них (ни пробельные)
#mainparent
{
width:480px;
height:200px;
background:#ccc;
}
.boxes
{
width:50px;
height:50px;
float:left;
margin:5px;
background:#000;
}
Demo в http://jsfiddle.net/JxhP8/32/
Update
Если вы хотите элементы выравниваются по левому краю между собой, но центр выровнены в их контейнере, вам нужен еще один элемент в середине и некоторые JavaScript ..
Вот реализация JQuery
HTML
<div id="mainparent">
<div class="centerized">
<div class="boxes"></div>
<div class="boxes"></div>
<div class="boxes"></div>
..
..
<div class="boxes"></div>
<div class="boxes"></div>
<div class="boxes"></div>
</div>
</div>
CSS
#mainparent
{
background:#ccc;
}
.centerized{
overflow:hidden; // to grow according to the boxes
margin:0 auto; // to be centered in container
}
JQuery
$(function(){
// cache the repeatedly used elements
// and fixed values
var main = $('#mainparent'),
centerized = main.find('.centerized'),
itemWidth = main.find('.boxes').outerWidth(true);
$(window).resize(function(){
var fitItems = (main.width()/itemWidth) | 0;
centerized.width(fitItems * itemWidth);
}).trigger('resize');
});
Demo вhttp://jsfiddle.net/JxhP8/34/
добавить: #mainparent {выравнивания текста: слева;} – user1956570
Я думаю, что ОП не хочет нарушать свой первоначальный Выровнять все ящики – DaniP