jQuery – 通过从窗口大小中减去像素来计算元素宽度

我的目标是通过从窗口大小减去200px来计算固定定位元素的宽度(顶部:0;左:200px;),以便它适合视口的其余部分。 因此我使用了以下代码,但遗憾的是它不起作用。 希望你们中的某些人可以帮助我!

$(function() { width = ($(window).width() - 100); $("div").css("width", width); })​; 

实际上,您不需要依赖jQuery。 通过在该元素上声明right: 0 ,有一个简单的CSS技巧来完成这项工作。 它会强制它自然地一直延伸到视口的右边界。

 div { position: fixed; top: 0; left: 200px; right: 0; } 

请看这里的小提琴: http : //jsfiddle.net/teddyrised/2Fhue/

更新1: OP已经提供了他自己的小提琴,所以这里是应用了修复的那个: http : //jsfiddle.net/teddyrised/w555h/2/ 。 我也冒昧地删除height: 100%并使用bottom: 0代替,这表明与使用位置坐标强制拉伸元素的维度相同的概念:)

更新2: OP已经请求了一个基于jQuery的解决方案(打败我为什么,但无论如何……),以及它是如何工作的 – 我们在$(window)上触发resize事件时触发的匿名函数中执行宽度计算$(window)对象。 第二个.resize()事件被链接,以便在DOM就绪时触发。

 $(function() { $(window).resize(function() { var width = $(this).width() - 200; $("#content").css("width", width); }).resize(); }); 

http://jsfiddle.net/teddyrised/w555h/4/

评论:我通常会尝试避免使用jQuery(或JS)这样的目的,因为CSS可以很容易地使用。 这是因为通过计算视口宽度,您还必须监听窗口的.resize()事件,这会使事情变得复杂。