我即将开始处理一个带有复杂表格布局的网页(数年前编码的)。
其中一件我想做的事情是将这个布局转换成使用div和span的CSS布局。
你能为此类问题提供一个好的解决方案吗?我应该使用像Blueprint这样的CSS框架吗?或者只是不断地进行试错直到看起来正确?我已经在大量使用Firebug和IE Developer Toolbar。
在表格和CSS之间进行转换通常没有一种万能解决方案。每个网站都不同,具有不同的要求。唯一真正的答案是:从头开始编写标记。
最好的建议是完全先编写标记。确保标记准确、语义化,并完全代表您的数据。现在不要写样式表。完成标记后,创建CSS。这样你就有了语义化的标记,CSS仅控制呈现。
CSS框架通常不倡导使用这种语义标记方法,因为它们强制您添加额外的标签以符合其方法。因此,CSS框架有时会带来更多麻烦。
先做标记,再做CSS。
可以尝试的网站包括 www.alistapart.com、CSS Zen Garden、SimpleBits 等。
迭代方式同样有效。从小块开始,将它们转换为CSS。这应该简化您的表格结构,希望只剩下表格中的“基本网格”和所有其他内容都在CSS中。
从那里开始,如果是简单的布局(1到3列),则选择现有的经过测试的解决方案(有很多经过测试的解决方案)。如果更复杂,请使用Blueprint。
<table.*>\R*.*<tr>\R*.*<td[^>]*?>(.*)</td>
将匹配表的开头,并为替换提供第一个单元格的内容$1:
<div class="container">\n\t<div class="row">\n\t\t<div class="span6">$1</div>
当然,您需要根据特定的用例进行自定义。如果您有许多类似的页面,可以先手动编写一个页面,然后使用类似于这样的工具来简化其他页面的转换。
另一种方法是使用类似于这个jQuery插件:https://github.com/ryandoom/jquery-plugin-table-to-div
它旨在修改以下呈现方式,但在开发过程中也可以使用它来获取给定表格并提供基于DIV的简单表单。
我不会使用框架。只有当你一遍又一遍地使用它时,学习新框架才有用。每个框架都有自己的漏洞和弱点。使用原生语言
display: table-cell;
创建一个列。它们将像 float: left;
一样排列。参见 http://quirksmode.org/css/css2/display.html