Браузерлерді Quirks режиміне қою үшін Doctype қойыңыз
Егер веб-беттерді бірнеше айдан астам уақыт бойы жасаған болсаңыз , барлық браузерлерде бірдей көрінетін бетті жазудағы қиындықты білесіз. Шындығында бұл мүмкін емес. Көптеген браузерлер тек қана жұмыс істей алатын арнайы мүмкіндіктермен жазылған. Немесе оларда басқа браузерлердің қалай жұмыс істейтінінен өзгеше заттарды өңдеудің арнайы әдістері бар. Мысалға:
- Қабаттар Netscape браузерлерінде қолдануға арналған. Олар кез-келген басқа браузерде жұмыс істемейді және шын мәнінде Netscape 6.x + -де ескірген.
- Кірістірілген кадрлар бастапқыда тек Internet Explorer үшін жасалды және содан кейін HTML ерекшеліктерінің бір бөлігі болды.
- Internet Explorer 6.0 қосымша кеңістікті (мысалы,
) дөңгелектің мазмұнын бір (ұзын) жолға жазбасаңыз, айналасындағы тегтер. (IE 6-дің осы сияқты басқа да көпшіліктері бар). - Netscpe 4.7 дұрыс HTML-да жазылмаған кестелерді көрсетпейді - орнына бос бет көрсетіледі. Бұл Netscape 6-де тіркелді.
Браузерлерді әзірлеушілердің проблемасы ескі браузерлер үшін орнатылған веб-беттермен кері үйлесетін веб-браузерлерді жасау керек. Бұл мәселені шешу үшін браузер жасаушылар браузерлердің жұмыс істеу режимдерін жасайды. Бұл режимдер DOCTYPE элементінің бар немесе жоқтығы және DOCTYPE шақыратыны арқылы анықталады.
DOCTYPE коммутация және «Quirks Mode»
Егер сіз келесі DOCTYPE-ді веб-бетте орналастырсаңыз:
Заманауи браузерлер (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) келесі түрде түсіндіреді:
- Дұрыс жазылған DOCTYPE болғандықтан, бұл стандарттар режимін іске қосады.
- Бұл HTML 4.01 өтпелі құжат
- Стандарттар режимінде болғандықтан, браузерлердің көбісі HTML 4.01 өтпелі мазмұнмен үйлесімді (немесе көбінесе үйлесімді) болады
Егер сіз осы құжатқа DOCTYPE қойсаңыз:
Бұл қазіргі заманғы браузерлерге HTML 4.01 бетін DTD-ге қатаң сәйкестікте көрсету керек екенін білдіреді.
Бұл браузерлер «қатаң» немесе «стандарттар» режиміне өтеді және бетті стандарттарға сәйкес келтіреді. (Осылайша, осы құжат үшін, FONT элементі HTML 4.01 қатаң деп танылғандықтан, тегтер браузер арқылы толық еленбеуі мүмкін.)
Егер сіз DOCTYPE-ді толықтай тастасаңыз, браузерлер автоматты түрде «quirks» режиміне түседі.
Төмендегі кестеде ортақ браузерлердің әртүрлі ортақ DOCTYPE декларациялары ұсынылғанда не істейтіні көрсетілген.
Microsoft корпорациясы оны қатал етеді
Сонымен қатар, Internet Explorer 6-да DOCTYPE декларациясының бірде-біреуін қойсаңыз, олар Quirks режиміне өтеді. Осылайша, осы мысалдардың екеуі де IE 6-ді Quirks режиміне қойып береді, бірақ DOCTYPE декларациясы қатаң стандарттар режимінде екенін айтады:
және XHTML 1.1 DOCTYPE:
Сонымен қатар, егер сіз IE6-дан өткен болсаңыз, онда IE8 және IE9-да қосқан «ерекшелігі» бар: META элементін ауыстыру және веб-сайт қара тізімдемесі. Шын мәнісінде, осы екі шолғыш нұсқасы қазір жетіге дейін (!) Әр түрлі режимдерге ие:
- IE 5.5 quirks режимі (IE 8 және 9)
- IE 7 стандарты режимі (IE 8 және 9)
- IE 8 стандартты режимде (IE 8 және 9)
- IE 8 стандарттары режимі (IE 8 және 9)
- IE 9 дерлік стандартты режимі (IE 9)
- IE 9 стандарттары режимі (IE 9)
- XML режимі (IE 9)
IE 8-де «Үйлесімділік режимі» енгізілді, онда пайдаланушы рендеринг үлгісін IE 7 режиміне ауыстыруды таңдай алады. Осылайша сіз DOCTYPE және META элементтерін пайдаланып орнатқыңыз келген режимді орнатсаңыз да, сіздің бетіңіз бұрынғысынша төмен стандарттарға сай режимге ауысуы мүмкін.
Quirks Mode дегеніміз не?
Quirks режимі барлық қызықты көрсетілімдермен және сәйкессіз браузерлермен жұмыс істеуге көмектесу үшін жасалды және веб-дизайнерлер сол заттармен күресу үшін қолданды. Браузер өндірушілерінің алаңдаушылығы, егер браузерлерді толық спецификацияларға сәйкестендіретін болса, веб-дизайнерлер артта қалады.
DOCTYPE коммутация және «Quirks Mode» параметрлерін орнату арқылы бұл веб-дизайнерлерге браузерлердің өздерінің HTML файлдарын қалай беруін қалайтынын таңдауға мүмкіндік берді.
Quirks режимінің әсері
Көптеген браузерлер Quirks режимінде бірнеше әсерлері бар:
- Кейбір браузерлерде құсбелгі моделі IE 5.5 версиясында кәдімгі режимде қораптың үлгісіне өзгереді.
- Кейбір браузерлер стильдерді кестелерге мұра етпейді
- Quirks режимі CSS және CSS-нің орналасуын саралауға әсер етеді, егер сіз беттерді стандартты режимге quirks режимінен түрлендірсеңіз, CSS-нің орналасуын сынап көріңіз және кеңінен талдау жасаңыз.
- Quirks режимінде болғанда сценарийлерге өзгерістер енгізу үшін қараңыз. Firefox id атрибуты жұмыс істеу жолын өзгертеді, мысалы. IE8 және IE9 сценарийлерді скрипттеу режимінде өте күрделі өзгерістерге ұшыратады.
Сондай-ақ, «Стандарттар режимі дерлік» параметрінде айырмашылық бар:
- Тек сурет ішіндегі кесте ұяшықтарының биіктігі стандарттар режимінен басқаша есептеледі.
DOCTYPE қалай таңдауға болады
Мен DOCTYPE тізіміндегі мақалада егжей-тегжейлі айтып беремін, бірақ төмендегілердің кейбір жалпы ережелері берілген:
- Алдымен стандарттар режимін таңдаңыз. Және қолданыстағы стандарт HTML5 болып табылады: HTML5 DOCTYPE-ні пайдаланудан аулақ болудың нақты себебі болмаса, онда сіз оны пайдалануыңыз керек.
- Маңызды элементтерді растау қажет болса немесе қандай да бір себептермен жаңа мүмкіндіктерден аулақ болу керек болса, қатаң HTML 4.01 нұсқасына өтіңіз:
- Егер кестеде кескіндерді кесіп тастасаңыз және оларды түзеткіңіз келмесе, Transitional HTML 4.01 нұсқасына өтіңіз:
- Бессмысқалдар режимінде беттерді әдейі жазуға болмайды. Әрқашан DOCTYPE пайдаланыңыз. Бұл сізге болашақта даму уақытында үнемдеуге мүмкіндік береді және шынымен де пайдасы жоқ. IE6 тез танымал болып келеді және осы браузерді жобалау арқылы (ол шын мәнінде Quirks режимінде жобалау болып табылады) сіз өзіңізді, оқырмандарыңызды және сіздің беттеріңізді шектейсіз. Егер IE 6 немесе 7-ге жазуға тура келсе, онда қазіргі браузерлерді күлкілі режимге мәжбүрлеудің орнына оларды қолдау үшін шартты түсініктемелерді қолданыңыз.
DOCTYPE пайдалану неге
DOCTYPE түрінің бұл түрін білетін болсаңыз, сіздің веб-беттеріңізге DOCTYPE арқылы тікелей әсер етуіңіз мүмкін, ол браузер сіздің бетіңізден күтуге болатындығын көрсетеді. Сондай-ақ, сіз DOCTYPE пайдалануды бастағаннан кейін сіз жарамды болу үшін жақынырақ HTML жазуыңыз керек (оны әлі де растауыңыз керек). Сондай-ақ, жарамды XHTML жазу арқылы браузер жасаушыларға стандартты стандартты браузерлерді құруды ұсынамыз.
Браузер нұсқалары және Quirks режимі
DOCTYPE | Android Chrome Firefox IE 8+ iOS Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Жоқ | Quirks режимі | Quirks режимі | Quirks режимі |
HTML 3.2 | |||
Quirks режимі | Quirks режимі | Quirks режимі | |
HTML 4.01 | |||
Өтпелі | Стандарттар режимі * | Стандарттар режимі * | Стандарттар режимі |
Өтпелі | Quirks режимі | Quirks режимі | Quirks режимі |
Қатаң | Стандарттар режимі | Стандарттар режимі * | Стандарттар режимі |
Қатаң | Стандарттар режимі | Стандарттар режимі * | Стандарттар режимі |
HTML5 | |||
Стандарттар режимі | Стандарттар режимі * | Quirks режимі | |
* Осы DOCTYPE арқылы браузерлер стандарттарға сай келеді, бірақ кейбір мәселелері бар - тексеруге міндетті. Бұл сондай-ақ «дерлік стандарттар режимі» деп аталады. |