Подтвердить что ты не робот

Как получить поле <select> для переполнения из содержащего <div>?

фон:

Клиент попросил меня предоставить им несколько выпадающих списков. Поэтому я дал им некоторые, заполненные множеством различных вариантов.

Им понравилось, как выпадающие списки выглядели в Firefox и Chrome, потому что выпадающее меню автоматически расширяется до ширины текста, как показано:

enter image description here

Но это не относится к IE

Internet Explorer - готик-подросток мира веб-разработки и любит вести себя по-другому, поэтому он не видит своих сверстников как конформист. Он не видит значения в раскрывающемся списке, чтобы пользователь мог прочитать весь текст, который он содержит. Итак, это выглядит так:

enter image description here

Это было недостаточно для клиента, поэтому они попросили меня исправить это. Я нашел плагин jQuery, который изменил бы размер текстового поля, когда вы его сфокусировали, чтобы при его открытии вы могли видеть весь текст в нем. Пример доступен здесь: (обязательно загрузите это в IE8 или меньше)

http://jsfiddle.net/tmcNP/3/

вопрос:

Обратите внимание, что, когда вы нажимаете на раскрывающееся меню All companies, это приводит к выходу на следующую строку? Есть ли какой-либо способ заставить его оставаться на одной строке и "переполнять" * из содержащего div?

* не уверен, что это правильный термин, в этом контексте.

4b9b3361

Ответ 1

Это потому, что плагин изменяет размер <select>, чтобы соответствовать самому длинному <option> внутри него. К сожалению, единственная работа вокруг этого будет заключаться в position:absolute выборе внутри него родительского (установите на position:relative).

Действительно, это произойдет с любым из тех выпадающих списков, у которых контент больше, чем он может содержать. Это печально, но вы не можете управлять поведением <select>, если вы не имитируете выбор с помощью <div>, что и делает множество фреймворков JS UI, таких как Dojo.

Ответ 2

Вы можете поместить каждую строку из трех выборок в div и добавить класс к этим двум divs следующим образом:

.line{
 height: 40px; 
 width: 800px;  
  }


  <div class='line'>
  <select>...</select> <select>...</select>  <select>...</select>   
  </div>  
  <div class='line'>
  <select>...</select> <select>...</select>  <select>...</select>   
  </div>  

Ответ 3

Предлагаемый пользовательский элемент select controll привяжет длинную строку опций к размеру: jquery-keyselect