Alguém pode confirmar que não é possível alterar a altura de um menu suspenso que é mostrado quando você clica em uma caixa de seleção.
O atributo size do select faz com que pareça uma lista, o atributo height no CSS também não faz muito bem.
html
html-select
mkoryak
fonte
fonte
Respostas:
Confirmado.
A parte que desce é definida como:
x
entradas (com barras de rolagem para ver o restante), ondex
estáPara (3) acima, você pode ver os resultados neste JSFiddle
fonte
Tenho trabalhado em um plugin jquery de substituição suspensa para combater esse problema. Nesta postagem, é quase indistinguível de uma lista suspensa nativa em termos de aparência e funcionalidade .
aqui está uma demonstração (também um link para downloads): http://programmingdrunk.com/current-projects/dropdownReplacement/
aqui está a página do projeto do plugin:
http://plugins.jquery.com/project/dropdownreplacement(atualização :) a página do plugin jquery parece não funcionar mais. Provavelmente não colocarei meu plugin em seu novo site quando ele começar a funcionar, então fique à vontade para usar o link programmingdrunk.com para demonstração / download
fonte
NO . Não é possível alterar a altura de uma lista suspensa de seleção porque essa propriedade é específica do navegador.
No entanto, se você deseja essa funcionalidade, existem muitas opções. Você pode usar bootstrap
dropdown-menu
e definir suamax-height
propriedade. Algo assim.$('.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="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <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>
fonte
Na verdade, você meio que pode! Não se preocupe com javascript ... Eu estava preso na mesma coisa para um site que estou fazendo e se você aumentar o atributo 'font-size' no CSS para a tag, ele também aumentará automaticamente a altura. Petty mas é algo que me incomoda muito ha ha
fonte
Esta não é uma solução perfeita, mas funciona.
Na tag de seleção, inclua os seguintes atributos, onde 'n' é o número de linhas suspensas que seriam visíveis.
<select size="1" position="absolute" onclick="size=(size!=1)?n:1;" ...>
Existem três problemas com esta solução. 1) Há um rápido flash de todos os elementos mostrados durante o primeiro clique do mouse. 2) A posição é definida como 'absoluta' 3) Mesmo se houver menos de 'n' itens, a caixa suspensa ainda terá o tamanho de 'n' itens.
fonte
A resposta Chi Row é uma boa opção para o problema, mas encontrei um erro nos
onclick
argumentos. Em vez disso, seria:<select size="1" position="absolute" onclick="size=(size!=1)?1:n;" ...>
(E mencione que você deve substituir o " n " pelo número de linhas de que precisa)
fonte
Você pode alterar a altura de um. Não use
height="500"
(apenas um número de exemplo). Use o estilo. Você pode usar a<style>
tag ou apenas:<!DOCTYPE html> <html> <body> <select id="option" style="height: 100px;"> <option value="1">Option 1 <option value="2">Option 2 </select> </body> </html>
Eu destaco a mudança:
<select id="option" style="height: 100px;">
E melhor ainda ...
style="height: 100px;">
Você viu isso?
Por favor, vote se for útil!
fonte
<select>
elemento, não o próprio elemento. Eu fiz essa pergunta há mais de 10 anos, quando estilizar este widget era praticamente impossível. Tenho certeza de que não é mais o caso.