0

我有一个 div 没有被里面的内容下推。相反,内容只是与 div 重叠。我认为这是因为 div 标签之间有一个 PHP while 循环?我该如何解决?

session_start();
if (!$_SESSION["user_name"])
{
    header("Location: index.php");
}

include('header.php');
$id = $_GET['id'];
if(isset($id)) {
    connect_to_db();
    mysql_query("DELETE FROM content WHERE id='$id'");
    $deleted = 'Content Successfully Deleted.<br>';
}
echo '<div id="content">';
echo '<h2>Delete Content</h2>';
if(isset($deleted)){
    echo $deleted;
}
connect_to_db();
$query="SELECT id, date, title, image FROM content ORDER BY date DESC";
$result=mysql_query($query);
while($row = mysql_fetch_array($result)){
    echo '<div id="delete" align="center">';
    echo '<a href="delete.php?id='.$row['id'].'"><img src="'.$row['image'].'" style="border:1px solid black; width:100px;"><br>Delete</a>';
    echo '</div>';
}
echo '</div>';
4

3 回答 3

1

overflow: hidden;CSS 规则放在其中包含重叠内容的 div 上。

于 2012-04-20T13:06:42.737 回答
0

尝试清除while循环内的div,也许像

while($row = mysql_fetch_array($result)){
echo '<div id="delete" align="center">';
echo '<a href="delete.php?id='.$row['id'].'"><img src="'.$row['image'].'" style="border:1px solid black; width:100px;"><br>Delete</a>';
echo '<div style="clear:both"></div></div>';
}

可以帮助吗?或将<a>元素声明为块元素?

于 2012-04-20T11:59:26.713 回答
0

使用 PHP 循环与此问题无关,重要的是提供给 Web 浏览器的 HTML 代码。

尝试向有clear: both;问题的 div 添加样式:

<div id="delete" align="center" style="clear: both;">

您也可以使用 CSS 而不是 HTML 属性对齐:

<div id="delete" style="text-align: center; clear: both;">

更新我看到你的 DIV 元素是重叠的,而不是像我最初想象的那样彼此浮动。

检查您的 CSS 并查看是否可以找到position: absolute适用于这些 DIV 元素的任何内容,然后将其删除。此外,您应该使用class="delete"而不是id="delete",因为多个元素不应共享相同的id属性。

对于测试,您可以尝试:

<div id="delete" style="text-align: center; position: block;">
于 2012-04-20T12:02:02.883 回答