如何使用jquery获取div的max-width

时间:2013-09-19 07:08:46

标签: javascript jquery html css

我有3个div,比如

<div id="d1" style="float:left;width:150px;">
asdqwe
</div>
<div id="d2" style="float:left;">
qwerty
</div>
<div id="d3" style="float:right;width:150px;">
poilkj
</div>

现在我想动态设置d2 div宽度,并使用jquery按照屏幕分辨率设置最大值。

我尝试jQuery('#d2').width(),但它只给我们实际保持宽度。

我想显示我的网页屏幕,如d1表示150px左起,d3表示150px表示正确,其余部分可用于d2。

请让我知道我们该怎么做????

7 个答案:

答案 0 :(得分:4)

默认情况下,<div>仅填充浮动时所需的空间。

你不能获得你需要的宽度,但你可以设置它:

$("#d2").width($(window).width() - $("#d1").width() - $("#d1").width);

警告:如果用户调整其窗口大小(或其他任何内容以更改视口大小),则需要更新此值。你可能想通过挂钩窗口调整大小事件来解决这个问题:

$(window).on("resize", function() {
    $("#d2").width($(window).width() - $("#d1").width() - $("#d1").width);
});

答案 1 :(得分:1)

entireScreenWidth = screen.width
d1Width = $("#d1").width()
d2Width = $("#d2").width()

$("#d3").width(entireScreenWidth-d1Width-d2Width)

答案 2 :(得分:0)

在您的场景中,您需要获得屏幕宽度并从屏幕宽度中减去#d1和#d3的宽度。此计算的宽度可以分配给#d2。

答案 3 :(得分:0)

您可以使用

获取视口宽度
var screenWidth = $( window ).width();

然后将#d2的宽度设置为:

$('#d2').css('width', screenWidth - 300);

答案 4 :(得分:0)

Math.max.apply(Math, $('#d2').map(function(){ return $(this).width(); }).get());

根据建议,我会打破这一点:

$('#d2').map(function(){
   return $(this).width();
}).get();

Math.max需要N个参数,所以你必须把它称为:Math.max(200,300,250,100,400),这是Math.max.apply片段所完成的。

答案 5 :(得分:0)

你应该试试这个

$( document ).ready( function(){
setMaxWidth();
$( window ).bind( "resize", setMaxWidth ); //Remove this if it's not needed. It will react when window changes size.

function setMaxWidth() {
$( "#d2" ).css( "maxWidth", ( $( window ).width() * 0.7 | 0 ) + "px" );
}

});

答案 6 :(得分:0)

如果你只是不浮动中间div,并将浮动的那个放在它之前,你将不需要任何Javascript,因为浏览器可以自己处理它。

<div id="d1" style="float:left;width:150px;">
asdqwe
</div>
<div id="d3" style="float:right;width:150px;">
poilkj
</div>
<div id="d2">
qwerty
</div>

除非你有没有告诉我们的要求,否则应该这样做。