Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最小高度CSS属性不为';使用PHP ob_start()缓冲输出时无法工作_Php_Css_Ob Start - Fatal编程技术网

最小高度CSS属性不为';使用PHP ob_start()缓冲输出时无法工作

最小高度CSS属性不为';使用PHP ob_start()缓冲输出时无法工作,php,css,ob-start,Php,Css,Ob Start,实际上,我正在使用MVC结构处理一个PHP项目,在使用ob°start()进行输出缓冲期间,通过单个文件包括DOCTYPE和HEAD标记 当我想为may page容器声明一个min height属性,以便将页脚粘在页面底部时,问题就出现了。ob_start()--ob_get_clean()用法似乎禁止浏览器及时访问这些属性,因此无法计算高度值 这是我的index.php文件: <?php include_once('global/init.php'); ob_start(); if(is

实际上,我正在使用MVC结构处理一个PHP项目,在使用ob°start()进行输出缓冲期间,通过单个文件包括DOCTYPE和HEAD标记

当我想为may page容器声明一个min height属性,以便将页脚粘在页面底部时,问题就出现了。ob_start()--ob_get_clean()用法似乎禁止浏览器及时访问这些属性,因此无法计算高度值

这是我的index.php文件:

<?php
include_once('global/init.php');
ob_start();
if(isset($_GET['module'])){
    $module = dirname(__FILE__).'/modules/'.htmlspecialchars($_GET['module']).'/';
    $action = (isset($_GET['action'])) ? htmlspecialchars($_GET['action']).'.php' : 'index.php';
    if(!file_exists($module.$action)){
        include('global/home.php');
    }else{
        include($module.$action);
    }
}else{
    include('global/home.php');
}
$content = ob_get_clean();
include_once('global/header.php');
echo $content;
include_once('global/footer.php');
有人知道如何使用ob_start()修复此问题吗? 当然,除此之外,所有其他CSS规则都可以正常工作

谢谢

JS

问题不在于
ob_start()
。这个问题只是一个html/css问题。如果图元的父级具有固定高度,则只能使用以百分比表示的高度

在您的情况下,
#page
父项是
body
,而
body
的高度是
100%
,因此您不能对
#page
使用百分比高度。但您可以尝试以下示例:

body{height: 1000px;}
#page{min-height:100%; position:relative;}
#footer{position:absolute; bottom:0; width:100%;}

我认为问题在于css;您正在将
body
元素的高度设置为其父元素
html
元素的100%,该元素的高度不一定为100%

您应该能够使用以下方法解决您的问题:

html, body {
  height: 100%;
}

服务器端代码似乎不太可能影响已发送html/css的呈现。如果删除输出缓冲,您能确认它是否有效吗?@user1758625不客气。如果答案适合你,请不要忘记接受(计票下面的复选标记)。
body{height:100%;}
#page{min-height:100%; position:relative;}
#footer{position:absolute; bottom:0; width:100%;}
body{height: 1000px;}
#page{min-height:100%; position:relative;}
#footer{position:absolute; bottom:0; width:100%;}
html, body {
  height: 100%;
}