Положение внутри поплавкового элемента

Я сделал собственное выпадающее меню, вот HTML:

<div class='dropdown'>
    <div class='dropdownTitle'>Sort by<span class='select_arrow'></span></div>
    <ul class='selectPanel'>
        <li><input  type='checkbox' id='allProducts'><label for='allProducts'>Name</label></li>
        <li><input  type='checkbox' id='Enterprise'><label for='Enterprise'>Date</label></li>
        <li><input  type='checkbox' id='Security'><label for='Security'>Popularity</label></li>
        <li><input  type='checkbox' id='Data'><label for='Data'>Rating</label></li>
    </ul>
</div>

В большинстве случаев это работает нормально, но, если всплыть раскрывающийся список, элемент внутри не отображается так, как я ожидал: ширина панели не увеличивается, когда метки больше. Я сделал jsfiddle.

Кто-нибудь может объяснить мне, почему это происходит, и как решить?

Спасибо!

3 ответа

Решение

Добавлять white-space: nowrap; на ваш CSS:

.dropdown {
    display : inline-block;
    font-size: 12px;
    color : #646464;
    white-space: nowrap;
}

Вы можете решить это, добавив white-space: nowrap на ваш li, Что-то вроде этого:

.dropdown>ul>li {
    margin : 0;
    padding : 0;
    padding : 0 8px;
    display : block;
    white-space: nowrap;
}

Это препятствует тому, чтобы два встроенных блока (метка и ввод) появлялись на другой строке.

Эй, так в основном, когда вы используете float:right столько строк появится в строке, сколько возможно, если элемент, который не помещается, будет перенесен в следующую строку.

Таким образом, легко исправить это установить ширину .dropdown>ul>li в этом случае width : 140px; работает для этой скрипки, но это будет зависеть от самой длинной длины текста в списке

вот как это сейчас выглядит в JS Fiddle

Другие вопросы по тегам