Как я могу сделать список выбора короче, когда он открыт? [Дубликат]

java 7 +

По моему скромному мнению, поскольку я фанат простой java, я бы предложил что-то, что это комбинация вышеупомянутых ответов. Может быть, я опаздываю на вечеринку. Вот код:

  String sampleText = "test" + System.getProperty ("line.separator");  Files.write (Paths.get (filePath), sampleText.getBytes (StandardCharsets.UTF_8), StandardOpenOption.CREATE, StandardOpenOption.APPEND);   

Если файл не существует, он создает его, и если он уже существует, он добавляет sampleText к существующему файлу. Используя это, вы избавляетесь от добавления ненужных библиотек в ваш путь к классам.

28
задан Paul D. Waite 9 January 2012 в 14:23
поделиться

8 ответов

Я использовал этот код, и он работал для меня в Chrome, Firefox и IE.

<select  onmousedown="if(this.options.length>5){this.size=5;}" onchange="this.blur()"  onblur="this.size=0;">
<option>option1</option>
<option>option2</option>
<option>option3</option>
<option>option4</option>
<option>option5</option>
<option>option6</option>
<option>option7</option>
</select>

2
ответ дан Affes Med Fedi 15 August 2018 в 19:46
поделиться

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

Но вы можете использовать javascript / jQuery для замены этого selectbox с чем-то другим, которое просто выглядит как раскрывающийся список. Затем вы можете обрабатывать высоту выпадающего списка по своему желанию.

jNice будет плагином jQuery, который имеет такие функции. Но для этого существует множество альтернатив.

2
ответ дан Armin 15 August 2018 в 19:46
поделиться

Использовать атрибут size для <select>;

-2
ответ дан ijse 15 August 2018 в 19:46
поделиться

Вы можете попробовать это

<select name="select1" onmousedown="if(this.options.length>8){this.size=8;}"  onchange='this.size=0;' onblur="this.size=0;">
             <option value="1">This is select number 1</option>
             <option value="2">This is select number 2</option>
             <option value="3">This is select number 3</option>
             <option value="4">This is select number 4</option>
             <option value="5">This is select number 5</option>
             <option value="6">This is select number 6</option>
             <option value="7">This is select number 7</option>
             <option value="8">This is select number 8</option>
             <option value="9">This is select number 9</option>
             <option value="10">This is select number 10</option>
             <option value="11">This is select number 11</option>
             <option value="12">This is select number 12</option>
           </select>

Это сработало для меня

15
ответ дан Jordan.J.D 15 August 2018 в 19:46
поделиться
  • 1
    Это делает правильное изменение размера, но при выборе значения оно выдает IE 11. Размытие работает. Chrome работает отлично. Есть идеи? – Kevin Swarts 12 May 2015 в 13:46

Решение Raj_89 является самым близким к тому, чтобы быть допустимым вариантом altough, как упоминал Кевин Свартс в комментарии, он собирается разбить IE, что для большого числа корпоративных клиентов является проблемой (и говорит вашему клиенту, что вы не будете кодировать IE «потому что причины» вряд ли сделают вашего босса счастливым;)).

Итак, я играл с ним, и вот в чем проблема: событие onmousedown бросает подгонку в IE, поэтому мы хотим предотвратить по умолчанию, когда пользователь нажимает раскрывающееся меню для первого время. Важно, что это только время, когда мы делаем это: если мы предотвратим дефолт при следующем щелчке, когда пользователь сделает выбор, событие onchange не будет срабатывать.

Таким образом, мы получаем красивое выпадающее меню, без мерцания , без разбивки IE - просто работает ... ну, по крайней мере, в IE10 и выше, и последние отношения со всеми другими основными браузерами.

<p>Which is the most annoing browser of them all:</p>
<select id="sel" size = "1">
    <option></option>
    <option>IE 9</option>
    <option>IE 10</option>
    <option>Edge</option>
    <option>Firefox</option>
    <option>Chrome</option>
    <option>Opera</option>
</select>

Вот скрипка: https://jsfiddle.net/88cxzhom/27/

Немногие вещи, чтобы заметить: 1) абсолютное позиционирование и установка z-индекса помогают избежать перемещения других элементов при отображении параметров. 2) Используйте свойство currentTarget - это будет элемент выбора во всех браузерах. Хотя «цель» будет выбрана в IE, остальное на самом деле позволит вам работать с опцией.

Надеюсь, это поможет кому-то.

5
ответ дан Michal Ja 15 August 2018 в 19:46
поделиться

Tnx @ Raj_89, твой трюк был очень хорошим, может быть лучше, только с помощью дополнительного стиля, который делает его на других объектах dom, точно так же, как обычный тег select select в html ...

select{
 position:absolute;
}

u может видеть результат здесь: http://jsfiddle.net/aTzc2/

4
ответ дан mohammadreza berneti 15 August 2018 в 19:46
поделиться

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

<select name="numbers" size="5">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
</select>
2
ответ дан Pankaj Upadhyay 15 August 2018 в 19:46
поделиться
  • 1
    Если мы используем параметр размера, он не отображается как раскрывающийся список, но мне нужно как выпадающее меню – vinox 20 November 2013 в 13:29

Вы можете использовать атрибут size, чтобы <select> отображался как поле вместо выпадающего списка. Число, которое вы используете в атрибуте size, определяет, сколько опций отображается в поле без прокрутки.

<select size="5">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    <option>10</option>
    <option>11</option>
    <option>12</option>
</select>

Вы не можете применить это к <select> и , хотя он все еще отображается как раскрывающийся список. Браузер / операционная система решит, сколько опций должно отображаться для выпадающих списков, если вы не используете HTML, CSS и JavaScript для создания выпадающего списка поддельных.

15
ответ дан Paul D. Waite 15 August 2018 в 19:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: