Работа с формами CSS и IE Doctype - PullRequest
0 голосов
/ 25 августа 2011

Я работал над плагином jQuery, включающим CSS Shapes . Проблема, с которой я столкнулся, заключается в том, что формы CSS не работают в IE8, если не объявлен DOCTYPE. Это будет мой первый плагин jQuery.

Мой вопрос: как разработчики jQuery решают эту проблему? Должен ли я просто объяснить в документации, что для работы этого плагина требуется DOCTYPE, или я должен написать отдельный CSS, который работает в режиме Quirks?

Ответы [ 2 ]

5 голосов
/ 25 августа 2011

Никто намеренно в наши дни не использует действительный тип документа, что вызывает Режим причуд .

http://hsivonen.iki.fi/doctype/

Вам умышленно нужен режим «Причуды» - без учёта.

Пожалуйста, не делайте этого. Умышленное проектирование для режима Quirks приходить и преследовать вас, ваших коллег или ваших преемников в будущее - когда никто больше не заботится о Windows IE 6 (уже нет одна заботится о Netscape 4.x и IE 5). Проектирование для режима Quirks плохая идея Поверь мне.

Единственная возможная причина, по которой у сайта не было бы типа документа, - это если унаследованный сайт требует слишком много усилий, чтобы настроить его для работы в режиме стандартов.

Ваш плагин просто не должен работать в режиме Quirks.

Вам даже не нужно упоминать это в своей документации. Ожидается, что все сломается. Например, ни один из новых CSS3-компонентов в IE9 не работает, если страница находится в режиме Quirks.

1 голос
/ 26 августа 2011

Doctype следует считать обязательным для всех сайтов.Отсутствие такового приведет к переходу IE в режим причуд.Это плохо.

Это имело место в течение очень долгого времени (с момента выхода IE6), поэтому любому, кто еще не использует Doctype, действительно не следует писать HTML для собственной безопасности!;-) Поэтому я не думаю, что вам следует беспокоиться о том, как ваш код выглядит без doctype.

Однако я хотел бы отметить, что фигуры CSS, которые вы рисуете, хотя и очень умные, должнысчитаться хаком.Есть несколько гораздо лучших способов получить произвольные формы в браузере, чем этот.

Кроме того, обратите внимание, что большинство фигур на странице, на которую вы ссылаетесь, не будут работать в IE8 или более ранних версиях.(круг и овал используют CSS border-radius, а многие другие используют transform, ни один из которых не поддерживается в IE8, и довольно многие из них используют CSS-селекторы :before и :after, которые есть в IE8, ноне IE7).Даже там, где HTML + CSS может достичь этих результатов, он определенно не предназначен для такого рода вещей.На самом деле, даже в Firefox 3.6 на странице, на которую вы ссылаетесь, я вижу некоторые глюки рендеринга.

Если вы хотите рисовать фигуры на своей странице с помощью кода, лучше использовать соответствующую библиотеку для рисования, а непытаясь взломать HTML + CSS, чтобы выполнить ваши прихоти.

Я бы порекомендовал такую ​​библиотеку, как Raphael .Эта библиотека может рисовать произвольные фигуры в браузере, используя язык векторной графики SVG.Он даже работает в более старых версиях IE (где он использует аналогичный язык, называемый VML), поэтому у вас есть практически полная кросс-браузерная поддержка.Он также поддерживает анимацию и другие эффекты, что было бы совершенно невозможно при использовании форм CSS, которые вы используете в данный момент.

...