Распределите элементы с пропуском между ними равномерно в родительском элементе div и измените их ширину автоматически

Проблема: Div имеет размер 850 пикселей и имеет переменное количество дочерних элементов (изображение в элементе ссылки). Я хочу, чтобы они автоматически меняли свою ширину, чтобы они заполняли родительский элемент div с шириной в 10 пикселей между ними. Также они должны быть обоснованы у родителя, а у первого и последнего ребенка не должно быть пробела слева, соответственно, справа.

Изменение размера и подгонка прекрасно работает, но я не знаю, как получить пробелы там.

    $(".products a img").width($("#products_div").width() / $(".products a img").length);

1 ответ

Вы также должны показать нам свой CSS и свою HTML-разметку по этому типу проблемы, чтобы мы могли легко найти конфликт или ошибку. Разница в display, установив float или же margin может привести к другому результату, в зависимости от того, что именно вы хотите сделать.

Я считаю, что это ваша разметка:

<div id="products_div" class="products">
    <a><img src="..."/></a>
    <a><img src="..."/></a>
    <a><img src="..."/></a>
    <a><img src="..."/></a>
    <a><img src="..."/></a>
    <a><img src="..."/></a>        
</div>

Ваш CSS будет тогда:

#products_div { width:850px;}
.products a img{ float:left; }

И вот как вы решаете ширину и разрывы изображений с помощью js/jquery:

var gap = 10;

var imgWidth = ($("#products_div").width() + gap) / $(".products a img").length;

$(".products a img").width(imgWidth - gap).css({'margin-right':gap}).last().css({'margin-right':0});

Вот скрипка

Другие вопросы по тегам