CSS中的表格2️⃣之合并/拆分单元格以及单元格中在存放表格(跨行或者跨列)

本文详细介绍了如何在HTML中使用rowspan和colspan属性来实现表格数据的跨行与跨列显示,通过具体代码示例展示了如何减少重复信息,使表格布局更加灵活高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:在consequence中,增加了一条记录,并且重用了两个信息没有改变的单元格.也就是增加新行的时候,只需要列出要增加的不同的信息
        consequence     August 9   93  4242ft 7289  5/5 
                        August 27  98               4/5 
        HTML中可以使用rowspan属性指定一个表格数据单元格占多少行,然后从这个单元格所跨越的其他行中
        删除相应的表格数据元素.看例子先咯
        ok,看过例子之后,我们继续看下跨列,只需要为td元素添加一个colspan属性,然后指定列数就可以了.
        与rowspan不同,跨多列的时候,需要删除同一行中表格数据元素;看例子咯
        另外td中可以同时出现colspan和rowspan

先看下效果图

代码如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表格1</title>

		<style type="text/css">
			td,
			th {
				border: 1px solid black;
				/* 单元格设置边框 */
			}
			table {
				margin-left: 20px;
				margin-right: 20px;
				border: thin solid black;
				/* 表格标题在表格的下方 */
				caption-side: bottom;
				/* border-spacing: 10px 30px; */
				border-collapse: collapse;
			}
			th,
			td {
				border: thin dotted gray;
			}

			th {
				background-color: #00FFFF;
			}

			caption {
				font-style: italic;
				padding-top: 8px;
			}

			.text-center {
				text-align: center;
			}

			.text-right {
				text-align: right;
			}

			.cell-color {
				background-color: #fcba7a;
			}
			
		
		
		</style>
	</head>
	<body>
		<!-- 分析;一共是7行6列 -->
		<div>
			<table style="margin-top: 100px;">
				<tr>
					<th>Header</th>
					<th>Header</th>
					<th>Header</th>
					<th>Header</th>
					<th>Header</th>
					<th>Header</th>
				</tr>
				<tr>
					<td >june16</td>
					<td >75</td>
					<td >1204ft</td>
					<td >29686</td>
					<td >4/5</td>
					<td >4/5</td>
				</tr>
				<tr>
					<td rowspan="2">june16</td>
					<td >75</td>
					<td rowspan="2">1204ft</td>
					<td rowspan="2">29686</td>
					<td >4/5</td>
					<td >4/5</td>
				</tr>
				<tr>
					<td >75</td>
					<td >4/5</td>
					<td >4/5</td>
				</tr>
	
			</table>
				<table style="margin-top: 100px;">
					<tr>
						<th>Header</th>
						<th>Header</th>
						<th>Header</th>
						<th>Header</th>
						<th>Header</th>
						<th>Header</th>
					</tr>
					<tr>
						<td >june16</td>
						<td >75</td>
						<td >1204ft</td>
						<td >29686</td>
						<td >4/5</td>
						<td >4/5</td>
					</tr>
					<tr >
						<td >june16</td>
						<td >75</td>
						<td >1204ft</td>
						<td >29686</td>
						<td >4/5</td>
						<td >4/5</td>
					</tr>
					<tr>
						<td >75</td>
						<td colspan="5">4/5</td>
					</tr>
		
				</table>
		</div>
	</body>
</html>

 

在 JavaScript 中生成带单元格拆分功能的表格可以通过 HTML 的 `<table>` 元素及其相关的属性 `colspan` 和 `rowspan` 来实现。这两个属性分别用于定义一个单元格多少 (`colspan`) 或者占据多少行 (`rowspan`) 。下面详细介绍如何用 JS 动态创建这样一个表格。 ### 创建基本结构 首先,我们需要准备一个空的 `<div>` 或其他容器来放置我们的新表格: ```html <div id="container"></div> ``` 然后通过 JavaScript 构建表格的基本框架,包括标题行、数据行等内容。 ### 编写JS代码 接下来我们将编写一段简单的 JavaScript 程序来自动生成带有合并单元格效果的表格: ```javascript // 获取目标 DOM 对象 const container = document.getElementById('container'); // 新建 table 元素实例化 Table 对象 function createTable(headers, rows) { var tbl = document.createElement("table"); // 设置边框样式方便查看 tbl.setAttribute("border", "1"); // 插入表头部分 insertHeaders(tbl, headers); // 填充主体内容 fillBody(tbl, rows); return tbl; } // 表头函数 function insertHeaders(tableElm, headerDataArr){ const trHeaderRow = document.createElement("tr"); for (let col of headerDataArr) { let thCell = document.createElement("th"); thCell.textContent = col.text || ''; if(col.colspan > 1){ thCell.setAttribute("colspan", col.colspan); } if(col.rowspan > 1){ thCell.setAttribute("rowspan", col.rowspan); } trHeaderRow.appendChild(thCell); } tableElm.appendChild(trHeaderRow); } // 主体填充函数 function fillBody(tableElement, rowDataList){ rowDataList.forEach(rowInfo => { const tbodyTrItem = document.createElement("tr"); rowInfo.columns.forEach(cellDesc=>{ const tdElem = document.createElement("td"); tdElem.textContent = cellDesc.content || ''; if(cellDesc.colspan > 1){ tdElem.setAttribute("colspan", cellDesc.colspan); } if(cellDesc.rowspan > 1){ tdElem.setAttribute("rowspan", cellDesc.rowspan); } tbodyTrItem.appendChild(tdElem); }); tableElement.appendChild(tbodyTrItem); }); } // 示例数据集 const sampleHeaders=[ {"text": "编号"}, {"text": "名称","colspan":2}, ]; const sampleRows=[ [{"content":"A"},{"content":"B","rowspan":2},{"content":"C"}], [null,{"content":"D"}], // 注意这里留出空间给上一行 rowspan=2 单元格 ]; // 将构造出来的表格添加到页面内 container.appendChild(createTable(sampleHeaders,sampleRows)); ``` 这段代码展示了怎样基于一组预设的数据模型(即头部信息和各行记录),动态地组合成一张拥有复杂布局特性的HTML表格,并附加上适当的CSS样式使其更美观易读。 ### 关键点说明 - **Colspan 属性**: 当某个 `<td>` 或 `<th>` 元素设置了 `colspan=n` 参数,则表示它会在水平方向越 n 的空间。 - **Rowspan 属性**: 类似地,如果指定了 `rowspan=m` ,那么就代表该单元格将在垂直维度占用 m 行的高度。 - **注意事项**:当使用了 `rowspan` 合并后的某一行存在缺失的部分时,需保证下一行对应位置为空白值(null),以此维持正确的表格结构完整性。 --- --相关问题-- 1. 如果我想让某些特定条件下自动调整 colspan 或 rowspan 应该怎么设计? 2. 是否能够在不改变原始 JSON 数据格式的情况下轻松支持复杂的嵌套表格? 3. 如何为生成的表格添加交互式筛选排序等功能?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvzhengyang

感谢,励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值