css固定表头、行头样式代码

yizhihongxing

要实现CSS固定表头、行头样式,一般采用CSS中的position属性。下面是完整攻略:

样式代码

table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}
thead, tbody, tr, td, th { 
    display: block;
}
tr:after {
    content: "";
    display: block;
    visibility: hidden;
    height: 0;
    clear: both;
}
thead th {
    /* 固定表头样式 */
    height: 30px;
}
tbody {
    height: 400px; /* 限制tbody高度 */
    overflow-y: auto; /* 上下滚动条 */
}
tbody td, thead th {
    width: 200px; /* 单元格宽度 */
    float: left;
}
tbody tr:nth-child(even) {
    background: #e9e9e9; /* 列表隔行变色 */
}

实现思路

  1. 将表头中的thead和其它table元素分别设置为display:block,使它们变为块级元素,从而使单元格(td/th)呈窄矩形堆叠在一起,前提是单元格必须先设置为块级元素。因为块级元素只从新行开始,并占据一定宽度,使每一个单元格都单独占据一行。

  2. 设置tr:after元素清除浮动,由于块级元素的特性,这样单元格的位置在一行中沿着块级元素交替出现,避免了在单元格过宽时出现不好看的堆积现象。

  3. 设置tbody的高度以及overflow-y属性为auto,使其出现垂直滚动条,这样在列表过长时可以通过滚动条来查看。

  4. 固定表头用的是thead th,这样在普通的表格中只会有tbody出现滚动,表头部分会固定在列表上面。同时需要设置表头高度,否则即使固定了表头,也会出现浮动元素的异常。

示例说明

以下是两个示例:

示例1

姓名 性别 年龄 城市
张三 25 北京
李四 30 上海
王五 28 深圳
赵六 33 广州

对应的CSS代码为:

table {
  width: 100%;
  border-collapse: collapse;
}

thead {
  background-color: #ddd;
}

thead th {
  height: 50px;
  text-align: center;
}

thead, tbody {
  display: block;
}

tbody {
  height: 300px;
  overflow-y: auto;
}

tbody tr:nth-child(even) {
  background-color: #f2f2f2;
}

tr:before {
  content: ' ';
  display: block;
  visibility: hidden;
  height: 50px;
}

td {
  text-align: center;
  width:100px;
  height: 25px;
  display: inline-block;
  border:1px solid #999;
}

示例2

另一个示例,下面是一张带有行头的表格,其中第一列固定不动,而第一行和第一列同时固定。

A B C D
1 $160 $160 $160 $160
2 $160 $160 $160 $160
3 $160 $160 $160 $160
4 $160 $160 $160 $160
5 $160 $160 $160 $160

对应的CSS代码为:

table {
  border-collapse: collapse;
  width: 100%;
}

td {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: center;
}

th {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: left;
}

tbody {
  height: 300px;
  overflow-y: auto;
  width: 100%;
}

thead tr:first-child th:first-child {
  position: sticky;
  left: 0;
  background-color: #f2f2f2;
}

thead tr:first-child > th:first-child {
  position: sticky;
  top: 0;
  background-color: #f2f2f2;
}

th:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  background-color: #f2f2f2;
}

总之,以上是两个示例,可以改变表格(包含列头和行头)的固定位置,适应不同屏幕大小,呈现更好的用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css固定表头、行头样式代码 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • yii gridview实现时间段筛选功能

    下面是“yii gridview实现时间段筛选功能”的完整攻略。 一、准备工作 首先,我们需要在后台控制器中定义一个名为search()的方法来进行筛选。在该方法中,我们需要通过传递的参数获取目标时间段的开始时间和结束时间,以便进行筛选。 public function actionIndex() { $searchModel = new ModelSear…

    css 2023年6月10日
    00
  • Vue内置组件Teleport的使用

    当我们在开发Vue应用时,可能遇到需要将一个组件移动到DOM树的另一个位置的场景,这时候我们就可以使用Vue 3.0中新增的Teleport内置组件来实现。 Teleport组件 Vue 3.0中新增了Teleport组件,用来将一个组件的内容移动到指定的DOM元素处,从而解决了父组件限制了子组件的显示位置的问题。 基本用法 首先,在需要挪动的组件中,我们需…

    css 2023年6月10日
    00
  • javascript代码优化的8点总结

    让我们开始。 JavaScript代码优化的8点总结 1. 减少全局变量 全局变量的声明会增加作用域链的长度,导致代码执行速度变慢。为了减少全局变量的数量,可以将变量封装在函数闭包中,只在需要时访问。 示例: (function() { var myVariable = ‘hello’; function myFunction() { var myInner…

    css 2023年6月10日
    00
  • 淘宝店铺导航装修怎么编辑?淘宝新旺铺导航CSS代码使用修改技巧

    淘宝店铺导航装修怎么编辑? 淘宝店铺导航是指在淘宝店铺首页上方的导航栏,可以帮助买家快速找到自己需要的商品。淘宝店铺导航可以通过装修来进行编辑,包括添加、删除、修改导航栏的链接和样式等。本攻略将详细讲解淘宝店铺导航装修的编辑方法,包括基本原理、使用方法和示例说明。 1. 基本原理 淘宝店铺导航的编辑需要使用淘宝店铺装修工具。在淘宝店铺装修工具中,可以通过添加…

    css 2023年5月18日
    00
  • JavaScript实现点击按钮切换网页背景色的方法

    下面是关于“JavaScript实现点击按钮切换网页背景色的方法”的完整攻略: 1. HTML结构 首先,在HTML页面中需要添加一个按钮和一个div元素,用于显示网页的背景色。 <!DOCTYPE html> <html> <head> <title>JavaScript实现点击按钮切换网页背景色</t…

    css 2023年6月9日
    00
  • 详解区块链黑客松啥意思?如何参与以及其价值何在?

    详解区块链黑客松是什么? 区块链黑客松(Blockchain Hackathon)是一个以解决区块链技术问题为目的的比赛。黑客松通常持续数天,吸引了来自不同领域的开发者、设计师、创业者和投资者等参赛者,共同探讨和开发新的技术或应用。 对于区块链黑客松而言,主要的目标是鼓励参赛者合作创造出全新的、具有实际应用价值的智能合约或应用程序。这些应用程序可能用于促进更…

    css 2023年6月10日
    00
  • css中:last-child不生效的解决方法

    CSS 中的 :last-child 伪类选择器是指选择一组元素中的最后一个子元素,可以用于设置最后一个子元素的样式。但是有时候会出现 :last-child 伪类选择器不生效的情况,接下来就来讲解一下解决方法。 解决方法 1. 确认选择器的使用位置 当我们在网页中使用 :last-child 伪类选择器时,需要注意选择器的使用位置。last-child 选…

    css 2023年6月9日
    00
  • 拖动table标题实现改变td的大小(css+js代码)

    实现拖动表格标题来改变表格单元格的大小需要使用HTML、CSS和JavaScript进行组合实现。 HTML代码 首先,我们需要使用HTML创建一个表格,每个单元格都包含一个div元素,用于拖动边界。 <table> <thead> <tr> <th><div class="resize&quo…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部