2014-09-30 2 views
0

Это выпадающее меню на скриншоте создается тегами ul и li. Я просто знаю, как создать раскрывающийся список, но я не уверен, как создать эту полосу прокрутки. Я чувствую, что могу сделать что-то вроде создания абсолютной позиции div в качестве полосы прокрутки, и ее размер и положение должны быть рассчитаны. У этих вещей не должно быть проблем.Как создать выпадающий список с тегами lu и li, подобный этому

Мой настоящий вопрос о css. Как заставить теги li отображать внутри тега ul. На этом скриншоте мы видим, что ul может иметь абсолютное положение и высокое значение z-индекса, чтобы оно отображалось поверх всего остального. Но как граница тега ul может охватывать теги li .... Я действительно не знаю, как это сделать так ... И также не знаю, какой код я должен писать, чтобы заставить его перемещаться с помощью прокрутки бар. Мне не нужны расчеты. Огромное спасибо.

enter image description here

+0

Является ли основным контейнером, возможно, div, который затем содержит ul и «полосу прокрутки»? Возможно ли, что полоса прокрутки - это только встроенная панель прокрутки браузера, потому что ul является фиксированным размером? – Steve

+0

Он называется ul tag (неупорядоченный список), а не lu, и пример автозаполнен, вы можете увидеть что-то подобное здесь http://jqueryui.com/autocomplete –

ответ

2

HTML

<input type="text" /> 
<ul> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
    <li>bla</li> 
</ul> 

CSS

input { 
    width: 200px; 
} 
input:focus ~ ul { 
    display: block; 
} 
ul { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
    width: 200px; 
    border: 1px solid silver; 
    height: 150px; /*required for scrolling */ 
    overflow: auto; /*required for scrolling */ 
    display: none; 
} 
ul li:hover { 
    background: gainsboro; 
} 

FIDDLE

Хотя, если вы хотите, чтобы список появляться при фокусировке на поле ввода, я предлагаю использовать JS для этого. В этом примере вы не можете прокручивать, нажимая на полосу прокрутки и перемещая ее вверх и вниз, потому что поле ввода теряет фокус, а список появляется только тогда, когда фокус находится в поле ввода. Но вы можете прокручивать колесико мыши.

+0

OMG, я пытался найти эту вещь в Интернете, поэтому никто не спрашивает об этом, потому что его простая особенность самого тега ul .... Я так глуп ... Спасибо вам большое! –