Подсчитайте количество li (ов) и установите их ширину

#javascript #jquery

#javascript #jquery

Вопрос:

Я хочу установить динамическую ширину на li (ы) в зависимости от того, сколько li (ов) есть в списке. Например, если их 18 li (ов). Каждая ширина должна составлять 100% / 18 = 5,55%. Что, если бы у меня было 3 разных набора li (ов). Я пытался использовать это. но это не работает

 $('.lesson-nav ul li').width( 100 / $(".lesson-nav ul li").length );
  

Ответ №1:

Вам не хватает % знака в вашей ширине, jQuery по умолчанию использует пиксели.

 $('.lesson-nav ul li').width( 100 / $(".lesson-nav ul li").length   '%' );
  

Комментарии:

1. По неизвестной причине: этот скрипт дает ширину 120% при наличии только 1 li и 27,55% при наличии 18 lis. Также в этом ответе не рассматривается, если внутри находится более 1 UL .урок-навигация.

Ответ №2:

Ваш код определенно даст вам ширину в пикселях. Попробуйте это:

 $('.lesson-nav ul li').width( ( 100 / $(".lesson-nav ul li").length )   '%' );
  

ОБНОВЛЕНО: кроме того, попробуйте встроенный блок для каждого элемента li.

Комментарии:

1. Ну, я предполагаю, что вы установили li как встроенные вместо элементов уровня блока, иначе эта тема не имела бы особого смысла. Однако и AFAIR это не так, как работает CSS width. Попробуйте использовать встроенный блок для каждого элемента li .

2. Точно такая же проблема возникает и здесь (как я ответил Бармару).

3. Это странно. Не могли бы вы, пожалуйста, показать свой HTML-код? С несколькими ul и без них.