Может кто-то подтвердить, что его не можно изменить высоту выпадающего списка, которое отображается при нажатии на поле выбора.
Атрибут size выбора делает его похожим на список, атрибут height в CSS тоже не очень полезен.
Может кто-то подтвердить, что его не можно изменить высоту выпадающего списка, которое отображается при нажатии на поле выбора.
Атрибут size выбора делает его похожим на список, атрибут height в CSS тоже не очень полезен.
Подтверждено.
Отбрасываемая часть имеет значение:
x
(с прокруткой для просмотра остальных), где x
Для (3) выше вы можете увидеть результаты в этом JSFiddle
Я работал над выпадающим плагином jquery для борьбы с этой проблемой. Начиная с этого поста, он почти неотличим от собственного выпадающего списка с точки зрения внешнего вида и функциональности.
вот демонстрация (также ссылка на скачивание): http://programmingdrunk.com/current-projects/dropdownReplacement/
вот страница проекта плагина:
http://plugins.jquery.com/project/dropdownreplacement
(обновление:) страница плагина jquery, похоже, больше не работает. Я, вероятно, не буду размещать свой плагин на своем новом сайте, когда он его заработает, поэтому не стесняйтесь использовать ссылку programdrunk.com для демонстрации/загрузки
На самом деле ты вроде как можешь! Не зацикливайтесь на javascript... Я просто застрял на одном и том же сайте для веб-сайта, который я создаю, и если вы увеличиваете атрибут "font-size" в CSS для тега, он автоматически увеличивает и высоту. Мелкий, но это то, что беспокоит меня много ха ха
Это не идеальное решение, но оно вроде как работает.
В теге select укажите следующие атрибуты, где 'n' - количество строк выпадающего списка, которые будут видны.
<select size="1" position="absolute" onclick="size=(size!=1)?n:1;" ...>
Есть три проблемы с этим решением. 1) Быстрая вспышка всех элементов, отображаемых во время первого щелчка мыши. 2) Положение установлено на "абсолютное". 3) Даже если количество элементов "n" меньше, чем в "n" , выпадающее поле по-прежнему будет иметь размер "n" .
Ответ Chi Row является хорошим вариантом для этой проблемы, но я нашел ошибку в аргументах onclick
. Вместо этого:
<select size="1" position="absolute" onclick="size=(size!=1)?1:n;" ...>
(И упоминайте, что вы должны заменить "n" на количество строк, которые вам нужны)
НЕТ. Невозможно изменить высоту выпадающего списка, так как это свойство зависит от браузера.
Однако, если вы хотите эту функциональность, тогда есть много вариантов. Вы можете использовать bootstrap dropdown-menu
и определить его свойство max-height
. Что-то вроде этого.
$('.dropdown-menu').on( 'click', 'a', function() {
var text = $(this).html();
var htmlText = text + ' <span class="caret"></span>';
$(this).closest('.dropdown').find('.dropdown-toggle').html(htmlText);
});
.dropdown-menu {
max-height: 146px;
overflow: scroll;
overflow-x: hidden;
margin-top: 0px;
}
.caret {
float: right;
margin-top: 5%;
}
#menu1 {
width: 160px;
text-align: left;
}
<link rel="stylesheet" href="#" onclick="location.href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'; return false;">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container" style="margin:10px">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="menu1" data-toggle="dropdown">Tutorials
<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">About Us</a></li>
</ul>
</div>
</div>