可以使用css3为safari和firefox工作,但也就是说没有它的一部分。我正在输出一个购物分类和子分类列表,每个列表都有一个单独的分类。
这就是我所拥有的(到目前为止还没有工作)。任何帮助都会受到欢迎。
<div style="float:left; width: 232px;">
<?
$rowcount = 1;
$strSql = "SELECT * FROM Category ORDER BY CategoryName ASC";
$r = $db->select($strSql);
while ($row=$db->get_row($r, 'MYSQL_ASSOC')) {
$CategoryID = $row['CategoryID'];
$CategoryName = $row['CategoryName'];
?>
<div style="width: 232px; background-color:#f2f2f2; padding: 5px; margin-top: 5px; -webkit-border-radius: 4px; border-radius: 4px; overflow:hidden; padding-left: 5px;">
<h1><a href="/<?=$colour?>/<?=$CategoryURL?>/" ><?=$CategoryName?></a></h1>
<ul>
<?
$strSql2 = "SELECT
SubCategory.SubCategoryID,
SubCategory.SubCategoryName,
SubCategory.SubCategoryURL,
SubCategory.CategoryID
FROM
SubCategory
WHERE
CategoryID = $CategoryID
ORDER BY
SubCategoryName";
// echo "<pre>$strSql</pre>";
$r2 = $db->select($strSql2);
while ($row2=$db->get_row($r2, 'MYSQL_ASSOC')) {
$SubCategoryID = $row2['SubCategoryID'];
$SubCategoryName = $row2['SubCategoryName'];
$SubCategoryURL = $row2['SubCategoryURL'];
?>
<li><a href="/<?=$colour?>/<?=$CategoryURL?>/<?=$SubCategoryURL?>/"><?=$SubCategoryName?> (<?=$rowcount?>)</a></li>
<?
$rowcount++;
if ($rowcount == 35) { echo"</ul></div><div style=\"float:left; width: 232px;\"><ul>"; $rowcount = 0;}
} // end get SubCategory
?>
<? if ($rowcount == 0) { echo""; } else {echo"</ul>";} ?>
</div>
<? } // end get category list
?>
</ul> <!-- END CATEGORY UL -->
</div>
</div>
答案 0 :(得分:1)
另一种方法是使用基于表格的布局,在这种情况下,我认为不会那么糟糕。表格适用于表格数据,目录类别也适合。 编辑但你还是要弄清楚你的PHP逻辑才能实现这个目标。 Derp就我而言。
或者,有Columnizer jQuery plugin自动执行技巧,但我不喜欢依赖javascript驱动的布局元素解决方案。虽然您只能通过Modernizr触发不支持CSS3方法的浏览器。仍然不是这个的忠实粉丝。
您可以发布您在其他浏览器中使用的CSS3吗?也许有一个可用的解决方法可以解决问题。对于最终结果的细节,我仍然有点模糊。我专注于你的问题的CSS方面而不是PHP。找到一个有效的CSS驱动解决方案显然比试图找出将类别划分为相应列的逻辑要容易得多。