【问题标题】:Use jQuery to fetch width of div x and apply same width to div y使用 jQuery 获取 div x 的宽度并将相同的宽度应用于 div y
【发布时间】:2012-09-07 21:54:20
【问题描述】:

我的问题是假设性的,我还没有生成的代码可以使用。

我有一个带有中心网格的网页,使用 jQuery Masonry 排列。我的问题是美学问题之一。因为砌体使网格居中,这是有目的的,所以网格通常比父容器薄得多,因此它与页眉和页脚中的元素对齐不太好。类似地,有时网格被允许扩展到超出标题的宽度,这看起来更糟。

我已经研究过使用脚本来调整流体列的大小,尽管我的网格包含图像并且结果并不好。我现在在想,也许有一个小脚本可以随时检测和获取砌体容器的宽度,#grid(宽度当然是动态的,并且内联显示)例如<div id="grid" class="masonry" style="height: 408px; position: relative; width: 1368px;">,然后将相同的宽度应用于#header#footer 以及任何其他需要使整个事物根据网格宽度排列的内容。

有什么建议吗?提前致谢

【问题讨论】:

    标签: jquery css jquery-masonry


    【解决方案1】:

    当然

    var current_width = $("#grid").width();
    $("#footer, #header").width(current_width);
    

    $("#footer, #header").width($("#grid").width());
    

    现在当页面被调整大小时(如果页面被缩放也会发生?)运行如下代码:

    $(document).ready(function() {
        $(window).resize(function() {
            $("#footer, #header").width($("#grid").width());
        });
    });
    

    【讨论】:

    • 啊,酷。尽管标题似乎没有像网格那样有效地调整大小,但它似乎在部分功能上起作用。我的意思是,当你实际拖动窗口来调整它的大小时,标题宽度不会更新,它会保留它以前的大小。有任何想法吗?否则我可以玩一下它,我想我可以让它工作。
    • 你的意思是它根本没有得到新的宽度?它真的有 id=header 吗?试着把它分成两行? $("#footer").width($("#grid").width()); $("#header").width($("#grid").width());还是使用变量?
    • 不,它确实有效,它获取网格的宽度并将其应用于标题,实际上选择器是顶部内部的,但我想这没有区别,我更新了脚本以反映那。我想我会尝试在砌体网格中包含标题!谢谢
    • 对,另一种解决方案要求您更改 (html) 布局,以便这些组件位于正确的容器中,下次请给我们一个 jsfiddle,以便我们查看实际的源代码部分对应的css、javascript和html =)
    • 确定下次我会有代码。感谢您抽出宝贵时间提供帮助:)
    【解决方案2】:

    您也可以这样做:只需将标题放入#container 中,就像this fiddle 一样,蓝色框居中并根据需要调整大小。也许这就是你所追求的。

    【讨论】:

    • 是的,我之前尝试过,但实际上它会对我正在使用的 css、标记和另一个脚本进行一些大的更改,这一切似乎让我当时没有这个想法:) 无论如何,我想我会尝试这个解决方案。谢谢
    • 当然,试一试。这样做的好处显然是有一个跨设备的很好的集中解决方案。
    • 是的,你是对的,看过演示后,它看起来像是一种有用的缩小方法。感谢您的建议:)
    猜你喜欢
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多