3

这是我的代码:

<?php 
     $qr = mysql_query("SELECT * FROM products");
     while($res = mysql_fetch_array($qr)):
?>

<div class="box">
    <p><?php echo $res[1]; ?></p>
    <img src="<?php echo $res[3]; ?>" width="100" /><br />
    <a href="<?php echo $res[4]; ?>">View Data Sheet</a>            
</div>

<?php 
    endwhile; 
?>

我想要这样的获取记录的输出http://jsfiddle.net/CqYhE/3/

请帮助我,如何在使用 php 循环打印时仅在每行的中心 div 上应用 10px 的边距(左右)。

4

3 回答 3

2

这是您的解决方案:

这将适用于N个部门。

<?php 
    $qr = mysql_query("SELECT * FROM products");

    $count = 1;
    $margin='';

    while($res = mysql_fetch_array($qr)):
        $count == 2 ? $margin='style="margin:0px 10px;"' : $margin = '';
        $count == 3 ? $count = 1 : $count++;
?>    

    <div class="box" <?php echo $margin; ?>>
        <p><?php echo $res[1]; ?></p>
        <img src="<?php echo $res[3]; ?>" width="100" /><br />
        <a href="<?php echo $res[4]; ?>">View Data Sheet</a>            
    </div>

<?php 
    endwhile; 
?>
于 2012-12-19T15:26:08.080 回答
0

这最好通过 CSS 解决方案来实现。如果您忘记了左边距而只应用了右边距,则可以将其从最后一个孩子中删除。更少的 CSS 行数因此性能更好。

.box{
    float: left;
    width:245px;
    height:200px;
    background-color:#0CC;
    margin: 0 20px 10px 0;
}
.box:last-child {
    margin-right: 0;
}
于 2012-12-19T15:36:30.350 回答
0

使用 CSS:first-child:last-child选择器

#container .box{
    float: left;
    width:245px;
    height:200px;
    background-color:#0CC;
    margin-bottom:10px;
    margin-left:10px;
    margin-right:10px;
}
#container .box:first-child,
#container .box:last-child { margin-left:0px; margin-right:0px;}

如果您有多个行,则需要更改 html 以使其变得容易:请参阅此演示

于 2012-12-19T14:55:12.507 回答