darasion
(Darasion)
1
查了下文档和网上的资料,貌似这种情况没办法干净的解决。
比如,
我想展示一个列表:
-
每三个元素(item)一行.
-
同一行中的元素等高.
-
最后一行可能不满三个元素(item)
在itemView中我是这样写的,但是最后一行不知道怎么处理:
<?php
if($index == 0){
echo "<div>";
} elseif($index%3 == 0) {
echo "</div><div>";
}
?>
item 具体内容
<?php
if(是最后一个元素) {//怎样知道已经到达最后一个item了呢?
echo '</div>';
}
?>
darasion
(Darasion)
2
研究出了解决方案:
<?php
if($index == 0){
echo "<div>";
} elseif($index%3 == 0) {
echo "</div><div>";
}
?>
item 具体内容
<?php
if($widget->dataProvider->getItemCount()-1 == $index) {//<-- 这样好了.
echo '</div>';
}
?>
hehbhehb
(Hehbhehb)
3
这种布局的事由css来做比较好, php只管理输出<div class="span-5 demo">…</div>
当三个float的div超过一行时,自然会往下排.
darasion
(Darasion)
4
这样试过,但是每个 item 的高度不能确定,float 会让好多 item 挤在一起。
只有用 div 约束一下才能达到效果,呵呵。