如何使用CSS以自定义格式显示表格?
使用JavaScript,restyling你的表很容易。我们假设你的表格被称为your-table
。选择您的表格,并将最后一个单元格移到新创建的行中,然后将该行插入当前行之后。
因为您要向表中添加行,请确保您从表的末尾开始。如果你使用for(var i=0; i<rows.length; i++)
,你的页面将会陷入无限循环。
小提琴:http://jsfiddle.net/QP8ga/
function refactorTable(table){
var rows = table.rows;
for(var i=rows.length-1; i>=0; i--){
var tr = document.createElement("tr");
var td = rows[i].cells[2];
td.colSpan = "2";
tr.appendChild(td);
rows[i].parentNode.insertBefore(tr, rows[i].nextSibling)
}
}
window.onload = function(){
var table_IDs = ["your-table", "another-table"];
for(var i=0; i<table_IDs.length; i++) refactorTable(table_IDs[i]);
}
前面的代码被修改以支持多个表。小提琴用一张桌子显示基本的例子。
作为一项学术活动,这里是一个纯粹的CSS解决方案。不幸的是,它只能在支持现代CSS的浏览器中工作。没有IE支持。
th {
display:none;
}
table, tbody, tr, td {
display:block;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing:border-box;
border : 0px solid black;
}
table {
border-width : 1px 1px 0px;
}
td:nth-child(1) {
width :50%;
float:left;
}
td:nth-child(2) {
width :50%;
float:left;
border-left-width: 1px;
}
td:nth-child(3) {
clear:both;
border-width: 1px 0px;
}
尼斯解决方案。这种方法唯一的缺点是表格元素不再支持'vertical-align',因为你已经为表格元素添加了'display:block'。 –
看起来不错,但是,当我增加另一个表的列数时,它看起来很乱,我尝试添加2个td和n-child(4),第n个孩子(5)。但是不起作用。任何快速修复做到这一点? –
@Vivek - 原则应该可以扩展到更多列。你希望第4列和第5列出现在你的布局上? – Alohci
目前,没有'colspan'(或'rowspan')CSS等同。 –
不是没有JavaScript。而且,我必须补充一点,我认为'table'实质上是一个个人详细信息列表的错误工具... –
David,我是否应该使用java脚本或CSS编辑解决方案的帖子?你能建议我任何关键字来寻找这样的要求吗? 谢谢 –