代码之家  ›  专栏  ›  技术社区  ›  kevtrout

为什么动态生成的内容不更改包含div的高度?

  •  3
  • kevtrout  · 技术社区  · 16 年前

    我正在编写一个页脚div,显示数据库中的信息。页脚的背景颜色与页面的其他部分不同,页脚的高度取决于数据库向其抛出的内容量。当我用php生成内容并在页脚div周围调用边框时,内容会出现,比如说,高400px,但div边框在div顶部显示为1px高的矩形。

    如何获得自动适合内容的高度?

    <div id="footer">
    <?php 
    
    
        $an_array=array();
        $tasks=mysql_query("select stuff from the db");
    
        while($row=mysql_fetch_assoc($tasks)){
            extract($taskrow);
            $an_array[]=$task;
            }
    
        $an_array=array_chunk($an_array,4);
    
        foreach($an_array as $dtkey=>$dtval){
            echo "<dl>";
            foreach($dtval as $dtvkey=>$dtvval){
                echo "<dt>".$dtvval."</dt>";
    
            }
            echo "</dl>";
            }
    ?>
    </div>
    

    border image http://www.kevtrout.com/tortus/div.png

    根据大众需求,以下是css:

    #footer{
            border-top: 10px solid #d8d8d8;
            background:#5b5b5b;
            /*overflow:auto;*///Added this after seeing your answers, it worked
    
             }              
    dl.tr{
            width: 255px;
            height:160px;
            background: #5b5b5b;
            margin:0px;
            float:left;
            padding: 10px;
            }
    
        dt.tr{
            font-weight: normal;
            font-size: 14px;
            color: #d8d8d8;
            line-height: 28px;
            }
    

    编辑:我在mac上使用firefox

    4 回复  |  直到 16 年前
        1
  •  7
  •   scunliffe    16 年前

    检查你的页脚CSS。。。如果将overflow设置为auto/scroll之外的任何值,则DIV不会增长。

    如果不尝试使用DL/DT以外的东西,因为DT是内联元素,那么它们就不会让您的div适合内容*

    e、 只要试着用DIV代替,如果页脚变大,你就有答案了。

    (注:我修改了建议顺序)

    *(就规格而言,我意识到 不应该

        2
  •  2
  •   Ulf Gjerdingen angelo.mastro    9 年前

    如果没有看到CSS,我猜你的 <dl> 它们是浮动的,以使它们并排出现。包含 <div> 然后将不会展开以包含它们。如果是这种情况,请添加 clear:both; 决赛前 </div> 应该这样解决它:

    <div style='clear:both;'></div>
    
        3
  •  0
  •   Lasar    16 年前

    问题很可能出现在您的CSS中。放置在页脚中的内容具有定位属性(如float:left或position:absolute),可将其放置在div的“外部”,或者div具有固定大小和/或溢出属性集。

    我建议把你的CSS文件贴在这里,或者(如果它太大的话)把它放在我们可以查看的地方。完成的HTML(如果您的系统尚未联机,您可以只保存输出的静态副本)也不会有任何影响。

        4
  •  0
  •   Konrad Rudolph    16 年前

    顺便说一下,您使用 <dl> 元素错误:您缺少 <dd> 要素定义列表中的项始终由一个定义组成 学期 定义 (在您的代码中,缺少这些内容)。

    还有,而不是使用 <div style='clear:both;'></div> 正如Steve所建议的,我建议明确说明你的身高 <dt> 元素。这样,就不必清除浮动。