在 IE 中提供静态图像会导致进入 Quirks 模式



按照这里提到的方法,我可以成功地提供 png、gif 或任何我想要的图像,但由于我对页面的<!DOCTYPE>没有任何控制权(我知道(,IE9(可能还有其他(决定"文档模式"是"怪癖"作为默认值。

IE成功显示图像(只是文档边缘周围的轻微阴影提供了问题的任何线索(,所以也许我应该满足并忽略以这种方式创建的页面的可怕的怪癖模式状态。

我的方法类似于上面答案中的方法:

# Other processing that is not output / echoed
# <-- Can something else be sent here to calm IE down?
header('Content-Type: image/png');
readfile($imagePath);

根据IE的开发人员工具,此方法会产生如下所示的HTML文档:

<html>
    <head>
        <title></title>
    <body>
        <img src="theUrlOfThePage" />

有没有办法在不妨碍发送header或我想要输出的图像的情况下调整DOCTYPE(或缺少?我在上述过程的各个阶段尝试通过DOCTYPE只是破坏了正确显示图像的能力。

使用包含文档类型的标头模板:

<?php
echo <<<HEADER
<!doctype html>
  <html>
     <body>
HEADER;
?>

以及结束文件的页脚模板:

<?php
echo <<<FOOTER
  </body>
</html>
FOOTER;
?>

在主文件中,包括两者以及现有内容:

<?php
include('header.php')
include('content.php')
include('footer.php')
?>

使用输出缓冲在内部缓存输出字符串,并一次性将其发送给用户。在长时间运行的脚本中,您还需要定期刷新输出缓冲区,以便将一些反馈发送到 HTTP 客户端。这可以通过 ob_end_flush(( 来完成。此函数还会关闭输出缓冲,因此您可能希望在刷新后立即再次调用 ob_start((。

  • 引擎盖下使用 PHP 增强您的 CSS
  • 增压 CSS,第 3 部分:CSS 变量
  • CSS 变量与 PHP – CSS 压缩 – manifest 文件
  • 使用动态 CSS
  • 创建和呈现CSS模板(例如样式.css.php(

链接标头会很有用,但仅限于 Firefox:

  • 实现链接标头
  • 链接到具有 HTTP 标头的样式表未在 WebKit 中实现
  • 不包括链接标头引用的样式表
  • HTTP 标头参考

最新更新