2013-09-16 1 views
0

У меня есть элемент Select2 на странице с кнопкой справа, и я хочу, чтобы Select2 занимал все пространство, за исключением того, что делает кнопка. Проблема в том, что Select2 вводит свое форматирование после активации, и я не могу понять, как обойти это.CSS - получение ширины от DIV до последнего

Вот что у меня есть:

<ul style="width:100%"> 
<li> 
    <label style="display:inline">From: </label> 
    <div class="select2-container select2-container-multi test" style="width:0px"> 
    <ul class="select2-choices">... 

Я хочу Select2-выбор быть 90% от стоимости первой ул но если я ставлю

.test .select2-choices { 
    width:90%; 
} 

, то он дает мне 90% от предыдущего DIV, который 0px. Есть ли способ получить ширину для «select2-choice» из первой ul, а не из родительского div?

+0

Вы можете легко использовать Javascript (JQuery), чтобы выполнить эту задачу, но я не уверен, что если вы ищете CSS только решения. Если вы можете использовать jQuery в своем проекте, я добавлю ответ ниже. – Migs

+0

Javascript тоже будет хорошо, что бы это ни значило. Спасибо. – user164863

ответ

0

Не с CSS. Для этого вам нужно будет использовать javascript. Есть ли определенная причина, по которой вам нужен ваш родитель, чтобы иметь ширину 0px?

Редактировать: Вы можете сделать что-то подобное в jQuery. Я не рекомендую жестко кодировать процент, но это должно заставить вас идти.

$(document).ready(function(){ 
    $(window).on('resize',function(){ 
     var $choices = $('.select2-choices'); 
     var parentWidth = $choices.parents('ul').width(); 
     $choices.width(parentWidth*.9);   
    }).trigger('resize'); 
}); 

http://jsfiddle.net/BAGkD/

+0

, что родительский div вводится элементом ввода Select2 по какой-либо причине, вероятно, для хранения данных или чего-то еще, я не контролирую его. – user164863

+0

Я не мог заставить его работать для изменения размера окна, но у меня есть идея получить ширину в px и поместить ее непосредственно в div-стиль. Но если я это сделаю: console.log ($ ('select2-choice'). Parent ('ul'). Width()); - Я получаю 100, что, вероятно, означает 100%. Вы знаете, могу ли я получить эту цифру в пикселях? – user164863

+0

.width() вернет значение пикселя независимо от вашего объявления CSS. Однако оговорка в том, что элемент должен закончить загрузку. Убедитесь, что вы завершаете javascript в функции готовности документа или объявляете его после своих элементов. http://api.jquery.com/width/ – bmasterson