Очистка всех стилей и превращение каждого браузера в чистый лист идеален и должен быть сделан, но кодирование для каждого отдельного браузера просто невозможно. Вы не можете создать веб-сайт с CSS, который будет выглядеть на 100% одинаково в каждом браузере, если вы не закодируете все на пиксельной основе, и даже тогда у вас возникнут проблемы, основанные на интерпретации IE отступов и полей. Пиксель не всегда пиксель.
Тем не менее, мое решение, как реализации CSS с самого начала, состоит в том, чтобы сначала очистить все отступы и поля, которые вызывают большинство проблем, в вашем основном файле CSS.
* { padding: 0; margin: 0; }
Затем создайте свой сайт, как обычно - в идеале изначально для Firefox, так как есть хаки, которые вы можете использовать для Safari и всех версий IE. В зависимости от «рендеринга как IE _» это недопустимо. Проверьте свой сайт в IE 6, 7, 8 (используйте IE Tester, если необходимо), Firefox и Safari одновременно. Постарайтесь внести как можно больше мелких изменений, чтобы все они выглядели очень похожими. Затем войдите и решите оставшиеся незначительные проблемы (на данный момент у вас может быть только один или два на браузер - если таковые имеются).
<!--[if IE 6]><link href="css/CSSName_IE6.css" rel="stylesheet" type="text/css"><![endif]-->
<!--[if IE 7]><link href="css/CSSName_IE7.css" rel="stylesheet" type="text/css"><![endif]-->
<!--[if IE 8]><link href="css/CSSName_IE8.css" rel="stylesheet" type="text/css"><![endif]-->
После того как вы создали свою основную таблицу стилей со всеми стилями для всего сайта, создайте условные комментарии для отдельных таблиц стилей для IE 6, 7 и 8, в которых вы переопределяете только те атрибуты, которые необходимо переопределить.
например. Если вам нужно отрегулировать размер шрифта от обычного .8 em для Firefox до .7 em для IE 6, но ваш конкретный селектор имеет 12 других атрибутов, поместите только этот единственный переопределенный атрибут в условную таблицу стилей. Не перезаписывайте весь стиль всеми атрибутами. Это не нужно.
Мастер CSS
.iframestyle { float: left; margin-right: 3px; width: 305px; }
IE 6
.iframestyle { width: 309px; height: 263px; }
IE 7
.iframestyle { width: 309px; margin-top: 0px; }
IE 8
.iframestyle { width: 305px; margin-top: 0px; }
Надеюсь, это поможет лучше показать, что я имею в виду (и да, в IE 8 ширину нужно было указывать снова, так как по какой-то причине он выбирал другие стили IE).