编程笔记 html5&css&js 050 CSS表格2-1

编程笔记 html5&css&js 050 CSS表格2-1

使用 CSS 可以极大地改善 HTML 表格的外观。

一、表格边框

如需在 CSS 中设置表格边框,请使用 border 属性。

下例为 <table>、<th> 和 <td> 元素规定了黑色边框:

复制代码
table, th, td {
  border: 1px solid black;
}

二、全宽表格

在某些情况下,上表似乎很小。如果您需要一个可以覆盖整个屏幕(全宽)的表格,请为 <table> 元素添加 width: 100%:

复制代码
table {
  width: 100%;
}

双边框

请注意上面的表格有双边框。这是因为表格和 th、td 元素都有单独的边框。

如需删除双边框,请看下面的例子。

三、合并表格边框

border-collapse 属性设置是否将表格边框折叠为单一边框:

复制代码
table {
  border-collapse: collapse;
}
table, th, td {
  border: 1px solid black;
}

如果只希望表格周围有边框,则仅需为 <table> 指定 border 属性:

复制代码
table {
  border: 1px solid black;
}

四、表格宽度和高度

表格的宽度和高度由 width 和 height 属性定义。

下例将表的宽度设置为 100%,将 <th> 元素的高度设置为 50px:

复制代码
table {
  width: 100%;
}
th {
  height: 50px;
}

要创建仅占页面一半的表,请使用 width: 50%:

复制代码
table {
  width: 50%;
}
th {
  height: 70px;
}

五、水平对齐

text-align 属性设置 <th> 或 <td> 中内容的水平对齐方式(左、右或居中)。

默认情况下,<th> 元素的内容居中对齐,而 <td> 元素的内容左对齐。

要使 <td> 元素的内容也居中对齐,请使用 text-align: center:

复制代码
th {
  text-align: center;
}

文本左对齐:

复制代码
th {
  text-align: left;
}

六、垂直对齐

vertical-align 属性设置 <th> 或 <td> 中内容的垂直对齐方式(上、下或居中)。默认情况下,表中内容的垂直对齐是居中(<th> 和 <td> 元素都是)。下例将 <td> 元素的垂直文本对齐方式设置为下对齐:

复制代码
td {
  height: 50px;
  vertical-align: bottom;
}

七、表格内边距

如需控制边框和表格内容之间的间距,请在 <td> 和 <th> 元素上使用 padding 属性:

复制代码
th, td {
  padding: 15px;
  text-align: left;
}

水平分隔线

向 <th> 和 <td> 添加 border-bottom 属性,以实现水平分隔线:

复制代码
th, td {
  border-bottom: 1px solid #ddd;
}

八、可悬停表格

在 <tr> 元素上使用 :hover 选择器,以突出显示鼠标悬停时的表格行:

复制代码
tr:hover {background-color: #f5f5f5;}

九、条状表格

为了实现斑马纹表格效果,请使用 nth-child() 选择器,并为所有偶数(或奇数)表行添加 background-color:

复制代码
tr:nth-child(even) {background-color: #f2f2f2;}

十、表格颜色

下例指定了 <th> 元素的背景颜色和文本颜色:

复制代码
th {
  background-color: #4CAF50;
  color: white;
}

十一、响应式表格

如果屏幕太小而无法显示全部内容,则响应式表格会显示水平滚动条:

在 <table> 元素周围添加带有 overflow-x:auto 的容器元素(例如 <div>),以实现响应式效果:

复制代码
<div style="overflow-x:auto;">
<table>
... table content ...
</table>
</div>

十二、CSS 表格属性

复制代码
属性	描述
border	简写属性。在一条声明中设置所有边框属性。
border-collapse	规定是否应折叠表格边框。
border-spacing	规定相邻单元格之间的边框的距离。
caption-side	规定表格标题的位置。
empty-cells	规定是否在表格中的空白单元格上显示边框和背景。
table-layout	设置用于表格的布局算法。

十三、练习

复制代码
<!DOCTYPE html>
<html lang="zh-cn">
   <head>
      <title>css列表 编程笔记 html5&css&js</title>
      <meta charset="utf-8" />
      <style>
         body {
            color: cyan;
            background-color: teal;
         }
         #customers {
            border-collapse: collapse;
            width: 90%;
            margin: 50px auto;
         }
         #customers td,
         #customers th {
            border: 1px solid #ddd;
            padding: 8px;
         }
         #customers tr:nth-child(even) {
            background-color: #f2f2f2;
         }
         #customers tr:hover {
            background-color: #ddd;
         }
         #customers th {
            padding-top: 12px;
            padding-bottom: 12px;
            text-align: left;
            background-color: #4caf50;
            color: white;
         }
      </style>
   </head>
   <body>
      <table id="customers">
         <tr>
            <th>课节</th>
            <th>星期一</th>
            <th>星期二</th>
            <th>星期三</th>
            <th>星期四</th>
            <th>星期五</th>
            <th>星期六</th>
            <th>星期日</th>
         </tr>
         <tr>
            <td>第一节</td>
            <td>语文</td>
            <td>数学</td>
            <td>科学</td>
            <td>外语</td>
            <td>数学</td>
            <td></td>
            <td></td>
         </tr>
         <tr>
            <td>第二节</td>
            <td>语文</td>
            <td>数学</td>
            <td>科学</td>
            <td>外语</td>
            <td>数学</td>
            <td></td>
            <td></td>
         </tr>
         <tr>
            <td>第三节</td>
            <td>科学</td>
            <td>数学</td>
            <td>语文</td>
            <td>外语</td>
            <td>政治</td>
            <td>活动</td>
            <td></td>
         </tr>
         <tr>
            <td>第四节</td>
            <td>科学</td>
            <td>数学</td>
            <td>语文</td>
            <td>外语</td>
            <td>政治</td>
            <td>活动</td>
            <td></td>
         </tr>
         <tr>
            <td>中午</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
         </tr>
         <tr>
            <td>第五节</td>
            <td>音乐</td>
            <td>体育</td>
            <td>艺术</td>
            <td>阅读</td>
            <td>游戏</td>
            <td></td>
            <td></td>
         </tr>
         <tr>
            <td>第六节</td>
            <td>音乐</td>
            <td>体育</td>
            <td>艺术</td>
            <td>阅读</td>
            <td>游戏</td>
            <td></td>
            <td></td>
         </tr>
         <tr>
            <td>第七节</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td>班会</td>
            <td></td>
            <td></td>
         </tr>
         <tr>
            <td>第七节</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td>班会</td>
            <td></td>
            <td></td>
         </tr>
      </table>
   </body>
</html>

小结

表格在网页中使用可以使用第三方插件或控件。

相关推荐
lerhxx7 小时前
AI 应用如何高效优雅地恢复中断?—— "连接解耦 + 状态持久化"
前端·javascript
mantou1328 小时前
我给 AI Agent 做了个「油猴」:让 Claude Code / Codex 直接用你已登录的浏览器
前端·javascript·后端
默_笙8 小时前
🍕 一个主编、三个工种、两本手册:搭一支 AI 调研队
前端·javascript
CappuccinoRose9 小时前
FormData数据处理
开发语言·前端·javascript·表单数据
飘尘10 小时前
SVG和Canvas,前端里的两支“画笔”,用的时候怎么选择?
前端·javascript·面试
Sand(ContextGate)14 小时前
Python Agent 测试实战:测试与评估,让 Agent 像传统软件一样可交付
前端·javascript·python·microsoft·ai
码艺-Alimjan14 小时前
Tauri 网站To桌面应用实战总结
前端·javascript·vue
传人once15 小时前
网页文字滚动效果如何做
前端·css·html·jquery·html5
liangshanbo121516 小时前
请求拦截器相关面试题
java·前端·javascript
liangshanbo121516 小时前
React面试题:Hooks 为什么不能在分支和循环里面写?
前端·javascript·react.js