Javascript 在页面加载时调整元素大小时jQuery函数不一致

Javascript 在页面加载时调整元素大小时jQuery函数不一致,javascript,jquery,Javascript,Jquery,啊! 我构建了一个小脚本来检查页面加载时左侧边距的大小,调整div的大小以填充它,并将header div更改为float 代码如下: function buildHeader() { var containerMarginLeft = $(".container_16:not(:first)").css("margin-left"); var headerHeight = $("#header").height(); $(

啊! 我构建了一个小脚本来检查页面加载时左侧边距的大小,调整div的大小以填充它,并将header div更改为float

代码如下:

function buildHeader() {
            var containerMarginLeft = $(".container_16:not(:first)").css("margin-left");
            var headerHeight = $("#header").height();
            $("#stripe").width(containerMarginLeft).height(headerHeight).css("float", "left");
            $(".container_16:first").css("float", "left");
            $("#header").css("margin-left", 0).width(950);
        }

        $(document).ready(function(){   
            // Manipulate layout for the first time
            buildHeader();
            // Manipulate layout when window is resized
            var resizeTimer = null;
            $(window).bind('resize', function() {
                if (resizeTimer) clearTimeout(resizeTimer);
                      resizeTimer = setTimeout(buildHeader, 100);
                   });
        });
这里有一个演示:(它创建了一条向左延伸的线)。 现在,它可以在webkit浏览器中工作。它在Mozilla中不起作用,我甚至还没有在IE中尝试过。 有人知道为什么它在Mozilla中不起作用吗?我觉得这可能与CSS有关

$(".container_16:not(:first)").css("margin-left");
无论窗口有多宽,这一行在Firefox中给出的结果都是“0px”。但是,Safari中的Firebug Lite会根据窗口的宽度显示此值

问题似乎出在语句的.css('margin-left')部分,因为$(“.container_16:not(:first)”)在两个浏览器中返回相同的元素。事实上,Firefox中的Firebug显示该元素的计算样式为marginLeft和marginRight的“0px”,但在Safari中这不是零

正如预期的那样,将“margin left”更改为“marginLeft”没有任何区别,也不会直接访问属性,例如$(“.container_16:not(:first)”[0].style.marginLeft,因为Firefox首先计算错误


很抱歉,我没有答案,但希望这将引导您朝着正确的方向前进。但对我来说,我会尝试仅使用CSS来调整布局,求助于JavaScript修复只是最后的手段。

在Firefox 3.0中,与Safari 4.0中的结果相比,这一行有点太短了,Safari 4.0中的这一行一直向右。那么你的问题具体是什么?你在寻找解决办法吗?或者只是验证你提到的行为?你可以试着混合一张右边浮动的图片和一张背景图片,祈祷他们排成一行……啊哈,那么它在Windows上的Firefox3中可以工作了?它在Mac版本上不可用。我已经看到了你所描述的,这不是一个大问题,不管出于什么原因,它大约是50px太短了。知道为什么吗?在Mac FF3上,行div不在那里,标题只是向左浮动。我用Firebug查看了一下,在Mac的FF3中,它没有给条带div一个合适的宽度,它设置为0px。有什么想法吗?条纹功能在IE中运行得很好,页面的其余部分有点混乱,但这正是我在IE中所期望的(ps通过FF插件运行IE)。感谢您为我缩小范围!我曾尝试使用CSS作为解决方案,但我有一个非常窄的窗口来让它工作,在CSS中获得相同的效果似乎要困难得多。我刚刚在FF3 for Windows中测试了该站点,它或多或少运行得很好,所以它似乎只是FF for Mac的一个问题。非常奇怪!