Najwyraźniej to nie działa:
select[multiple]{
height: 100%;
}
sprawia, że zaznaczenie ma 100% wysokości strony ...
auto
też nie działa, nadal pojawia się pionowy pasek przewijania.
Jakieś inne pomysły?
html
css
html-select
Alex
źródło
źródło
Odpowiedzi:
Myślę, że możesz użyć
size
atrybutu. Działa we wszystkich najnowszych przeglądarkach.źródło
Możesz to zrobić za pomocą
size
atrybutu wselect
tagu. Przypuśćmy, że masz 8 opcji, to zrobiłbyś to tak:źródło
Stary, ale to zrobi to, czego szukasz, bez potrzeby korzystania z jquery. Ukryte przepełnienie usuwa pasek przewijania, a javascript nadaje mu odpowiedni rozmiar.
I tylko niewielka ilość javascript
źródło
W przypadku jQuery możesz tego spróbować. Zawsze wykonuję następujące czynności i to działa.
źródło
Możesz to zrobić tylko w Javascript / JQuery, możesz to zrobić za pomocą następującego JQuery (zakładając, że podałeś wybranemu identyfikator multiselect):
Demo: http://jsfiddle.net/AZEFU/
źródło
$('select.expandable').each(function() { $(this).attr('size', $(this).find('option').length) })
Wiem, że pytanie jest stare, ale jak temat nie jest zamknięty, pomogę.
Atrybut „rozmiar” rozwiąże Twój problem.
Przykład:
źródło
select
może zawierać pooptgroup
jednej linii:W tym przykładzie suma
size
wynosi(1+1)+(1+2)=5
.źródło
<optgroup>
si<option>
s.Możesz to zrobić za pomocą prostego javascript ...
... lub ogranicz wysokość do liczby rekordów ...
źródło
$('#firstSelect').attr('size', $('#firstSelect').length);
. Spójrz na to skrzypce: https://jsfiddle.net/ergt5upf/2/Aby usunąć pasek przewijania, dodaj następujący CSS:
Oto fragment:
źródło
Korzystanie z atrybutu rozmiaru jest najbardziej praktycznym rozwiązaniem, jednak istnieją pewne dziwactwa, gdy jest stosowany do wybierania elementów z tylko dwiema lub trzema opcjami.
Prosty JavaScript może być użyty do automatycznego ustawienia atrybutu rozmiaru na poprawną wartość, np. Zobacz to skrzypce .
Jak wspomniano powyżej, to rozwiązanie nie rozwiązuje problemu, gdy dostępne są tylko dwie lub trzy opcje.
źródło
przyjaciele: jeśli pobierasz dane z bazy danych: możesz wywołać to $ registerers = * _num_rows (Result_query) wtedy
źródło
Niedawno miałem to wymaganie i użyłem innych postów z tego pytania do stworzenia tego skryptu:
źródło
Aby dostosować rozmiar (wysokość) wszystkich wielokrotnych zaznaczeń do liczby opcji, użyj jQuery:
źródło
Możesz najpierw policzyć tag opcji, a następnie ustawić liczbę dla atrybutu rozmiaru. Na przykład w PHP możesz policzyć tablicę, a następnie użyć pętli foreach dla tablicy.
źródło
Sposób renderowania pola wyboru jest określany przez samą przeglądarkę. Zatem każda przeglądarka pokaże wysokość pola listy opcji w innej wysokości. Nie możesz na to wpłynąć. Jedynym sposobem, w jaki możesz to zmienić, jest dokonanie własnego wyboru od podstaw.
źródło
Oto przykładowe użycie pakietu, które jest dość popularne w społeczności Laravel:
Pakiet: https://laravelcollective.com/
źródło