我试图向左移动所有其他UL标签,我知道我应该把每件物品和其他物品都清楚地留下来:左,从我读过的,但事情是我不知道有多少UL或LI会因为我从数据库回应而出现。
这是CSS:
.clientes_provincia li{
font-family:Verdana, Geneva, Tahoma, sans-serif;
font-size:10px;
font-weight:bold;
text-decoration:none;
list-style-type:none;
text-align:left;
margin-top:0px;
margin-left:10px;
}
.clientes_comuna li{
font-family:Verdana, Geneva, Tahoma, sans-serif;
font-weight:bold;
font-size:10px;
font-weight:bold;
text-decoration:none;
list-style-type:none;
list-style-position:inside;
}
.clientes_giro li{
font-family:Verdana, Geneva, Tahoma, sans-serif;
font-size:10px;
font-weight:normal;
text-decoration:none;
list-style-type:disc;
}
.clientes_nombre li{
font-family:Verdana, Geneva, Tahoma, sans-serif;
font-size:10px;
font-weight:normal;
text-decoration:none;
list-style-type:circle;
margin-left:20px;
}
这是php代码,我回显列表:
<?php
$nombreProvincia = "";
$nombreComuna = "";
$nombreGiro = "";
$nombreNombre = array();
while ($row = mysql_fetch_assoc($resultAraucania)) {
if ($nombreProvincia == $row['nombreProvincia']) {
if ($nombreComuna == $row['nombreComuna']) {
if ($nombreGiro == $row['nombreGiro']) {
$nombreNombre[] = $row['nombreNombre'];
}
else { //nombreGiro
echo '<li>' . implode('</li><li> ', $nombreNombre).'</li></ul></li></ul>';
$nombreGiro = $row['nombreGiro'];
echo '<ul class="clientes_giro"><li>'.$nombreGiro.'<ul class="clientes_nombre">';
$nombreNombre = array($row['nombreNombre']);
}
}
else { // nombreComuna
echo '<li>' . implode('</li><li> ', $nombreNombre).'</li></ul></li></ul></li></ul>';
$nombreComuna = $row['nombreComuna'];
echo '<ul class="clientes_comuna"><li>'.$nombreComuna;
$nombreGiro = $row['nombreGiro'];
echo '<ul class="clientes_giro"><li>'.$nombreGiro.'<ul class="clientes_nombre">';
$nombreNombre = array($row['nombreNombre']);
}
}
else { // nombreProvincia
if (!empty($nombreNombre)) {
echo '<li>' . implode('</li><li> ', $nombreNombre).'</li></ul></li></ul></li></ul></li></ul>';
}
$nombreProvincia = $row['nombreProvincia'];
// this is the UL i'd like float for every other one.
echo '<ul class="clientes_provincia"><li>'.$nombreProvincia;
$nombreComuna = $row['nombreComuna'];
echo '<ul class="clientes_comuna"><li>'.$nombreComuna;
$nombreGiro = $row['nombreGiro'];
echo '<ul class="clientes_giro"><li>'.$nombreGiro.'<ul class="clientes_nombre">';
$nombreNombre = array($row['nombreNombre']);
}
}
echo '<li>' . implode('</li><li> ', $nombreNombre).'</li></ul></li></ul></li></ul></li></ul>';
?>
所以我想要做的是浮动'Provincia'回声的每个其他UL标签。 谢谢你的帮助!
此时此刻我得到了这样一个列表:
我希望省份2位于省份1的右侧,如果我有另一份清单 provincia 3我希望它在pronvincia 1之下,并且在provincia 3旁边的prinvia 4等等......这就是我所说的漂浮其他所有UL provincia,希望有帮助作为一个例子。
答案 0 :(得分:2)
$i = 0;
while ($row = mysql_fetch_assoc($resultAraucania)) {
$class = $i++ % 2 ? 'odd' : 'even';
...
echo '<li class="' . $class . '">';
...
}
这使您可以轻松区分偶数列和奇数列,并将“每隔一列”浮动一列。
答案 1 :(得分:1)
如果您不太关心IE,可以使用
.clientes_provincia:nth-of-type(odd) { float: left }
答案 2 :(得分:1)
我认为你的标记和循环使这个问题比它应该更难。我实际上认为它可能只是一个循环。
这里的诀窍是在容器<div>
和每个<ul>
上使用宽度,它会自动强制浏览器浮动两个<ul>
,然后放到下一行以获取以下内容<ul>
。如果你不能使用这个静态宽度的想法,那么你已经有了2个非常好的其他解决方案。
这是我在http://writecodeonline.com/php/
测试的一个小例子$dataRow = array();
$dataRow[0] = array('nombreProvincia' => 'A123', 'nombreComuna' => 'A456', 'nombreGiro' => 'A789', 'nombreNombre' => array(101, 102));
$dataRow[1] = array('nombreProvincia' => 'B123', 'nombreComuna' => 'B456', 'nombreGiro' => 'B789', 'nombreNombre' => array(201, 202));
$dataRow[2] = array('nombreProvincia' => 'C123', 'nombreComuna' => 'C456', 'nombreGiro' => 'C789', 'nombreNombre' => array(301, 302));
echo '<div style="width:600px">';
foreach ($dataRow as $key => $row) {
$nombreProvincia = $row['nombreProvincia'];
$nombreComuna = $row['nombreComuna'];
$nombreGiro = $row['nombreGiro'];
$nombreNombre = '<li>'.implode('</li><li>', $row['nombreNombre']).'</li>';
echo $provincia = <<<HTML
<ul class="clientes_provincia" style="width:200px;float:left;">
<li>$nombreProvincia
<ul class="clientes_giro">
<li>$nombreGiro
<ul class="clientes_nombre">
$nombreNombre
</ul>
</li>
</ul>
</li>
</ul>
HTML;
}
echo '<br style="clear:both"></div>';
此外,如果您使用PHP&gt; = 4,则heredoc非常棒。