Я использовал специальные символы '#' '_' и '\' для совместимости с браузером IE. Но теперь моя таблица стилей не проходит проверку W3c из-за использования взлома IE - PullRequest
1 голос
/ 02 сентября 2011

Я использовал специальные символы '#' '_' и '\' для совместимости с браузером IE.Но теперь моя таблица стилей не проходит проверку W3c из-за использования взлома IE.Есть ли в любом случае таблица ошибок без ошибок с совместимостью с браузером.

Теперь я не могу удалить эти взломы IE, потому что мои HTML-файлы сейчас находятся в разработке программ на Java.

Мои взломы такие:

/ * Для IE8 * / top: -15px;

/ * Для IE7 * / # top: -10px;

/ * Для IE6 * / _ top:-1px;

Ответы [ 5 ]

1 голос
/ 02 сентября 2011

Да, не используйте недопустимые хаки CSS, они очень хрупкие.

Для конкретного случая выбора IE лучше использовать условные комментарии. Большинство решений помещают дополнительные таблицы стилей в CC, но если вы не хотите этого делать, вы можете переключать классы с помощью CC:

<!--[if IE 6]> <body class="ie6"> <![endif]-->
<!--[if IE 7]> <body class="ie7"> <![endif]-->
<!--[if gte IE 8]><!--> <body> <!--<![endif]-->

, а затем сделайте все ваши стили в одном месте в зависимости от класса:

#something { top:-15px; }
body.ie7 #something { top:-10px; }
body.ie6 #something { top:-1px; }

(Предполагается, что IE8 «в порядке» и должен обслуживаться по тем же правилам, что и другие браузеры, следовательно, «нисходящий уровень» CC, который позволяет всем остальным видеть бесклассовый <body>.)

1 голос
/ 02 сентября 2011

Разложите ваши адаптации для IE в отдельные таблицы стилей и включите их через условные комментарии , например. для таблицы стилей IE8:

<!--[if IE 8]
<link rel='stylesheet' href='ie8.css' />
<![endif]-->
1 голос
/ 02 сентября 2011

Использовал определенную HTML-страницу в условном выражении.

<!--[if IE ]>
  <link href="iecss.css" rel="stylesheet" type="text/css">
<![endif]-->

Ваша ссылка

http://reference.sitepoint.com/css/conditionalcomments
0 голосов
/ 02 сентября 2011

Существует также решение без условных комментариев, которое позволяет хранить все правила CSS в одном файле.

* html selector { /* rules for IE6 */ }
*:first-child+html selector { /* rules for IE7 */ }

Для IE8 вам не нужны никакие CSS-хаки;это браузер с очень хорошей поддержкой CSS 2.1.Если вам, несмотря на этот факт, он нужен, вы можете попробовать установить значение без взлома, а затем переписать его с помощью некоторого селектора CSS3, который не будет распознан IE8.

selector { /* rules for IE8 */ }
html:root selector { /* rules for IE9, Firefox, Chrome, etc. */ }
0 голосов
/ 02 сентября 2011

Я бы сказал, не слишком переживайте по поводу проверки.

Это полезно использовать при попытке выяснить, когда что-то сломано, но не является целью любого веб-сайта.

Вместо хаков в вашем css, почему бы не использовать условные комментарии ?

<!--[if lt IE 8]>
  //styles here
<![endif]-->

Вы можете разместить там отдельные стили или ссылку на таблицу стилей.

В любом случае, только IE меньше 8 видит это.

http://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...