【问题标题】:Div is not rigged onto image and text is not centered properly?Div 未绑定到图像上且文本未正确居中?
【发布时间】:2015-12-19 08:54:23
【问题描述】:

我有一个主 div,它是所有 div 的“主人”。这个 div 的宽度是页面的 70%。在这个 div 里面,是另一个包含图像的 div。这个 div 被称为 mainImg。它设置为绝对定位,所有其余元素也设置为绝对定位。所有这些元素都相对于主 div 移动。

这是我的代码:

PHP/HTML

<?php
    $resultSet = $db->query("SELECT * FROM Articles");

    if ($resultSet->num_rows != 0)
    {
         while ($rows = $resultSet->fetch_assoc())
        {
            $id = $rows["id"];


            if ($id <= 3)
            {
                $images = $rows["image"];
                $title = $rows["title"];
                echo "<div id=main>";
                if ($id == 1)
                {

                    echo "<div id=mainImg>";
                    echo "<img src=$images>";
                    echo "<div id=mainTitle>";
                    echo "<h2>$title</h2>";
                    echo "</div>";
                    echo "</div>";

                }
               echo "</div>";
           }
     }
}?>

CSS

body{
    position: relative;
}

#main{
    position: relative;
    width: 70%;
    height: auto;
    margin: 1.5% auto;
}

#mainImg{
    position: absolute;
    width: 65%;
}

#mainImg img{
    width: 100%;
}

#mainTitle{
    position: absolute;
    width: 100%;
    height: 25%;
    bottom: 0%;
    background-color: rgba(100, 0, 0, 0.7);
}

#mainTitle h2{
    color: white;
    text-align: center;
    font-family: sans-serif;
    font-size: 120%;
}

我面临的问题是 mainImg (mainTitle) 内部的 div 没有在图像内正确装配。 div 是一个半透明的块,应该完全适合图像的底部,高度为 25%。相反,该块有点从图像中出来。我面临的另一个问题是我在这个 mainTitle div 中的文本。文本居中,但未在 div 中间对齐。我正在尝试使文本具有百分比响应,但是每当我调整文本大小时,它总是低于 div。如何解决这三个问题? (正确装配 div,对齐文本,并始终将文本保留在 div 内以适应其他窗口大小?

半透明的 div 脱离了图像的边缘

当浏览器调整大小时,文本会发生这种情况

【问题讨论】:

  • 您似乎没有关闭主 div(即:div id=main
  • @RamRaider 抱歉,我只是截取了一些代码以使其更可行,但这是我没有弄清楚的部分。
  • 主 div 肯定也会重复吗?
  • 我认为你在循环内使用主 div 将你的主 div 移到循环外
  • @devpro 我之所以不想将主 div 放在循环之外是因为主 div 只是标题部分,正文部分会有不同的宽度。所以 body div 将覆盖 $id > 3

标签: php html css mysqli


【解决方案1】:
<?php
    $res = $db->query("SELECT * FROM Articles");

    if( $res->num_rows > 0 ) {

        echo "<div id='main'>";/* Open main div outside the loop */

        while( $rows = $res->fetch_object() ) {
            $id = $rows->id;

            if ( $id <= 3 ) {

                $image = $rows->image;
                $title = $rows->title;

                if ( $id == 1 ) {
                    echo "
                    <div id='mainImg'>
                        <img src='$image'>
                        <div id='mainTitle'>
                            <h2>$title</h2>
                        </div>
                    </div>";
                }
            }
        }
        echo '</div>';/* close main div */
    }

?>

【讨论】:

  • 之所以不想把main div放到循环之外是因为main div只是header部分,body部分会有不同的宽度
  • 我已在问题中添加了图片。这就是正在发生的事情
猜你喜欢
  • 2016-07-13
  • 2019-05-18
  • 1970-01-01
  • 2016-05-25
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 2012-08-07
相关资源
最近更新 更多