为什么我的div显示在错误的地方

时间:2015-06-08 23:20:00

标签: php html css

我使用div和绝对位置在html页面上显示5个结果。我用过display:table-cell;并显示:flex;用于图像和文本的中心定位。

我有问题是因为某些原因在为每个结果创建一个父div后,给它一个边框,由于某种原因eben虽然我使用绝对位置,但结果之间似乎有一些统一的空间。我在正确的位置看到边框,但结果内容显示不合适。

见这里: https://www.dropbox.com/s/deeycdr32ejcftd/proferror.jpg?dl=0

有些东西正在扭曲结果。当我取出标有profile [1到6]的父容器时,它确实有效。

继承了回复HTML的PHP​​:

echo "<div id='results' style='position:absolute;left:0px;top:0px;'>"
(while loop)
   echo "<div id='profile".$profileid."' style='border-style: solid;position:absolute;left:0px;top:".$yy."px;width:320px;height:50px;'>";
   echo "<div id='pic".$profileid."' style='display:table-cell; vertical-align:middle; text-align:center;background-color: #434345;position:absolute;left:0px;top:".$yy."px;width:50px;height:50px;overflow: hidden;'>";
   echo "<a href='http://rafnet.co.uk/click/php/requests.php?from=".$username."&to=".$row["username"]."'><img style='max-height: 100%;' src='http://rafnet.co.uk/click/images/".$row["image"]."' /></a></div>";
   echo "<div style='color:#0d00ff;display:flex; align-items: center; justify-content: center;position:absolute;left:50px;top:".$yy."px;width:270px;height:30px;overflow: hidden;'>".$name."</div>";   
   echo "<div style='display:table-cell; vertical-align:middle; text-align:center;position:absolute;left:50px;top:".($yy+30)."px;width:270px;height:20px;overflow: hidden;'>".$info."</div></div>";

   $yy+=60;$profileid+=1;
(end of while loop)
echo "</div>"

2 个答案:

答案 0 :(得分:2)

echo "<div style='display:table-cell; vertical-align:middle; text-align:center;position:absolute;left:50px;top:".($yy+30)."px;width:270px;height:20px;overflow: hidden;'>".$info."</div></div>";

尝试删除此行末尾的第二个</div>

答案 1 :(得分:0)

我成功解决了这个问题。我在一些工作后意识到,父div“profile”中的所有div都是相对于它的位置定位的。

所以我改变了那些div

top:".$yy."px;

top:0px;

参考css你说我是否应该使用style属性来定义东西?你是说我应该把css放在head部分并使用id或class分配它们?我只是使用了style属性,我没有参考它适用于

的元素