我在操作网站上的内容时经常使用的做法是绝对定位左侧(或有时顶部)值约为-2000像素的元素,以确保它不会在屏幕上显示。
现在,我知道我可以使用display: none
使我的对象消失,但有些元素在不显示时不能很好用,有时我需要引用一些属性,比如它的宽度,例如,display
属性设置为none
时无法访问。所以我经常将元素定位,使其隐藏在屏幕上。
我的假设是:
由于对象未在屏幕上呈现,因此当我使用left: 2000px
而不是left: 200000000px
时,网站的效果应该没有差异。
所以我假设如果使用以下代码,两个页面的性能没有区别:
第一页:
<div style="height:100px; width:100px; left:-2000px"></div>
第二页:
<div style="height:100px; width:100px; left:-200000000px"></div>
我的假设是否正确?如果该元素是两个给定页面之间的唯一差异,那么性能是否会有任何差异(无论多小)?
*也就是说加载时间,页面大小,响应能力或任何其他性能指标
=================================
我已根据Michael的建议对页面进行了分析,并发现以下内容:Spark说正确的加载时间会受到文件大小的影响。文件大小有四个字节的差异,这相当于加载时间约4ms的差异。
其次,IE和Firefox正确解释了我难以置信的大左值,但Chrome并未正确解释。 Chrome似乎无法识别大于1.35亿像素的值。然而,鉴于性能差异似乎很小,我无法推测为什么他们会决定将其限制在如此任意的数量。
答案 0 :(得分:6)
您可以尝试使用Firebug(或Chrome / Safari开发人员工具)来分析页面加载时间,但如果有任何差异,我会非常惊讶。浏览器关心元素的x,y,z坐标。屏幕上或屏幕外是否无关紧要;它们仍然只是三个离散的数据点。
答案 1 :(得分:3)
当你说性能时,你的意思是加载时间?
如果你可以测量左边的字节差异,可以实现CSS的加载时间:-2000px vs left:-2000000px然后是,加载后者需要更长的时间,但这与它“无关”屏幕外“只是CSS大小。
所以很长的答案不是将它关闭屏幕使没有区别你仍然需要加载它,但是值越大,加载所需的时间越长。在这种情况下,它是如此之小,它不是一个真正的问题。
例如加载时间......
left:-2000px = Input: 0.021KB, Output: 0.019KB
left:-2000000px = Input: 0.025KB, Output: 0.024KB