Уже чертики зеленые скоро померещатся... Имеется: вот такой html со стилями http://rghost.ru/43460429 лежит в структуре сайта на ПК Windows 7 Apache 2.2 PHP 5.2 Скрипт делает две вещи: Код (Text): $var = file_get_contents(".../default.html"); echo $var; Проблема: При отдаче сервером HTML дизайн рушится в Chrome/Iron, Firefox. А вот в IE чувствует себя отлично. WinMerge сообщает, что код страницы из браузера и файл на диске ничем не отличаются. Когда открываю html-файл с диска двойным кликом в любом браузере или открываю сайт в IE, все ОК. Вот так: Когда открываю сайт в других браузерах, все плохо. Вот так: Т.е. <div> с Footer'ом ложится под контент и боковые панели. Что, и главное где, происходит, понять не могу. Прошу помощь зала.
=) сейчас мне скажут, что я старый и криворукий говнюк, но таблица решает этот вопрос кроссбраузерно и безгеморойно.
Поддерживаю Your. Если всё же попытаться проанализировать чем может отличаться файл, открытый как файл и он же через протокол http, то это http заголовки (в т.ч. про кодировку), абсолютные пути к картинкам/стилям и какие-то тонкости разрешений JavaScript. Надеюсь такого у вас нет: <img src="C:\ololo.jpg"> ? Мучайтесь дальше с новым знанием
Таблицы - это хорошо, но это будет "плавающий" дизайн с ресайзом отдельных панелей и выплывающими, выезжающими окошками.В этом случае дизайн на таблице мне не подкакает ли? Дивы все-равно будут нужны. Пишу с мобилки, потому дальше с цитатами будет сложно... По поводу кривого дизайна. Если б он был кривым, все плыло бы во всех случаях. А тут вредничают только webkit и mozilla при получении страницы от апача. Пути к стилям относительные, как видно из скринов, стили подгружаются корректно. Да и в случае с виндой и локальным сервером, абсолютные пути также работают. Вот по поводу кодировки гляну, как до компа доберусь, может где-то BOM - неBOM конфликт. Добавлено спустя 6 минут 36 секунд: http://localhost/ ) Я же говорю локальный апач. В вебе этой страницы не будет. Это порт "классического" софта в интранет.
Решено. Отказ от "совместимости" с HTML5 в пользу XHTML решил проблему. Лучшее - враг хорошего. (с) Один мудрый товарищ.
По картинкам больше похоже на то, что у элементов не прописаны margin-ы и padding-и. А т.к. у браузеров разные дефолтные значения, то вполне естественно, что некоторые блоки будут "цепляться" друг за друга углами. Во всяком случае с функцией file_get_contents проблема точно никак не связана. Может, там перед выводом хтмл какая-нибудь ошибка выводится? upd Проверил хтмл в пяти браузерах — смотрится одинаково. upd 2 Вывел страницу через Код (PHP): <?php $var = file_get_contents('default.html'); echo $var; Тоже смотрится одинаково. А вот так адрес разве пишут ".../default.html"? Во-первых, надо две точки, если нужно обращение к папке ниже "../default.html" Во-вторых, обращаться к папкам ниже не очень-то правильно. Права доступа на сервере могут оказаться неподходящими. И линки к другим подключаемым файлам (стилям и картинкам) в хтмл должны быть тогда абсолютными, а не такими, как в файле Код (Text): <link rel="stylesheet" href="css/default.css" type="text/css" media="screen, projection" /> upd 3 простите, что влез. болею, и только проснулся, неадекватен..
ХЗ... ИЕ, ведь, показывал на отлично, да и другие файл из папки рендерили как положено. Вот и я думал, что чтение того же самого и передача в браузер должна давать тот же результат. Ан-нет. Код был ужат до двух строк, приведенных Вами ниже. Результат один. С локального сервера или просто "Открыть с помощью..."? А у меня, блин, черная дыра, в которую HTML5 проваливается. Имелось в виду, что файл не с корня подбирается, а в глубине структуры, т.е. перед "default" много букв. Сначала была сборка шаблона из частей, потом, в поисках проблемного места, все собрал в один файл. Подключение было из index.php в корне сайта, потому стили в относительных путях цеплялись, но абсолютные тоже пробовал ставить, эффекта не давало. Ладно, буду по старинке, без лишнего выпендрежа. Хотелось новизны, а получилась ж..а.
И так, и эдак. Ну раз у других работает, и не зависит ни от html5, ни от file_get_contents, то что ещё может быть, вирус? Проверил ещё вариант с Код (Text): file_get_contents('../default.html') с подцеплением из папки выше, а в линке поправил адрес на Код (Text): href="../css/default.css" Тоже работает одинаково. Давай уж разберись. А то и КМС-ки, если поставишь, будут глючить.
Если пользуюсь, то CMF ModX, очень уважаю за абсолютную гибкость и возможность быстро и нетрудно "доработать напильником" все, что угодно, включая внутренности CMF, но в данном случае ни ModX ни другие, практически неприменимы. Проще оказалось все с нуля руками.