js css html

前端Table标签 表格固定行列,设置相同宽度单元格等自适应问题

2023-03-16  本文已影响0人  沃德麻鸭

平时工作中大多会引用官网封装好的表格组件,于是将基础标签的写法以及注意事项都忘记了,这里说明几个需要注意的点

1.设置表格td的宽度为相同宽度,只需要一个属性

table-layout:fixed;

设置了这个属性后,虽然每个格子的宽度一样,但还是可以单独对当前列的宽度进行设置哦

2.表格滚动条

平时使用表格标签过程中可能发现即使设置了最外层盒子的overflow hidden属性,表格依然整体展示在容器里面,挤到换行也不出滚动条,这是因为没有给表格设置宽度,默认表格的宽和容器一样,所以如果给表格设置的宽度超过了容器的宽度就会出现滚动条啦

3.滚动条的样式设置

这里只说最主要的属性,滚动条出现在哪个容器就给哪个容器设置,例如容器的类名为tableBox

.tableBox::-webkit-scrollbar{            display:block;  width:5px;    height:5px;      border:1px solid transparent; }    这里的值自己设置就好  设置滚动条的展示基础状态
.tableBox::-webkit-scrollbar-button{  display:none;    }    设置滚动条是否展示两侧的按钮
.tableBox::-webkit-scrollbar-thumb{  background:rgba(39,39,39,0.15);      border-radius:5px; }    设置滑动的按钮样式,颜色边框等
.tableBox::-webkit-scrollbar-trank{  background:rgba(39,39,39,0.15);      border-radius:5px; }  设置滑轨的背景颜色等

4.表格行列的固定

这里需要用到一个非常重要的属性position:sticky;也就是粘性定位,然后再设置top,left的具体位置就可以了,比如,我只想要固定表头和首列,那就可以在使用粘性定位的同时,给表头行一个top:0px;首列left:0px;  固定几行几列其实就根据具体情况复给相应的值就可以实现,都是一个道理。

table thead tr th{ position:sticky; top:0;} 表头固定在原地
table>tbody>tr>td:nth-child(1){  position:sticky;left:0; }  表体第一列都固定在原地

不要忘了行列的公共部分,也就是左上角的那一个格子

table>thead>tr>td:nth-child(1){ position:sticky; top:0px; left:0px;} 上下同时需要固定为0

除此之外还会出现问题

①层级不对,只需要提高首行和首列的层级即可

②调整层级后,只有文字固定在原地了,其实格子是固定住了,只是之前的格子颜色是设置给了tr,在滑动中滑动的格子会插在tr和当前固定的th或者td中间的,所以注意尽量把表格的颜色样式加给td或者th,这样背景随时都会铺在格子下面,下面的文字也就不会透过来了

5.表格边框设置

给table标签添加 属性 border=“1”  cellspacing=“0”  cellpadding=“0”  写在行内样式中就可以了


上一篇下一篇

猜你喜欢

热点阅读