2014-03-05 98 views
0

如何对齐div搁置另一个div并将它集中在一个表中?align div div to the center of table CSS - PHP

echo '<table border="0" cellspacing="1" cellpadding="7" width="100%">'; 
    echo '<tr bgcolor="'.$config['site']['purple'].'">'; 
     echo '<td align="center">'; 
      foreach($image as $img){ 
       echo '<div style="width:24%;height:130px;position:relative;float:left;margin:2px auto;background-image:url('.$img['location'].');background-size:100%;"></div>'; 
      } 
     echo '</td>'; 
    echo '</tr>'; 
echo '</table>'; 

我得到的div一个抛开其他的完美,但它仍然在<td>的左侧,而不是在中心。

如何解决?

+0

快速旁注:不要把CSS标签内,用一个单独的CSS样式表,并给div的一类 – GroundZero

+0

谢谢回答,让我试试这个。 – user3050478

+0

对于居中:'auto'的左右边距将水平对齐您的对象。您需要为对象设置宽度,就像您在示例中所做的那样。你可以使用一个简写的CSS表示法:'margin:top/bottom right/left;' – GroundZero

回答

1

检查此JSfiddle。你需要比我想象的那样格式化:对

http://jsfiddle.net/5c2Vj/

注意:我手动添加了一些div的用于测试目的。

HTML

<table border="0" cellspacing="1" cellpadding="7" width="100%"> 
    <tr bgcolor="purple"> 
     <td align="center"> 
      <div class="image" style="background-image: url(https://stackoverflow.com/content/stackoverflow/img/apple-touch-icon.png)"></div> 
      <div class="image" style="background-image: url(https://stackoverflow.com/content/stackoverflow/img/apple-touch-icon.png)"></div> 
      <div class="image" style="background-image: url(https://stackoverflow.com/content/stackoverflow/img/apple-touch-icon.png)"></div> 
      <div class="image" style="background-image: url(https://stackoverflow.com/content/stackoverflow/img/apple-touch-icon.png)"></div> 
      <div class="image" style="background-image: url(https://stackoverflow.com/content/stackoverflow/img/apple-touch-icon.png)"></div> 
     </td> 
    </tr> 
</table> 

CSS

div.image { 
    display: inline-block; 
    width: 24%; 
    height:130px; 
    border: 1px solid black; /* For visual reference */ 
} 

得益于align="center"的TR-元素,div的居中。
当您清理代码(从样式中分离HTML)时,您也可以在该行上使用CSS类。


编辑:

小testrun我做了(不CSS类)。

$config['site']['purple'] = "purple"; 
$image = array(
    'StackOverflow' => 'https://stackoverflow.com/content/stackoverflow/img/apple-touch-icon.png', 
    'W3C' => 'http://www.propra.nl/img/w3c.png', 
    'CSS' => 'http://a.dryicons.com/images/icon_sets/coquette_part_5_icons_set/png/128x128/css_file.png', 
    'HTML' => 'http://a.dryicons.com/images/icon_sets/coquette_part_5_icons_set/png/128x128/html_file.png', 
    'LifeIsPain' => 'http://oldpunks.com/1iconlifeispain.gif' 
); 

echo '<table border="0" cellspacing="1" cellpadding="7" width="100%"> 
    <tr bgcolor="'.$config['site']['purple'].'"> 
     <td align="center">'; 
      foreach($image as $name => $location){ 
       echo '<div style="display: inline-block; width: 24%; height:130px; border: 1px solid black; background-image:url('.$location.');background-size:100%;"></div>'; 
      } 
     echo '</td> 
    </tr> 
</table>'; 
+1

感谢@GroundZero,现在我把divs放在一旁, td元素的中心完美! – user3050478

+1

@ user3050478您也可以查看:[PHP沙盒](http://sandbox.onlinephpfunctions.com/code/c99b0f02777554232d5acea31faa22c53f7f19c0)。您可以在[JS-fiddle](http://jsfiddle.net/GVBwv/1/)中使用结果来获得可视结果。 – GroundZero

+0

谢谢!我正在寻找一个带有这个功能的程序,但是在你的代码中我看到了JS小提琴,现在我复制了它。 – user3050478