Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS-在最后一个DIV之前获取DIV的宽度_Css_Width_Jquery Select2 - Fatal编程技术网

CSS-在最后一个DIV之前获取DIV的宽度

CSS-在最后一个DIV之前获取DIV的宽度,css,width,jquery-select2,Css,Width,Jquery Select2,我在一个页面上有一个Select2元素,右边有一个按钮,我希望Select2占据除按钮之外的所有空间。问题是Select2一旦激活就会注入自己的格式,我不知道如何解决这个问题 以下是我所拥有的: <ul style="width:100%"> <li> <label style="display:inline">From: </label> <div class="select2-container select2-containe

我在一个页面上有一个Select2元素,右边有一个按钮,我希望Select2占据除按钮之外的所有空间。问题是Select2一旦激活就会注入自己的格式,我不知道如何解决这个问题

以下是我所拥有的:

<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">...

然后它给我上一个div的90%,也就是0px。是否有一种方法可以从第一个ul而不是父div获取“select2 choices”的宽度?

不使用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');
});

由于某种原因,可能是为了存储数据或其他什么,我无法控制Select2 input元素注入父div。我无法使其适用于窗口大小调整,但我有一个想法,即在px中获取宽度,并将其直接放入div样式。但如果我这样做:console.log($('select2-choices').parents('ul').width());-我得到100,这可能意味着100%。你知道我是否可以得到像素数吗?.width()将返回像素值,而不管你的CSS声明如何。但是,需要注意的是,元件必须已完成加载。确保将javascript封装在一个文档就绪函数中,或者在元素之后声明它。我得到了它。你说得对,在elemet出现之前我无法测量。我把你的代码放在$('modal')上('show')和$('modal')上('resize'),现在工作得很好。谢谢。您可以很容易地使用Javascript(jQuery)来完成这项任务,但我不确定您是否正在寻找一个只使用CSS的解决方案。如果你可以在你的项目中使用jQuery,我会在下面添加一个答案。Javascript也可以,不管怎样。非常感谢。
$(document).ready(function(){
    $(window).on('resize',function(){
       var $choices = $('.select2-choices');
       var parentWidth = $choices.parents('ul').width();
       $choices.width(parentWidth*.9);        
    }).trigger('resize');
});