定位一组图像

时间:2014-01-06 00:14:02

标签: css styling

我有一些PHP会输出一组图像。如果我这样写的话

    foreach( $data as $inform ) {
    {if (isset($inform['file1'])) {
            echo '<img src="'.$inform['file1'].'"><br><br>'; 
        }
    } 

它将在数组$ inform ['file1']中显示4个不同的图像,每个图像之间有2个换行符,但是如果我想将它们放在页面上,就像这样

     foreach( $data as $inform ) {
       if ( isset( $inform['file1'] ) ) {
         echo '<div style="position:absolute; top:400px;"><img src="'.$inform['file1'].'"><br><br>
       </div>'; 
    }}

然后它将所有4张图像显示在彼此之上,但位于正确的位置。

我已尝试在css中设置样式并且没有任何效果。任何人都可以帮助新手学习这个吗?

提前致谢。

3 个答案:

答案 0 :(得分:1)

这与你的foreach循环无关。你实际上是在告诉图像相互重叠,这就是他们正在做的事情。如果您想在顶部添加间距,请在图像周围放置一个容器div并执行margin-top: 400px;

答案 1 :(得分:0)

你的练习很糟糕,但如果你必须:

foreach($data as $inform){
  if(isset($inform['file1'])) {
    echo "<div><img src='{$inform['file1']}' /></div><br /><br />"; 
  }
}

当然,这也会在最后一个之后增加两个休息时间。您不能使用相同的position:absolute在不同的地方拥有多个项目,因为它们都将相对于上一个position:relative。无论如何,你应该使用CSS。

#PHP
foreach($data as $inform){
  if(isset($inform['file1'])) {.
    echo "<div class='someClass'><img src='{$inform['file1']}' /></div"; 
  }
}

/*CSS*/
.someClass{
  margin-top:10px;
}

答案 2 :(得分:0)

你最大的问题是:

  1. 您尚未解释您想要达到的目标,
  2. 你正在混合PHP,这使得一个相对简单的问题似乎难以解决
  3. 元素的样式和定位应通过CSS管理(最好不是内联CSS)。

    你的PHP应该是:

    if( count( $data ) ){
      echo '<div class="file1_container">';
     # If there are elements in the $data array
      foreach( $data as $inform ){
        if( isset( $inform['file1'] ) ){
          echo '<img src="'.$inform['file1'].'" />'; 
        }
      }
      echo '</div>';
    }else{
     # No elements in the $data array
    }
    

    你的CSS可能就像:

    .file1_container {
      position:absolute;
      left:0;top:400px;right:0;
      text-align:center;
    }
    

    这将定位一个DIV,其中包含距离原点400px的所有图像,其中的IMG将位于同一水平线上,与DIV的中心对齐。