【发布时间】:2013-07-28 23:20:52
【问题描述】:
我有一个用来填充家谱表的数组。顺序是这样的:
---------3
----1
--------4
0
--------5
----2
--------6
等等……一个例子是http://bullybloodlines.net/dogdetails.php?name=muscletone%27s+lucky+bam+bam+of+power+line+bullys
我的代码是:
<?php
$generations = 4;
$genTableArray = array();
for($genCol = 0; $genCol <= $generations; $genCol++)
{
$genRowCount = pow(2, $genCol);
$rowspan = pow(2, $generations) / $genRowCount;
for($familyGenCount=0; $familyGenCount<$genRowCount; $familyGenCount++)
{
$personIndex = pow(2, $genCol) + $familyGenCount - 1;
$rowIndex = $rowspan * $familyGenCount;
$encodedog = urlencode($dogarr[$personIndex]);
$genTableArray[$rowIndex][] = "<td rowspan='{$rowspan}'><a href='http://bullybloodlines.net/dogdetails.php?name={$encodedog}'><img src='images/dogpics/{$dogpic[$personIndex]}' width=100/><br><br>{$dogarr[$personIndex]}</a></td>\n";
}
}
ksort($genTableArray);
$familyTreeHTML = '';
foreach($genTableArray as $rowData)
{
$familyTreeHTML .= "<tr>\n" . implode("\n", $rowData) . "</tr>\n";
}
?>
<table border='1' align='center' cellpadding='4' style='border-collapse:collapse;'>
<?php echo $familyTreeHTML; ?>
</table>
这很好用。但是,我的目标是更改布局并使用 CSS 创建类似 http://thecodeplayer.com/walkthrough/css3-family-tree 但像我的表格一样水平的东西。
我尝试将其添加到 css 以旋转它:
.tree{
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
transform: rotate(-90deg);
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); /* IE6, IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)" /* IE8 */
-ms-transform: rotate(-90deg);
}
它会旋转,但文本也会横向显示。这是我的第一个问题。我也无法使用我的数组来填充它的排列方式。 “css3-family”树使用嵌套列表。任何帮助将不胜感激。谢谢。
【问题讨论】:
-
您认为应该“使用 CSS”而不是表格有什么特别的原因吗?从语义上讲,没有其他标签可以像表格那样表达祖先/后代之间的关系。请注意,您正在查看的项目仅支持一个父级。
-
只是因为我想让它看起来更好。 HTML 表格似乎是一种美观的负担。
-
通过 CSS 增强元素的外观不仅限于非表格元素。如果你对背景图片有创意,你可以做很多事情:cssdeck.com/labs/niw9pvpw
标签: php html css family-tree