我正在尝试找出最好的解决方案,如何用php输出我的html,同时依靠一个div类。
这是我打印新闻的函数:
function post_news()
{
$post_news = $this->mysql->Query("SELECT * FROM news ORDER BY id DESC LIMIT 4");
while ($news_row = mysqli_fetch_array($post_news))
{
echo "<div class='column1'>
<div class='box'>
<h3>".$news_row['title']."</h3>
<p>".$news_row['content']."</p>
<a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
</div>";
}
}我尝试的是,它显示<div class='column1'>,我需要它向上计数到class='column4'。当我尝试For循环或第二个While循环时,我有时可以让它计数,但它总是换一行,我希望这些块像平常一样并排显示。
那么,什么是最好的方法来计数我的div类,而不是在每个块之后进行换行?
发布于 2017-01-24 02:55:39
我假设当你说1到4时,你希望它在4之后从1开始。只需递增一个计数器,并在它达到4时重置它:
$num = 0;
while ($news_row = mysqli_fetch_array($post_news))
{
$num++;
echo "<div class='column{$num}'>
<div class='box'>
<h3>".$news_row['title']."</h3>
<p>".$news_row['content']."</p>
<a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
</div>";
if($num == 4) { $num = 0; }
}或者实际上,您在查询中使用了LIMIT 4,因此实际上不需要将其重置为0的if语句,因为循环只会迭代4次。
发布于 2017-01-24 03:00:33
一个纯html的解决方法是像这样的代码:
<div class='column1'>
...
</div><div class='column2'>
..
</div>而是因为你在重复它,这是行不通的。您可以做的另一件事是为这些列指定一个inline-block css属性。如果你使用的是bootstrap,你可以只使用col-xs-3,这样你就可以有4个偶数列。
如果不是,则必须将这些类中的每一个都指定为width:25%
所以总结一下,在css中:
.col{
width:25%;/*probably going to have make responsive for screen width*/
display:inline-block;/*or float:left, whichever*/
}在php/html中:
...
echo "<div class='column1 col'>
<div class='box'>
<h3>".$news_row['title']."</h3>
<p>".$news_row['content']."</p>
<a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
</div>";
...希望这能有所帮助。
https://stackoverflow.com/questions/41813525
复制相似问题