javascript - 固定顶部 div 后的可滚动 div

标签 javascript jquery html css

我需要构建一个带有固定标题和可滚动列表的移动 html 页面。 header 包含一个 Logo ,该 Logo 的大小与容器的尺寸有关。

问题是列表的第一个元素位于标题下方,并且我没有定义高度,因为标题具有流动高度。

HTML:

<header>
    <figure>
        <img src="images/logo.png" />
    </figure>
</header>

<main>
    <ul id="shops-list">
        <li>Company #1</li>
        <li>Company #2</li>
    </ul>
</main>

CSS:

// global definition for fluid images
img {
    max-width: 100%;
}

header {
    width: 100%;
    position: fixed;
    top: 0px;
}

header figure {
    width: 100%;
    padding: 5px 0 5px 0;
    text-align: center;
}

header figure img {
    max-width: 100px;
}

main { 
    ???
}

编辑:

fiddle :https://jsfiddle.net/q42yaaz4/2/

最佳答案

你可以使用纯 JS 来做到这一点,因为你的 header height 不固定。 如果您将 id 添加到 headermain 中,效果会更好。假设您已添加该内容。

var h = document.getElementById("header").offsetHeight;
document.getElementById("main").style.marginTop = h+"px";

您可以使用此JS在main上创建一个margin-top,它等于header的可见height

更新

Fiddle ,我添加了以下代码,以配合 mainmargin-top 调整窗口大小,因为您正在设计一个流畅的布局。

var el = document.getElementById("header");
document.getElementById("main").style.marginTop = el.offsetHeight+"px";

window.onresize = function() {
document.getElementById("main").style.marginTop = el.offsetHeight+"px";
};

尝试调整 fiddle 窗口的大小,然后看到 margin-top 立即更新,以便 main 始终出现在 header 下方

关于javascript - 固定顶部 div 后的可滚动 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32229826/

相关文章:

html - 在 iOS 上禁用双击缩放。用户可扩展性不能完全发挥作用

javascript - 使 div 满屏,但显示页面滚动条

javascript - 在基础中使表单 javascript 工作时遇到问题

javascript - AngularJS 中的多重自动完成 - PHP (Laravel)

javascript - 分页数字的错误进度

javascript - Highcharts (Highstock) : Get data from external CSV, 无法正确显示日期

php - 如何: HTML table row click results in POST form linking to subsequent page

javascript - .on() 无法在 ajax 加载的页面上工作

javascript - 不使用 swfobject.embedSWF 从 youtube API 获取状态

c# - 从页面 MVC4 读取 HTML 元素