- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道,stackoverflow 上至少有 3 打这样的问题,但我仍然无法做到这一点:
一个简单的表格,其中 thead 粘贴/固定在顶部,并且 tbody 滚动。在过去的几天里我尝试了很多,现在我最终在这里呼喊着寻求帮助。
解决方案应该适用于 IE8+ 和最新的 FF、Chrome 和 Safari。与其他“可能的重复项(如 this one)的区别在于,我不想想要使用两个嵌套表或 jQuery(不过普通的 javascript 就可以了)。
我想要的演示:
http://www.imaputz.com/cssStuff/bigFourVersion.html .
问题是它在 IE 中不起作用,我可以使用一些 JS。
最佳答案
好的,我明白了:
您需要将表格包装在两个 DIV 中:
<div class="outerDIV">
<div class="innerDIV">
<table></table>
</div>
</div>
DIV 的 CSS 是这样的:
.outerDIV {
position: relative;
padding-top: 20px; //height of your thead
}
.innerDIV {
overflow-y: auto;
height: 200px; //the actual scrolling container
}
原因是,您基本上使内部 DIV 可滚动,并通过将 THEAD 粘贴到外部 DIV 来将其拉出。
现在将thead
粘贴到outerDIV上
table thead {
display: block;
position: absolute;
top: 0;
left: 0;
}
tbody
还需要有 display: block
。
现在您会注意到滚动可以工作,但宽度完全困惑。这就是 Javascript 的用武之地。您可以自行选择分配方式。我自己给表中的 TH 指定了固定宽度,并构建了一个简单的脚本,该脚本获取宽度并将它们分配给 tbody
中的第一个 TD 行。
这样的事情应该有效:
function scrollingTableSetThWidth(tableId)
{
var table = document.getElementById(tableId);
ths = table.getElementsByTagName('th');
tds = table.getElementsByTagName('td');
if(ths.length > 0) {
for(i=0; i < ths.length; i++) {
tds[i].style.width = getCurrentComputedStyle(ths[i], 'width');
}
}
}
function getCurrentComputedStyle(element, attribute)
{
var attributeValue;
if (window.getComputedStyle)
{ // class A browsers
var styledeclaration = document.defaultView.getComputedStyle(element, null);
attributeValue = styledeclaration.getPropertyValue(attribute);
} else if (element.currentStyle) { // IE
attributeValue = element.currentStyle[vclToCamelCases(attribute)];
}
return attributeValue;
}
使用 jQuery 当然这会容易得多,但目前我不允许在这个项目中使用第三方库。
关于sticky - 如何: Fixed Table Header with ONE table (no jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499973/
我有一个父容器。父容器有 2 个带有粘性页眉和页脚的子容器。问题在于,当用户滚动并到达页脚区域时,粘性页眉的位置会发生变化,即它会与其他可滚动内容一起上升。我为演示创建了一个 fiddle 。 htt
我有一个应用文件,其中包含我自己的自定义应用栏和不同的页面组件: const styles = theme => ({ appBar: { width:'100%', },
这是我的 jsFiddle带有完整的代码示例。 我正在尝试实现 sticky footer .如您所见,我的登录表单非常简短。尽管如此,页脚应该一直固定到页面底部。我试过: .footer {
我有一个这样的 div : HTML Title
如何让我的粘性导航菜单在粘到屏幕顶部后专门使用 GetUIKit 框架更改背景颜色(即蓝色到白色)? 这是我的代码: wo
我被困在这个问题上有一段时间了,我想我会分享这个position: sticky + flexbox gotcha: 我的粘性 div 工作正常,直到我将我的 View 切换到一个 flex 盒容器,
如果你打开这个 Fiddle https://jsfiddle.net/17uwnsq6/4/在 Safari(12.1.2,但应该适用于所有最新版本)中并开始向下滚动白色可滚动区域,起初粘性“标题”
我在我的网页上使用 jquery.sticky.js。 Div 工作正常,即粘性,但我需要在页脚之前停止 div。 我使用下面的代码来粘性 DIV jQuery(文档).ready(function(
使用 position:sticky 将此代码添加到我的粘性元素 var $sticky = $('.grid-container .sticky'), $stickyTo = $('.grid-
我正在努力实现一些我不确定是否可能实现的事情。请注意,我正在寻找纯 CSS 解决方案,我知道我可以用 JS 解决这个问题,但我不想这样做。 考虑以下笔: https://codepen.io/fchr
我向我的网上商店添加了一个粘性 header ,它适用于 FF、Chrome、Edge。 在 Safari(Windows 10)中执行 JavaScript, header 被固定和转换 - 但不可
我遇到过这两个用于 node js 的粘性 session 库 https://github.com/indutny/sticky-session https://github.com/wzrdtal
WordPress - 元素。尝试优化代码时出了点问题,现在我在页面的第一部分上方有一个巨大的空白空间,我正试图摆脱它。我是新手,正在使用 Elementor,所以我只能使用自定义 CSS。问题出现在
我怎样才能让 Foundation 的粘性元素只粘在小断点上? data-sticky-on="small"适用于小及以上 最佳答案 对于那些有兴趣的人。我在使用 sass 时找到了这个解决方案。 /
我想创建网格布局,我想搁置以坚持 top: 0并填充所有剩余高度,例如100% 的高度,当我向下滚动时,我需要将旁边的高度更改为 100% 减去页脚高度。没有JS可以做到吗? * { paddin
我正在为一个 friend 制作一个网站,我想将导航栏设为粘性。这是一个例子:http://www.w3schools.com/html/default.asp .我想要一张图片,其中标题在示例中。
我们的页面上有一个粘性侧面板,使用以下非常简单的 CSS 实现: position: fixed; top:62px; bottom:10px; top 和 bottom 属性创建所需的边距。 问题在
我正在使用 几乎 纯 css,(仅在 css 中执行此操作 不是 要求)背景图像和相邻的选择器用于呈现独特的人类可读的页面当用户将鼠标悬停在水平堆叠的图像上时(在页面右侧,每个图像都使用顺序后缀的类名
如果您不知道 position:sticky 是什么,请观看这个 20 秒长的视频:https://www.youtube.com/watch?v=jA67eda5i-A . 这个 CSS 功能在
我已将一个元素设置为粘性,但我没有定义元素应保持粘性的区域。当前区域不是我选择的,而是在我应用 position:sticky 时自动定义的。显然,我想完全控制我的粘性元素用作事件区域的空间,并且我想
我是一名优秀的程序员,十分优秀!