Это предполагает, что все элементы имеют одинаковую ширину. Если вы не хотите, чтобы последний ряд элементов центрировался, вы можете сделать это с помощью нескольких строк JavaScript. Отбросьте блок inline-block, выравнивание текста по центру и просто поместите элементы списка в список и поместите margin: 0 auto
в контейнер списка.
Со стороны JS вычислите ширину панели содержимого или окна, затем определите, сколько элементов вы можете разместить в строке, то есть ширину элемента контейнера списка, а затем установите эту ширину. itemWidth
здесь предполагается, что ширина каждого элемента списка + поле + отступ + граница.
var centerListItems = function (itemWidth) {
var $paneWidth = $('#my-content').width(),
setWidth;
setWidth = parseInt(($paneWidth / itemWidth), 10) * itemWidth;
$('#my-list').width(setWidth);
}
Если вы хотите, чтобы оно изменилось при изменении размера окна или ориентации, вы можете использовать underscore.js для отмены вызова.
var event;
if ('onorientationchange' in window) {
event = 'onorientationchange';
} else {
event = 'resize';
}
$(window)
.off(event)
.on(event, _.debounce(function () {
centerListItems(itemWidth);
}, 350));