Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
Jquery 设置相对于窗口而不是父窗口的div宽度_Jquery_Html_Css - Fatal编程技术网

Jquery 设置相对于窗口而不是父窗口的div宽度

Jquery 设置相对于窗口而不是父窗口的div宽度,jquery,html,css,Jquery,Html,Css,我想要一个包含几个div的水平滑块。我只希望其中3个是可见的,并且希望使用%(宽度33%)而不是px。我的问题是slider(jQuery插件)添加了一个width:auto的div,这个div比窗口大得多,内容div的33%宽度相对于父级而不是包装器 我无法在css中实现这一点,因为内容div必须保持相对性,而不是绝对性 问题是:是否可以使几个内容div的宽度在加载时相对,并调整为包装div的宽度,即100%的视口宽度,而不是父级宽度 我想我应该从这样的东西开始,但不知道如何使它相对于包装器:

我想要一个包含几个div的水平滑块。我只希望其中3个是可见的,并且希望使用%(宽度33%)而不是px。我的问题是slider(jQuery插件)添加了一个width:auto的div,这个div比窗口大得多,内容div的33%宽度相对于父级而不是包装器

我无法在css中实现这一点,因为内容div必须保持相对性,而不是绝对性

问题是:是否可以使几个内容div的宽度在加载时相对,并调整为包装div的宽度,即100%的视口宽度,而不是父级宽度

我想我应该从这样的东西开始,但不知道如何使它相对于包装器:

$(window).on('load resize', function(){
    $('.content').css( "width","33%" );
});
在“现代”浏览器中使用

在您的例子中,
div.content{width:33vw;}

对于不支持的浏览器,有一些多边形填充。您可以在这里找到:

在“现代”浏览器中使用

在您的例子中,
div.content{width:33vw;}


对于不支持的浏览器,有一些多边形填充。您可以在这里找到一个:

每次只需计算三分之一的视口宽度,然后使用该值:

$(window).on('load resize', function(){
    $('.content').css( "width",($(window).width()/3)+'px');
});
此外,正如Deryck在下面指出的,您最好使用
$(document).ready(…)
初始化此样式,而不是使用
窗口的
onload
事件,因此:

$(window).on('resize', function(){
    $('.content').css( "width",($(window).width()/3)+'px');
});

$(document).ready(function(){
    $('.content').css( "width",($(window).width()/3)+'px');
});

注意:窗口对象立即可用,因此可以直接或在
$(文档)中附加调整大小事件处理程序。就绪(…)
您每次只需计算三分之一的视口宽度,并使用该值:

$(window).on('load resize', function(){
    $('.content').css( "width",($(window).width()/3)+'px');
});
此外,正如Deryck在下面指出的,您最好使用
$(document).ready(…)
初始化此样式,而不是使用
窗口的
onload
事件,因此:

$(window).on('resize', function(){
    $('.content').css( "width",($(window).width()/3)+'px');
});

$(document).ready(function(){
    $('.content').css( "width",($(window).width()/3)+'px');
});

注意:窗口对象立即可用,因此可以直接或在
$(文档)中附加调整大小事件处理程序。ready(…)
BYossarian在我上面做对了,但您还需要在$(文档)中运行相同的函数。ready()

提供的代码将仅在$(window).on('load resize')事件上运行,而不是在最初加载页面时运行

小提琴:


我上面的BYossarian做对了,但是您还需要在$(document).ready()中运行相同的函数

提供的代码将仅在$(window).on('load resize')事件上运行,而不是在最初加载页面时运行

小提琴: