新闻中心
CSS技巧:在独立边框表格中实现圆角行效果

本文旨在解决在使用 `border-collapse: separate` 样式创建表格时,`border-radius` 无法直接应用于 `tr` 元素的问题。通过详细解析其原因并提供实用的css解决方案,我们将学习如何利用 `:first-child` 和 `:last-child` 伪类,将圆角效果精准地应用到每行首尾单元格,从而实现具有圆角的独立表格行,同时保持行间距。
理解表格边框与圆角渲染机制
在Web开发中,表格是常见的数据展示结构。为了美化表格,我们经常需要为表格行添加圆角效果并设置行间距。当使用 border-collapse: separate; 属性时,表格的单元格 (
然而,一个常见的挑战是,当尝试直接对
解决方案:针对首尾单元格应用圆角
解决此问题的核心思路是,不再尝试将 border-radius 直接应用于
原始问题代码示例
以下是最初尝试对 tr 应用圆角但不生效的CSS和HTML结构:
/* 原始CSS */
table {
width: 70vw;
border-collapse: separate; /* 关键属性,允许行间距 */
border-spacing: 0 15px; /* 行间距 */
}
tr {
border: 1px solid black;
border-radius: 15px; /* 此处设置无效 */
}
/* 其他样式 */
tr:nth-child(even) {
background-color: white;
}
tr:nth-child(odd) {
background-color: #f1f2f6;
}
th {
background-color: #2B
59FF;
color: white;
padding: 10px 40px;
font-weight: bold;
}
td {
padding: 25px 15px;
font-weight: 100;
}<!-- HTML表格结构 -->
<table>
<tr>
<th>Company</th>
<th>Email</th>
<th>Progress</th>
<th>Location</th>
<th>Payment</th>
</tr>
<!-- 更多数据行 -->
<tr>
<td>Time Developments</td>
<td>[email protected]</td>
<td>In Progress</td>
<td>You48</td>
<td>$200</td>
</tr>
<tr>
<td>Quad Panelling</td>
<td>[email protected]</td>
<td>Completed</td>
<td>638 St. Clair East</td>
<td>$300</td>
</tr>
</table>在上述代码中,尽管 tr 被赋予了 border-radius: 15px;,但由于 border-collapse: separate; 的作用,这个圆角并不会在视觉上呈现。
察言观数AskTable
企业级AI数据表格智能体平台
78
查看详情
修正后的CSS解决方案
为了实现圆角效果,我们需要调整CSS规则,将圆角应用于每行的第一个和最后一个单元格。
/* 修正后的CSS */
body {
font-family: 'Plus Jakarta Sans', sans-serif, 'Poppins', sans-serif, 'Roboto', sans-serif;
color: #2E384D;
background-color: #F5F7FC;
}
table {
width: 70vw;
border-collapse: separate; /* 保持行间距的关键 */
border-spacing: 0 15px; /* 行间距 */
}
tr:nth-child(even) {
background-color: white;
}
tr:nth-child(odd) {
background-color: #f1f2f6;
}
tr {
border: 1px solid black; /* 行的边框,但圆角由单元格负责 */
}
th {
background-color: #2B59FF;
color: white;
padding-left: 40px;
padding-right: 40px;
padding-top: 10px;
padding-bottom: 10px;
font-weight: bold;
}
td {
padding-top: 25px;
padding-bottom: 25px;
padding-left: 15px;
font-weight: 100;
}
/* 关键改动:将圆角应用于每行的第一个和最后一个单元格 */
tr :first-child {
border-top-left-radius: 15px; /* 左上角 */
border-bottom-left-radius: 15px; /* 左下角 */
}
tr :last-child {
border-top-right-radius: 15px; /* 右上角 */
border-bottom-right-radius: 15px; /* 右下角 */
}<!-- HTML表格结构保持不变 -->
<table>
<tr>
<th>Company</th>
<th>Email</th>
<th>Progress</th>
<th>Location</th>
<th>Payment</th>
</tr>
<tr>
<td>Time Developments</td>
<td><a class="__cf_email__" data-cfemail="d6bcbfbb96a2bfbbb3b2b3a0b3bab9a6bbb3b8a2a5f8b5b7" href="/cdn-cgi/l/email-protection">[email protected]</a></td>
<td>In Progress</td>
<td>You48</td>
<td>$200</td>
</tr>
<tr>
<td>Quad Panelling</td>
<td><a class="__cf_email__" data-cfemail="660c09032617130702160708030a0a0f0801480507" href="/cdn-cgi/l/email-protection">[email protected]</a></td>
<td>Completed</td>
<td>638 St. Clair East</td>
<td>$300</td>
</tr>
<tr>
<td>Time Developments</td>
<td><a class="__cf_email__" data-cfemail="2c4645416c5845414948495a4940435c414942585f024f4d" href="/cdn-cgi/l/email-protection">[email protected]</a></td>
<td>In Progress</td>
<td>You48</td>
<td>$100</td>
</tr>
<tr>
<td>Quad Panelling</td>
<td><a class="__cf_email__" data-cfemail="73191c16330206121703121d161f1f1a1d145d1012" href="/cdn-cgi/l/email-protection">[email protected]</a></td>
<td>Completed</td>
<td>638 St. Clair East</td>
<td>$300</td>
</tr>
</table>在修正后的CSS中,我们做了以下关键调整:
- 移除 tr 上的 border-radius: tr 元素不再直接承担圆角责任。
-
利用 :first-child 选择器: tr :first-child 会选中
内部的第一个子元素,即每行的第一个 或 。我们对其应用 border-top-left-radius 和 border-bottom-left-radius,使其左侧边角变圆。 - 利用 :last-child 选择器: tr :last-child 会选中
内部的最后一个子元素,即每行的最后一个 或 。我们对其应用 border-top-right-radius 和 border-bottom-right-radius,使其右侧边角变圆。 通过这种方式,虽然 tr 自身仍然有 border: 1px solid black;,但视觉上的圆角效果是由其内部的首尾单元格的圆角边框和背景共同呈现的。这成功地解决了在 border-collapse: separate 模式下 tr 元素 border-radius 不生效的问题,同时保持了行与行之间的视觉分离。
注意事项与总结
-
选择器精度: tr :first-child 和 tr :last-child 这样的选择器会选中 tr 下的任何第一个/最后一个子元素,这通常是
或 。确保你的HTML结构中,这些子元素是表格行的实际内容单元格。 - 边框一致性: 为了获得最佳视觉效果,确保 tr 上的边框样式与单元格的背景和圆角能够良好配合。在上述示例中,tr 的边框实际上是作为整个行的外部边框,而单元格的圆角则塑造了行两端的形状。
- 兼容性: 这种CSS伪类选择器和属性在现代浏览器中具有良好的兼容性。
- 可维护性: 将圆角逻辑集中到首尾单元格上,使得代码意图更清晰,也更易于维护。
通过上述方法,我们不仅解决了在 border-collapse: separate 模式下 tr 元素 border-radius 不生效的问题,还深入理解了表格边框和圆角渲染的底层机制。这种技巧在需要创建美观且功能性强的表格时非常实用。
- 利用 :last-child 选择器: tr :last-child 会选中
以上就是CSS技巧:在独立边框表格中实现圆角行效果的详细内容,更多请关注其它相关文章!
# 单选框
# SEO入门书籍推荐男生
# 菠萝的营销推广方案
# 网站优化推广的方式
# 目前常用的网站推广方法
# 岳池县推广营销中心电话
# 广州专业网站建设平台
# 湖北网站推广专业的学校
# 巩义网站seo哪家正规
# 外贸营销推广信赖推荐
# 舞蹈营销方案网站推广
# 使其
# 对其
# css
# 表单
# 应用于
# 选择器
# 第一个
# 行间
# 单元格
# 圆角
# 伪类选择器
# cdn
# ai
# 浏览器
# html
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧
Golang如何使用const iota_Go iota常量计数器讲解
怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】
韩小圈电脑版在线入口_网页版免费登录地址
铁路12306官网网页端快速入口 铁路12306官方首页登录教程
QQ网页版官方账号入口 QQ网页版网页版登录指南
Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】
J*a最大堆Heapify方法修复:索引计算与边界条件深度解析
sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置
极速漫画官方主页网址 极速漫画漫画在线浏览官网链接
中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】
在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析
实现分段式页面滚动导航:CSS与J*aScript教程
MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略
如何将HTML表格多行数据保存到Google Sheet
Win11怎么开启高性能模式_Windows 11电源计划优化设置
微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法
C++ vector二维数组定义_C++ vector of vector用法
MAC怎么在地图App里使用“四处看看”_MAC体验部分城市的3D实景街景
React中useState与局部变量:理解组件状态管理与渲染机制
J*aScript实现单选按钮与关联输入框的联动禁用教程
Lar*el 递归关系中排除指定分支的教程
谷歌google账号怎么注册账号 谷歌账号注册官方流程
美团外卖商家服务中心入口 美团商家版官网入口
印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】
b站怎么取消点赞_b站点赞取消操作方法
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项
Tabulator表格日期时间排序问题及自定义解决方案
将HTML动态表格多行数据保存到Google Sheet的教程
如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧
必由学官网快捷入口 必由学网页版在线学习平台
Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求
J*aScript:在map操作中高效处理空数组
PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果
解决Python单元测试中Mock异常方法调用计数为零的问题
2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享
PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比
css绝对定位元素脱离父容器怎么办_确保父元素position非static
如何在网页中实现特定地点的随机图片展示
解决 Express.js 中 PUT 请求密码修改失败的路由配置指南
QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用
J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析
提升Kafka消费者健壮性:会话超时处理与消息处理语义
移动端XML文件怎么转换成Excel 手机和平板上的解决方案
React Router 嵌套组件中 URL 重定向问题的解决方案
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
如何在Promise链中优雅地中断后续then执行
微博网页版首页入口 微博电脑端官网登录链接
正确连接J*aScript到HTML实现可点击图片与自定义事件处理


2025-10-16
浏览次数:次
返回列表
59FF;
color: white;
padding: 10px 40px;
font-weight: bold;
}
td {
padding: 25px 15px;
font-weight: 100;
}