Кіріспе
Кодтау әдісі CSS-ге шабу - браузерге, нұсқа нөміріне немесе мүмкіндіктеріне байланысты CSS таңбалауын жасыру немесе көрсету үшін қолданылатын кодтау әдісі. Браузерлер CSS мінез-құлқының әртүрлі түсіндірмелері мен W3C стандарттарын қолдаудың әртүрлі деңгейлеріне ие. Кейде CSS-ті кейде үйлесімді рендерингке ие емес бірнеше браузерлерде біркелкі орналасу көрінісіне жету үшін пайдаланады. Бұл хактардың көпшілігі браузерлердің заманауи нұсқаларында жұмыс істемейді, ал басқа әдістер, мысалы, мүмкіндіктерді қолдауды анықтау, кең таралған.
A CSS hack is a coding technique used to hide or show CSS markup depending on the browser, version number, or capabilities. Browsers have different interpretations of CSS behavior and different levels of support for the W3C standards. CSS hacks are sometimes used to achieve consistent layout appearance in multiple browsers that do not have compatible rendering. Most of these hacks do not work in modern versions of the browsers, and other techniques, such as feature support detection, have become more prevalent.
Жарамсыз немесе талаптарға сәйкес келмейтін CSS
CSS-ті әртүрлі браузерлер түсіндірудегі ерекшеліктерге байланысты, CSS-тің көпшілігі тек белгілі бір браузерлер ғана түсіндіретін жарамсыз CSS ережелерін жазуды немесе белгілі бір браузерлердегі қателерге сүйенуді қамтиды. Бұған мысал ретінде Internet Explorer 6 бағдарламасына бағыт-бағдар беру үшін ережелерді асты сызылған сызықпен (кеңдігімен) алдын ала жазуды қарастырамыз. Басқа браузерлер сызықты елемейтін болады, оны бір браузерге арналған кодты жазуға пайдалануға мүмкіндік береді. CSS-тің ұқсас хактері синтаксистік қателерді, мысалы жұлдызшаларды, бос орындар мен CSS-тің қасиеттер атаулары бойынша түсініктемелерін енгізуді қамтиды. Сонымен қатар, Internet Explorer 6 және 7-де ! маңызды декларациясы таңбалау белгісінен кейінгі кез келген жолмен танылады, мысалы !ie.
Қолдауы жоқ CSS
Жаңа CSS ережелері қазіргі стандарттарға сәйкес дұрыс болса да, оларды ескі браузерлер " жарамсыз " деп елемеді. Ескі ережелерді жаңа ережелерге көшіріп, ескі ережелерді жою немесе өзгерту арқылы ескі браузерлерде белгілі бір ережелерді ғана іске қосуға болады.
Сыншылар
Хактерді пайдаланып кодты жасыру браузерлер жаңартылған кезде парақтардың дұрыс көрсетілмеуіне әкеледі. Бұл хактар жаңа браузерлерде күтпеген мінез-құлыққа әкелуі мүмкін, олар оларды бұрынғыларына қарағанда басқаша түсіндіруі мүмкін. Internet Explorer 6 және 7 қолданылмай қалғаннан бері CSS хакерлері де азайды. Қазіргі заманғы ерекшеліктерді мақсат ету әдістері әлсіз және қатеге ұшырайды.
Браузер префикстері
Әр танымал браузерлік рендерингтік қозғалтқыштардың әрқайсысының тәжірибелік қасиеттері үшін өз өндіруші префиксі бар. Алайда, тірі кодтағы осы қасиеттердің көбеюіне байланысты, браузер өндірушілері осы практикадан ерекшелік жалаушаларына ауыса бастады.
Шектеу
Жеткізуші префикстері әзірленіп жатқан мүмкіндіктер үшін жасалған, яғни синтаксис тіпті соңғы болмауы мүмкін. Сонымен қатар, әр браузердің функцияны іске асыруы үшін ереже қосу көптеген браузерлерді қолдағыңыз келгенде жақсы масштабтамайды. Нәтижесінде, негізгі браузер өндірушілері @supports функциясы сияқты басқа әдістердің пайдасына өндіруші префикстерінен алыстап жатыр.
JavaScript функцияларын анықтау
Бірнеше JavaScript кітапханалары бар, олар қандай мүмкіндіктер бар екенін анықтауға арналған, сондықтан CSS ережелерін оларды мақсат ету үшін жазуға болады. Modernizr сияқты кітапханалар html элементіне сыныптарды қосады, бұл CSS ережелеріне мүмкіндік береді.