2010-11-22 15 views
0

バックエンドのPHPコードがページのレイアウトに影響を与える理由はありますか?これはIEでのみ発生します。 FirefoxとChromeでは、すべてがうまく見えます。PHPコードを挿入すると、ページ全体が左に移動しますか?

このHTMLコードがあると、そのページの関数のバックエンドコードが<?php include "[name of file]";?>で挿入されます。私たちが含んでいたPHPファイルにはスタイリングが全くありませんが、不思議なことにページ全体が左端に移動します。そのファイルをページから削除すると、通常どおりにレンダリングされます。

私たちは、そのファイル(以下ビュー)上のコードの特定の部分をコメントアウトした場合、レイアウトが固定されることを学びました:

//function position_list() { 
    global $db, $core, $global; 
    ob_start('ob_gzhandler'); 
    include ROOT.'templates/listing.php'; 
    ob_flush(); 
//} 

誰でも同様の問題が発生した場合、私はちょうど思ったんだけど?何が間違っていますか?

+0

「include」されているのは何ですか? – stillstanding

+0

listing.phpの内容を表示できますか?そしてどこで/どのようにあなたはposition_list()を呼び出しますか? –

+0

@stillstanding:含まれているのは、特定のページのさまざまな機能のリストです(イベントを予約するためのカレンダーのようなものです)。 – catandmouse

答えて

2

IEのソースをインクルード行の有無と比較します。それはあなたが期待するものですか? PHPの警告はありますか?

function {}の部分をコメントアウトすることなく、機能の本体をコメントアウトすることは非常に奇妙です。あなたは効果的に現在position_list();と呼んでいます。どのような行がレンダリングの原因になっていますか?

これがdoctyleと<html>タグの前にある場合、標準の準拠モードではなく、出力がブラウザをクォークモードで表示するようになっている可能性があります。

+0

ええと、実際に私はちょうどquirksモードでレンダリングしようとしました。私は、正しいレイアウトのものをIEのquirksモードで使用することを意味し、レンダリングはPHPコードを含むものと同じです。だから、コード内の何かがIEに強制的にそれを表示するように思われる。 – catandmouse

+1

解決しました。実際にdoctypeの前に1つの "スペース"があります。私たちはそれを削除し、IEはそれを標準モードでレンダリングします。とにかく助けてくれてありがとう。 – catandmouse

3

含まれているコードに問題があります。スタイルではなく壊れたタグで問題が発生している可能性があります。いくつかのネスティングが進行中で、タグが開いているもの以外に何かによってタグが閉じられているか、何かが開いたままになっています。エラーを見つけるために、厳密なHTMLバリデーターを通して出力コードを実行してみるべきです。

2

IEを奇妙なモードにしているような音がします。 margin:autoを使用している場合。要素上では、IEはquirksモードでそれを無視する傾向があります。

doctypeが出力されるファイルの最初のものであることを確認してください(改行、スペース、コメントなどはありません)。また、あなたのページが与えられたdoctypeに対して有効であることを確認してください。

上記がうまくいかない場合は、コードを投稿してください。

+0

ええ、それは奇妙なモードの問題です。既にそれを修正しました。ありがとう! – catandmouse

関連する問題