Динамический размер списка выбора (Safari) - PullRequest
0 голосов
/ 06 августа 2010

Я хотел бы выбрать размер списка на основе ширины, необходимой для выбранного индекса (строки).Скажем, например, у меня есть список с 3 строками: short, medium, loooooong;Я не хочу, чтобы список выбора автоматически был таким же широким, как его самый большой элемент, скорее он должен быть таким же широким, как и выбранный элемент.

Первый метод, который я попробовал: document.getElementById('selectList').style.width = (selectedText.length * 6) + 'px';, где selectedText - это строка и6 была плохой оценкой ширины символа.Без моноширинного шрифта это не будет работать правильно.

Следующий метод, который я попробовал, состоял в том, чтобы установить innerHTML div вне экрана (top: -9999px) на выбранный индекс, а затем: document.getElementById('selectList').style.width = document.getElementById('hiddenDiv').offsetWidth; Проблема сэтот метод заключается в том, что ширина также была неправильной, некоторые действительно длинные строки делали список выбора длинным по сравнению с фактически выбранной строкой.

Любые идеи, как я могу динамически изменять размер этого списка выбора на основе ширины строки/ длина

1 Ответ

1 голос
/ 06 августа 2010

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

Демо

...