2010-11-22 2 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''d? – stillstanding

+0

Можете ли вы показать содержимое listing.php? И где/как вы называете position_list() –

+0

@stillstanding: Включенный список представляет собой список различных функций для конкретной страницы (это своего рода календарь для бронирования событий). – catandmouse

ответ

2

Сравните источник в IE с линией включения и без нее. Это то, чего вы ожидаете? Есть ли какие-либо предупреждения PHP?

Довольно странно видеть, как вы комментируете часть function {}, не комментируя тело функции. Теперь вы фактически вызываете position_list();. Какая из строк заключается в том, что вызывает изменение рендеринга?

Если это все до doctyle и <html> тег, то может случиться так, что выход запускает браузер для рендеринга в режиме quirks, а не в режиме стандартного соответствия.

+0

Хм, на самом деле я просто попробовал рендеринг в режиме quirks.Я имею в виду, используя тот, который имеет правильный макет, но в режиме IE quirks, а рендеринг - это то же самое, что и код с включенным php-кодом. Таким образом, кажется, что что-то в коде заставляет IE отображать его в режиме quirks. – catandmouse

+1

Решил это сейчас. Это действительно одно «пространство» перед доктриной. Мы удалили его, и теперь IE отображает его в стандартном режиме. Во всяком случае, спасибо за помощь всем. – catandmouse

3

Возможно, возникла проблема с включенным кодом, а не со стилями, но со сломанными тегами. Некоторое гнездо происходит, и тег закрывается чем-то другим, кроме того, что его открыло или что-то остается открытым. Вы должны попробовать запустить выходной код через строгий html validator, чтобы найти ошибку.

2

Похоже, вы помещаете IE в режим причуд. Если вы используете margin: auto; на элементе IE стремится игнорировать его в режиме quirks.

Убедитесь, что doctype - это самое первое, что выводится в файл (без разрывов строк, пробелов, комментариев и т. Д.). Кроме того, убедитесь, что ваша страница проверена на соответствие данному doctype.

Если вышеуказанное не работает, напишите больше кода.

+0

Да, это проблема режима quirks. Уже исправлено. Благодаря! – catandmouse