CSS-filter

En CSS-filter er en kodning teknik, der anvendes til at skjule eller vise CSS markup afhængigt af browseren, versionsnummer, eller kapaciteter. Browsere har forskellige fortolkninger af CSS adfærd og forskellige niveauer af støtte til W3C standarder. CSS filtre er undertiden bruges til at opnå ensartet layout optræden i flere browsere, der ikke har kompatible rendering.

Præfiks filtre

De fleste browsere har CSS egenskaber, der gælder i den pågældende kun browseren, eller i hvert fald i den underliggende gengive motoren. Præfikset på disse egenskaber er specifikt for hver rendering motor. Her er et eksempel.

Trident Alle eksperimentelle egenskaber er præfikset "-ms-", f.eks i stedet for.

Gecko All eksperimentelle selektorer, egenskaber og værdier er præfikset "-moz-", f.eks i stedet for.

WebKit Alle eksperimentelle selektorer, egenskaber og værdier er præfikset "-webkit-", f.eks i stedet for.

KHTML Alle eksperimentelle selektorer, egenskaber og værdier er præfikset "-khtml-", f.eks i stedet for.

Presto

  • Alle nye vælgere, egenskaber og værdier, der blev indført ved CSS3 Tale modul er præfikset "-xv-", f.eks i stedet for.
  • Alle eksperimentelle egenskaber er præfikset "-o-", f.eks i stedet for.

DOM egenskaber svarende til leverandør-specifikke eksperimentelle CSS egenskaber er foranstillet med sælgeren-præfikset, uden nogen bindestreger.

Kommenteret backslash

Dette hack udnytter en fejl i Internet Explorer til Mac relateret at kommentere parsing. En kommentar, der sluttede i er ikke lukket korrekt i IE Mac, så regler, der skal ignoreres i IE Mac kan placeres efter sådan en kommentar. En anden kommentar er nødvendig efter reglen at lukke kommentar til IE Mac.

Box model hack

Kaldet "boksen modellen hack", fordi fejlen er det oftest bruges til at arbejde rundt er Internet Explorer boksen model bug, dette hack giver et andet sæt af egenskaber til Internet Explorer og andre browsere. Som i version 6, har IE korrigeret kassen model fejl i dokumenter, der indeholder visse Document Type Erklæringer på bestemte måder.

Den første sætning er sat til strengen, men en IE parser bug vil fortolke det som en streng med en enkelt backslash efterfulgt af en afsluttende tandbøjle til slutningen af ​​reglen. er valgt, fordi det ikke vil påvirke gengives på en skærm typografiark. Den anden regel bruger hack til browsere som Opera 5, der har parsing bug, men ikke har den boks model bug.

Understregning hack

Versioner 6 og nedenfor af Internet Explorer genkende ejendomme med dette præfiks. Alle andre browsere ignorerer sådanne egenskaber som ugyldig. Derfor er en egenskab, der indledes med en understregning eller en bindestreg udelukkende anvendes i Internet Explorer 6 og nedenfor.

Dette hack bruger ugyldig CSS og der er gyldigt CSS direktiver at udføre et lignende resultat. Således nogle mennesker anbefaler ikke at bruge det. På den anden side dette hack ændrer ikke specificitet en vælger at gøre vedligeholdelse og udvidelse af en CSS-fil lettere.

Stjerne hack

Versioner 7 og nedenfor af Internet Explorer genkende egenskaber, som indledes med ikke-alfanumeriske tegn undtagen en understregning eller en bindestreg. Alle andre browsere ignorerer sådanne egenskaber som ugyldig. Derfor er en egenskab, der indledes med en anden end en understregning eller en bindestreg ikke-alfanumeriske tegn, såsom en stjerne, kan udelukkende anvendes i Internet Explorer 7 og nedenfor.

Dette hack bruger ugyldig CSS og der er gyldigt CSS direktiver at udføre et lignende resultat. På den anden side, er dette hack ikke ændre specificitet en vælger at gøre vedligeholdelse og udvidelse af en CSS-fil lettere.

Stjerne HTML hack

Elementet er roden element i W3C standarden DOM, men Internet Explorer version 4 til 6 omfatter en mystisk overordnet element. Fuldt browsere kompatible vil ignorere vælgeren, mens IE4-6 vil behandle den normalt. Dette gør det muligt regler, der skal angives for disse versioner af Internet Explorer, som vil blive ignoreret af alle andre browsere. For eksempel denne regel angiver tekststørrelsen i Internet Explorer 4-6, men ikke i andre browsere.

Dette hack bruger fuldt gyldigt CSS.

Star plus hack

Selvom Internet Explorer 7 ikke længere anerkender den klassiske stjerne HTML hack, har det indført en lignende hack hjælp selektorer nye til IE7:

Eller ...

Denne kode vil blive anvendt i Internet Explorer 7, men ikke i nogen anden browser. Bemærk at dette hack fungerer kun i IE7 standarder tilstand; det virker ikke i særheder mode. Dette hack støttes også af Internet Explorer 8 kompatibilitetsvisning, men ikke i IE8 standarder mode. Ligesom stjernen HTML hack, bruger denne gyldigt CSS.

Barn selector hack

Internet Explorer 6 og tidligere støtter ikke "barn vælgeren", så regler, der skal angives for alle andre browsere. For eksempel vil denne regel vende stykke tekst blå i Firefox, men ikke i IE før version 7.

Selvom IE7 tilføjet støtte til barnet vælgeren er en variation af hack blevet opdaget, som gør det muligt for Internet Explorer 7 til at blive udelukket som godt. Når en tom kommentar opstår umiddelbart efter barnet vælgeren, vil IE7 droppe den regel, der følger, som vilje tidligere versioner af IE.

Negation pseudo-class hack

Internet Explorer 8 og nedenfor understøtter ikke CSS3 negation pseudo-klasse. Internet Explorer 9 tilføjet støtte til CSS3 pseudo-klasser, herunder negation pseudo-klasse.

Negation pseudo-class accepterer nogen simpel selector: En type selector, universal selector, attribut selector, klasse selector, ID selector, eller pseudo-class .. Den gælder derefter de følgende egenskaber til alle elementer, der ikke passer dette argument. Bemærk, at vælgeren har ingen betydning, det er simpelthen en streng, der aldrig vil matche et virkeligt vælgeren. Strengen ville fungere lige så godt.

En variation af dette hack anvender pseudo-klassen, som også er anerkendt af Internet Explorer 8 og nedenfor.

krop: tom hack

Den: tom pseudo-klasse, der blev indført i CSS3, formodes at vælge eneste elementer, som ikke indeholder noget indhold. Men Gecko 1.8.1 og nedenfor fejlagtigt vælger krop: tom, selv når kroppen elementet indeholder indhold. Dette kan tages fordel af at fodre eksklusive CSS regler til Firefox 2.0.x og nedenfor, sammen med andre browsere bruger samme rendering engine.

Dette hack bruger gyldigt CSS.

! vigtige særheder

Internet Explorer 7 og nedenfor har et par påhit relateret til! Vigtige erklæring, som formodes at give en højere værdi betydning end normalt. IE7 og tidligere acceptere stort set alle streng i stedet for vigtige og behandle værdien normalt, mens andre browsere vil ignorere det. Dette kan anvendes til at angive værdier udelukkende til disse browsere.

Tilsvarende IE7 og tidligere acceptere ikke-alfanumeriske tegn efter en! Vigtig erklæring, mens andre browsere vil ignorere det.

Begge disse hacks bruger ugyldige CSS. Internet Explorer 6 og nedenfor har også et problem med! Vigtige erklæringer, når den samme egenskab af det samme element har en anden værdi angivet i samme kode blokken, uden en anden! Vigtig erklæring. Dette bør resultere i den anden værdi bliver tilsidesat af den første, men IE6 og lavere ikke ære dette.

Dette hack bruger gyldigt CSS.

Dynamiske egenskaber

Mellem versioner 5 og 7, har Internet Explorer støttet et proprietært syntaks for at anvende CSS egenskaber, der ændrer dynamisk, undertiden benævnt CSS udtryk. Dynamiske egenskaber er typisk kombineres med andre hacks for at kompensere for ikke-understøttede egenskaber i ældre versioner af Internet Explorer.

Betinget kommentar

Betingede kommentarer er betingede udsagn fortolket af Microsoft Internet Explorer i HTML-kildekoden.

Kritik

Hiding kode ved hjælp hacks fører ofte til sider, der vises, når browsere opdateres forkert. Mange hacks, der bruges til at skjule CSS fra Internet Explorer 6 og sænk ikke længere arbejde i version 7 på grund af sin forbedret understøttelse af CSS standarder. Microsoft Internet Explorer udviklingsteam har bedt om, at folk bruger betingede kommentarer i stedet for hacks.

  0   0
Forrige artikel Euscorpius
Næste artikel En dato med Judy

Kommentarer - 0

Ingen kommentar

Tilføj en kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tegn tilbage: 3000
captcha