[前端][CSS] 纯css实现纵向滚动固定表头与横向内容滚动

html-css023

[前端][CSS] 纯css实现纵向滚动固定表头与横向内容滚动,第1张

这次要实现的目标是类似这种,纵向滚动时表头固定,横向滚动时,表头跟着滚动

最基础的思路就是表头和内容是用两个表格来显示(图来自 https://zhuanlan.zhihu.com/p/33280304 ),关于怎么保存表头和内容列宽一致链接里这个文章里也有写就不另外说了。

纵向滚动是挺好实现的,我开始是在内容的表格外面套了一个div,之后设置 overflow-y:auto 就实现纵向滚动了。

但横向滚动呢?

首先想到的方案是在最外面的div,outer加上 overflow-x:auto

虽然这样横纵都能滚动了,但是横向滚动的时候纵向滚动条也被滚走了。

然后想到了是用js来同步,可以是可以的,但是还是想挣扎一下。

之后想到了fixed,发现如果表头设置为fixed无论横向滚动还是都会被固定在原地。

最后突然想到一个position的新属性,sticky

设置了 position: sticky ,在屏幕范围(viewport)时该元素的位置并不受到定位影响(设置是top、left等属性无效),当该元素的位置将要移出偏移范围时,定位又会变成fixed,根据设置的left、top等属性成固定位置的效果( https://www.cnblogs.com/s1nker/p/4835079.html )。

所以最后设置了表头

css:

就成功实现了想要的效果了。

不过sticky的兼容性也是要考虑一下的。

隐藏竖向滚动条

在子页面的<html>标签里加入以下格式:<htmlstyle="overflow:autooverflow-y:hidden">,

style="overflow:auto",当内容超出范围之后,就会自动有滚动条了。

设置div横向滚动条div<style="overflow:scroll"></div>

我们大家在浏览网页的时偶尔会看到很漂亮的各种颜色样式的滚动条,这就是通过css代码控制来实现的,于是本人搜集整理一番,这里和大家分享一下使用CSS设置滚动条颜色以及如何去掉滚动条的方法,需要的朋友可以参考下,很有用的

我们大家在浏览网页的时偶尔会看到很漂亮的各种颜色样式的滚动条,这就是通过css代码控制来实现的,于是本人搜集整理一番,这里和大家分享一下使用CSS设置滚动条颜色以及如何去掉滚动条的方法,需要的朋友可以参考下,很有用的

div { 

scrollbar-face-color: #fcfcfc 

scrollbar-highlight-color: #6c6c90 

scrollbar-shadow-color: #fcfcfc 

scrollbar-3dlight-color: #fcfcfc 

scrollbar-arrow-color: #240024 

scrollbar-track-color: #fcfcfc 

scrollbar-darkshadow-color: #48486c 

scrollbar-base-color: #fcfcfc 

}

滚动条样式主要涉及到如下CSS属性:

overflow属性: 检索或设置当对象的内容超过其指定高度及宽度时如何显示内容

overflow: auto在需要时内容会自动添加滚动条

overflow: scroll总是显示滚动条

overflow-x:

hidden禁止横向的滚动条

overflow-y: scroll总是显示纵向滚动条

width: 568pxwidth: 98%

设置区域的宽度[像素/百分比等等]

height: 120px设置区域的高度[像素/百分比等等]

<STYLE> 

BODY { 

SCROLLBAR-FACE-COLOR: #f892cc 

SCROLLBAR-HIGHLIGHT-COLOR: #f256c6 

SCROLLBAR-SHADOW-COLOR: #fd76c2 

SCROLLBAR-3DLIGHT-COLOR: #fd76c2 

SCROLLBAR-ARROW-COLOR: #fd76c2 

SCROLLBAR-TRACK-COLOR: #fd76c2 

SCROLLBAR-DARKSHADOW-COLOR: #f629b9 

SCROLLBAR-BASE-COLOR: #e9cfe0 

</STYLE>

SCROLLBAR-FACE-COLOR: 滚动条凸出部分的颜色

SCROLLBAR-HIGHLIGHT-COLOR: 滚动条空白部分的颜色

SCROLLBAR-SHADOW-COLOR: 立体滚动条阴影的颜色

SCROLLBAR-3DLIGHT-COLOR: 滚动条亮边的颜色

SCROLLBAR-ARROW-COLOR: 上下按钮上三角箭头的颜色

SCROLLBAR-TRACK-COLOR: 滚动条的背景颜色

SCROLLBAR-DARKSHADOW-COLOR: 滚动条强阴影的颜色

SCROLLBAR-BASE-COLOR:

滚动条的基本颜色

网页中去掉滚动条:

去掉横向滚动条:<body

style='overflow:scrolloverflow-x:hidden'>

去掉竖向滚动条:<body

style='overflow:scrolloverflow-y:hidden'>

两个都去掉:<body scroll="no">

框加中去滚动条在name=""后面加 scrolling="No"

1,Overflow内容溢出时的设置

overflow

水平及垂直方向内容溢出时的设置

overflow-x 水平方向内容溢出时的设置

overflow-y 垂直方向内容溢出时的设置

以上三个属性设置的值为visible、scroll、hidden、auto

visible

默认值。使用该值时,无论设置的"width"和"height"

的值是多少,其中的内容无论是否超出范围都将被强制显示。

hidden

效果与visible相反。任何超出"width"和"height"的内

容都会不可见。

scroll 无论内容是否超越范围,都将显示滚动条。

auto 当内容超出范围时,显示滚动条,否则不显示。

应用:

没有水平滚动条:

<div style="overflow-x:hidden">test</div>

没有垂直滚动条

<div style="overflow-y:hidden">test</div>

没有滚动条

<div

style="overflow-x:hiddenoverflow-y:hidden"

或style="overflow:hidden">test</div>

自动显示滚动条

<divstyle="height:100pxwidth:100pxoverflow:auto">test</div>

2,自己定义滚动条的颜色

我们一般默认的滚动条样式如下左图,右图是放大了1600倍的样子,我们可以看到滚动条有几种言责组合的,我给他们标了7个号,

分别注释在下面的css代码的后面了,注意css的注释代码是放在两个斜杠内的两个星号之间,如:

Body { 

scrollbar-arrow-color: #f4ae21 

scrollbar-face-color: #333 

scrollbar-3dlight-color: #666 

scrollbar-highlight-color: #666 

scrollbar-shadow-color: #999 

scrollbar-darkshadow-color: #666 

scrollbar-track-color: #666 

}