0

Я запустил веб-сайт в этот уик-энд для моего клиента. Он хорошо выглядит в Firefox, Chrome, Opera, Safari и IE 9.IE 7 и 8, возможно 6 Проблемы с сайтом

Однако IE 7 и 8 (возможно, 6 тоже) дают мне реальные проблемы. Домашняя страница в порядке, но на вторичных страницах разная тематика.

Я отредактировал Двадцать один Wordpress тему. У меня есть Mac, поэтому мне сложно тестировать IE, так как это браузер Windows. У меня есть ноутбук XP, на котором установлен IE 8. Вот как я знаю, что это испорчено. На вторичных страницах очень плохо.

Мое основное содержание, левая панель и нижний колонтитул все неправильно выровнены. Я попробовал несколько вещей, чтобы попытаться исправить проблему. Я исследовал хаки и пробовал их, но безрезультатно.

Я попытался изменить позиционирование на своих изображениях, но это просто заставило страницу выглядеть еще хуже, чем сейчас. Я действительно в тупике.

Если кто-то может мне помочь или вести меня в правильном направлении, пожалуйста, было бы очень признательно. URL-адрес: www.jubileecf.com. Спасибо, ~ Ash ~

+2

Вы должны начать с исправления разметки html. Идите запустите w3c html validator на сайте, вы увидите, что в html есть несколько синтаксических проблем. –

+0

Как веб-разработчик, ваша работа - убедиться, что ваш сайт хорошо выглядит во всех браузерах (или, по крайней мере, во всех браузерах, которые запрашивает клиент). Трудность тестирования в IE не является оправданием; если вы не тестировали в IE, то вы не выполнили свою работу должным образом, и ваш клиент имеет право расстраиваться по этому поводу. – Spudley

+0

, кстати, ваш сайт * невероятно * медленно загружается. Возможно, вы захотите это исправить. – Spudley

ответ

1

Проблема видна в коде:

<script>(function fix_ie8() {if (strpos($_SERVER['HTTP_USER_AGENT'],”MSIE 8″)) {header(”X-UA-Compatible: IE=7″);}} 

add_action (»send_headers’,» fix_ie8‘))();

Это неверно по нескольким причинам.

  • Во-первых, он использует неправильные символы кавычек.

  • Во-вторых, у вас есть PHP-код, пытающийся быть Javascript.

  • В-третьих, даже если вы измените его на PHP, вам все равно нужно его переместить, потому что header() может быть вызван только до того, как будет выведена какая-либо часть страницы. Поэтому это нужно сделать, прежде чем вы начнете, а не в середине заголовка.

  • И, наконец, причина, по которой это так сильно нарушает сайт, вызвана тем, что интерпретатор Javascript вызывает ошибку и прекращает обработку. Поэтому вы исправляете IE в файле html5.js, который вы включите, не будет запущен, и, таким образом, ваш макет страницы будет поврежден.

Короче говоря, эта строка кода должна быть заблокирована и никогда не говориться о ней снова.

Так давайте выберем друг от друга, что происходит здесь и попытаться найти решение ...

код пытается использовать заголовок X-UA-Compatible, чтобы заставить IE8 в режиме IE7-совместимости. Я бы сказал, что, поскольку вы заявляете, что никогда не тестировались в IE, почему вы думаете, что вам нужно использовать режим IE7-Compatible?

Почему бы просто не попробовать это без этой строки кода и посмотреть, что произойдет? Если в IE8 возникают небольшие сбои в IE8, лучше исправить их, а не использовать режим совместимости.

Если вы должны использовать режим, совместимый с IE7, то вы можете использовать его без каких-либо скриптов. Просто используйте метатег:

<meta http-equiv="X-UA-Compatible" content="IE=7" /> 

Это все, что вам нужно.

Если вы хотите, чтобы тег влиял только на IE8 (то есть не на IE9), вы можете обернуть его в условные комментарии IE (которые вы уже используете в другом месте на странице).

Смежные вопросы