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

要实现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日

相关文章

  • Vue中的基础过渡动画及实现原理解析

    对于“Vue中的基础过渡动画及实现原理解析”的完整攻略,我会分为以下四个部分进行详细讲解。 一、动画介绍 在Vue中,你可以使用过渡动画来实现页面元素的动态效果。通过过渡动画,你可以让页面元素在增加、删除或更新时呈现出渐进式的动画效果。 Vue中提供了<transition>组件作为过渡动画的载体。通过在该组件中配置不同的过渡模式,你可以实现不同…

    css 2023年6月10日
    00
  • CSS3实现各种图形的示例代码

    那我来给你详细讲解一下CSS3实现各种图形的示例代码的攻略。 准备工作 在开始实现各种图形之前,我们需要确保在HTML文件中引用了CSS文件,这里我们可以通过以下代码引入: <link rel="stylesheet" href="style.css"> 接着我们需要定义一些基础的CSS样式,比如背景色、字…

    css 2023年6月10日
    00
  • CSS字体中英文名称对照表 CSS常用中文字体英文名称对照表

    CSS字体中英文名称对照表(CSS font-family)指的是在CSS样式中用于控制文字字体的属性。在CSS中,我们可以使用字体名称、字体系列、或者带有自描述性的通用性字体系列来定义字体样式。 下面是常用的英文字体名称和它们对应的中文字体名称: 英文(English) 中文(Chinese) Arial 宋体(SimSun)、黑体(SimHei) Tim…

    css 2023年6月9日
    00
  • Bootstrap CSS布局之列表

    以下是Bootstrap CSS布局之列表的详细攻略。 什么是Bootstrap CSS布局之列表? Bootstrap CSS布局之列表是指使用Bootstrap框架中的列表组件进行页面布局的一种方法。Bootstrap提供了多种列表样式,可以快速创建符合设计规范的列表。 如何使用Bootstrap CSS布局之列表? 下面我们来介绍如何使用Bootstr…

    css 2023年6月10日
    00
  • 使用CSS的table-cell属性实现左图右文的排版方法详解

    接下来我来详细讲解一下怎样使用CSS的table-cell属性实现左图右文的排版方法,其中包含两个示例。 1. 什么是table-cell属性 table-cell是一种CSS属性,它用于设置元素的布局方式。当我们将一个元素的display属性设置为table-cell时,它就会像用<td>标签所定义的单元格一样进行布局,即元素会以表格的形式进行…

    css 2023年6月10日
    00
  • 编写HTML和CSS的6种最有效的方法

    当我们编写 HTML 和 CSS 时,有许多不同的方法可供使用。然而,一些方法比其他方法更有效,并且可以更好地帮助我们编写清晰、可扩展、可维护的代码。在本文中,我们将讨论编写 HTML 和 CSS 的六种最有效的方法,并提供一些示例来说明这些方法的用法。 1. 使用语义化的 HTML 语义化 HTML 是指将 HTML 标记分配到正确的含义,而不仅仅是使用最…

    css 2023年6月9日
    00
  • 程序设计HTML5 Canvas API

    程序设计 HTML5 Canvas API 是现代 Web 开发学习的重点,因为它极大地扩展了 Web 开发人员可以使用的多媒体引擎范围。Canvas API 可以让你绘制和动态生成图形,包括位图和矢量图,图像效果等。在本篇文章中,详细讲解程序设计 HTML5 Canvas API 的完整攻略。 什么是 Canvas API Canvas API 是 HTM…

    css 2023年6月10日
    00
  • CSS实现背景图片全屏铺满自适应的3种方式

    当我们想要将背景图片全屏铺满屏幕时,可以通过CSS来实现。以下是3种实现方法及示例说明: 方法一:background-size + background-position 这种方法使用了两个CSS属性:background-size和background-position,可以将背景图片缩放并调整其位置以铺满屏幕,并自适应不同分辨率。 body { bac…

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