gpt4 book ai didi

html - 定位页眉/页脚 "in viewport",中间有大表格

转载 作者:行者123 更新时间:2023-11-28 06:23:48 25 4
gpt4 key购买 nike

我正在尝试完成一个简单的页面布局,页面顶部有一个页眉区域,页面底部有一个页脚区域,中间有一个大表格,里面有很多列和很多的行。表格通常太大而不适合视口(viewport)(宽度和/或高度方面),因此页面滚动条几乎总是存在(这很好)。

我想要的是页眉和页脚应用了 max-width: 100% css 属性,因此它们占据视口(viewport)宽度的 100%。然后当用户滚动页面以查看表格时,我希望页眉和页脚(水平)留在视口(viewport)中。页眉和页脚在垂直位置很好,我不需要或不想将它们“粘贴”到视口(viewport)的顶部或底部。我只是想要这样,当您向右水平滚动时,页眉和页脚会留在 View 中,而不是滚出可视区域。

我真的想要一个 CSS 解决方案,但如果那不可能,那么 jQuery 解决方案也可以。

这是一个显示我的问题的 jsfiddle:https://jsfiddle.net/2krgecb4/

如果 fiddle 链接断开,这里是 HTML:

<body>
<div class="header">
My Page Header Section
</div>
<table>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
<tr><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td><td>X</td></tr>
</table>
<div class="footer">
My Page Footer Section
</div>
</body>

这是 CSS:

.header, .footer {
font-size: 2em;
text-align: center;
background-color: #ff9999;
max-width: 100%;
}

td {
min-width: 200px;
background-color: #9999ff;
}

编辑:也许更好的描述我想要的方式是说我希望页眉/页脚是内联元素,锁定到它们在 y 轴中的位置,但“锚定”在视口(viewport)。

最佳答案

经过几个小时的研究,我找不到任何方法来使用纯 CSS 获得我想要的东西。看起来一些客户端脚本是让它工作的唯一方法。

我制作了页眉和页脚 div 元素 position: relative;。这使 div 保持内联,并允许您将其从正常位置重新定位。

#header, #footer {
font-size: 2em;
text-align: center;
background-color: #ff9999;
max-width: 100%;
position: relative; /* KEY PROPERTY CHANGE */
}

td {
min-width: 200px;
height: 200px;
background-color: #9999ff;
}

然后使用一些脚本 (jQuery) 在视口(viewport)滚动时修改 left 位置属性。

$(window).scroll(function () {
$('#header').css({
'left': $(this).scrollLeft()
});
$('#footer').css({
'left': $(this).scrollLeft()
});
});

如果你想看它的实际效果,这里是 jsfiddle:

https://jsfiddle.net/2krgecb4/4/

注意:为了在我的移动浏览器中运行此功能,我必须禁用缩放。

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">

如果有人有的话,仍然对纯 CSS 解决方案感兴趣!

关于html - 定位页眉/页脚 "in viewport",中间有大表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35399008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com