Я занимаюсь проектированием / созданием сайта, и, как хороший маленький разработчик, я слежу за тем, как все работает во всех популярных браузерах - текущих версиях Firefox, Chrome, Safari (для Windows) и Chrome.и Internet Explorer (8, а не 9-й превью).
В любом случае, в Chrome все выглядело абсолютно нормально, но мой друг, который давал мне отзывы, сказал мне: «О, кстати, вашсайт ужасно рендерит в Chrome. "Я дал ему стандартный ответ «работает на моей машине», и он ответил, что, по его мнению, это проблема расширения.
Он дал мне краткий список популярных расширений, которые он использует, и через некоторое времяметодом проб и ошибок я обнаружил, что проблема заключается в AdBlock.Я не буду утомлять вас подробностями настоящей проблемы рендеринга, но мы заметили нечто странное.Дело не в том, что AdBlock что-то блокировал на странице, а в том, что простое присутствие AdBlock в Chrome вызывало проблему.Я знаю это, потому что проблема сохраняется, даже когда а) я приостанавливаю AdBlock и б) когда я специально исключаю эту страницу / сайт из блокировки AdBlock.
С тех пор я исправил проблему (я заметил это ранее вFirefox 3.0 «BrowserShot», но исправил ошибку только в FireBug - я еще не применил ее к реальной копии), но это заставило меня задуматься, есть ли другие проблемы, о которых мне следует знать.
Похоже, это не вопрос «Причуд против режима стандартов».document.compatMode по-прежнему показывает «CSS1Compat» (стандартный режим), и когда я удаляю определение doctype для запуска режима причуд, сайт по-прежнему отображается правильно (хотя с некоторыми отступами, измененными местами - не о чем беспокоиться).
Кто-нибудь заметил эту проблему раньше?Изменил ли AdBlock способ отображения страниц в Chrome, даже если он не активен на этом конкретном сайте?
Edit # 1:
Это становится страннее.Я пытался создать пример, но по какой-то причине он не будет отображаться неправильно.В конечном итоге я скопировал исходный (то есть с ошибкой) HTML-файл в новый файл и бросил весь CSS-файл в тег <style>
в <head>
документа.Он все еще работал.
Немного проб и ошибок, и я определил, что проблема существует только при включении css через <link rel="stylesheet">
, но не через <style>
.
Может ли кто-нибудь пожалуйста объяснить, что здесь происходит?
Edit # 2:
Воткод, с которым я работаю:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="outer">
<img src="placeholder.png" width="150px" height="150px" />
<div id="inner">
<h1>Test</h1>
<p>Lorem ipsum blah blah blah</p>
</div>
</div>
</body>
</html>
CSS:
#outer {
border: 1px solid #000;
width: 700px;
}
#inner {
float: right;
width: 540px;
}
Если вы хотите попробовать это самостоятельно, я поместил некоторые файлы на свой сервер: