Gadewch allan y Doctype i Rhoi Porwyr i mewn i Ddulliau Quirciau
Os ydych chi wedi bod yn dylunio tudalennau gwe am fwy na ychydig fisoedd, mae'n debyg eich bod yn ymwybodol o'r anhawster wrth ysgrifennu tudalen sy'n edrych yr un fath ym mhob porwr . Mewn gwirionedd, mae hynny'n amhosib. Ysgrifennwyd llawer o borwyr gyda nodweddion arbennig y gallent eu trin yn unig. Neu mae ganddynt ffyrdd arbennig o drin pethau sy'n wahanol i'r ffordd y mae porwyr eraill yn eu trin. Er enghraifft:
- Crëwyd haenau i'w defnyddio mewn porwyr Netscape. Nid ydynt yn gweithio mewn unrhyw borwr arall, ac mewn gwirionedd nid ydynt wedi cael eu hamddiffyn yn Netscape 6.x +.
- Crëwyd fframiau mewnol yn wreiddiol ar gyfer Internet Explorer yn unig, ac ers hynny maent wedi dod yn rhan o'r fanyleb HTML.
- Mae Internet Explorer 6.0 yn ychwanegu gofod ychwanegol (fel a
) o amgylch tagiau, oni bai eich bod yn ysgrifennu cynnwys y div i gyd ar un (hir) llinell. (Mae gan IE 6 lawer mwy o geisiadau yn ogystal â'r un hwn.) - Ni fydd Netscpe 4.7 yn arddangos tablau nad ydynt wedi'u hysgrifennu mewn HTML cywir - mae'n dangos tudalen wag yn lle hynny. Fe'i gosodwyd yn Netscape 6.
Y broblem i ddatblygwyr porwyr yw bod rhaid iddynt greu porwyr gwe sy'n gydnaws yn ôl â thudalennau gwe a adeiladwyd ar gyfer porwyr hŷn. Er mwyn delio â'r mater hwn, mae gwneuthurwyr porwyr yn creu dulliau i'r porwyr weithredu ynddo. Diffinnir y dulliau hyn gan bresenoldeb neu absenoldeb elfen DOCTYPE a'r hyn y mae DOCTYPE yn ei alw.
Newid DOCTYPE a "Modd Cwrc"
Os ydych chi'n rhoi'r DOCTYPE canlynol yn eich tudalen we:
Byddai porwyr modern (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) yn dehongli hyn yn y modd canlynol:
- Oherwydd bod DOCTYPE wedi'i ysgrifennu'n gywir, mae hyn yn sbarduno modd safonau.
- Mae'n ddogfen 4.01 Transitional HTML
- Oherwydd ei fod mewn modd safonau, bydd y rhan fwyaf o borwyr yn golygu bod y cynnwys yn cydymffurfio (neu yn cydymffurfio'n bennaf) â HTML 4.01 Trosiannol
Ac os ydych chi'n rhoi'r DOCTYPE hwn yn eich dogfen:
Mae hyn yn dweud wrth borwyr modern eich bod am arddangos eich tudalen HTML 4.01 mewn cydymffurfiad cyson â'r DTD.
Bydd y porwyr hyn yn mynd i mewn i "ddull llym" neu "safonau" ac yn rhoi'r dudalen yn unol â'r safonau. (Felly, ar gyfer y ddogfen hon, mae tagiau megis y porwr yn cael eu hanwybyddu'n llwyr, gan fod yr elfen FONT wedi'i ddibynnu yn HTML 4.01 Strict.)
Os byddwch chi'n gadael y DOCTYPE yn llwyr, mae'r porwyr yn cael eu cicio'n awtomatig yn y modd "holi".
Mae'r tabl isod yn dangos yr hyn y mae'r porwyr cyffredin yn ei wneud pan gyflwynir datganiadau DOCTYPE cyffredin gwahanol.
Mae Microsoft yn ei Gwneud yn Galed
Mae gan Internet Explorer 6 hefyd y nodwedd, os byddwch yn rhoi unrhyw beth o gwbl uchod ar ddatganiad DOCTYPE, byddant yn mynd i mewn i ddulliau chware. Felly, bydd y ddwy enghraifft hyn yn rhoi IE 6 yn y modd cywir, er bod datganiadau DOCTYPE yn dweud eu bod mewn modd safonau llym:
a'r XHTML 1.1 DOCTYPE:
Hefyd, os byddwch chi'n mynd heibio IE6, yna mae gennych y "nodwedd" ychwanegodd Microsoft yn IE8 ac IE9: Newid elfennau META a rhestr du ar wefan. Mewn gwirionedd, mae gan y ddwy fersiwn porwr hyn hyd at saith (!) Dulliau gwahanol:
- Mae IE 5.5 yn defnyddio dull (IE 8 a 9)
- IE 7 safon (IE 8 a 9)
- IE 8 bron i safonau (IE 8 a 9)
- Y dull safonau IE 8 (IE 8 a 9)
- IE 9 bron i safonau safonau (IE 9)
- IE 9 safon safonau (IE 9)
- Modd XML (IE 9)
Cyflwynodd IE 8 hefyd "Modd Cydymffurfiaeth" lle gallai'r defnyddiwr ddewis newid y model rendro yn ôl i ddull IE 7. Felly, hyd yn oed os ydych chi'n gosod y dull rydych chi am ei osod gan ddefnyddio elfennau DOCTYPE ac META, gellid dal eich tudalen yn ôl i mewn i fodd sy'n cydymffurfio â safonau.
Beth yw Modd Quirks?
Crëwyd modd Quirks i helpu i ddelio â'r holl rendro rhyfedd a chefnogaeth y porwr nad oedd yn cydymffurfio ac yn sicrhau bod dylunwyr gwe yn defnyddio i ddelio â'r pethau hynny. Y pryder y bu i wneuthurwyr porwyr ei chael, pe baent yn trosglwyddo eu porwyr i gydymffurfio â manylebau llawn, y byddai dylunwyr gwe yn cael eu gadael ar ôl.
Trwy osod newid DOCTYPE a "Modd Quirks", roedd hyn yn caniatáu i ddylunwyr gwe ddewis sut roeddent eisiau i borwyr rendro eu HTML.
Effeithiau Modd Quirks
Mae nifer o effeithiau y mae'r rhan fwyaf o borwyr yn eu defnyddio ym Mwyd Quirks:
- Mewn rhai porwyr, mae'r model bocs yn newid i fersiwn IE 5.5 y model blwch yn y modd ymgeisio.
- Nid yw rhai porwyr yn etifeddu arddulliau mewn tablau
- Mae'r modd Quirks yn effeithio ar ddadansoddi cynllun CSS a CSS yn ddramatig, os ydych chi'n trosi tudalennau i ddull safonau o ddulliau cywir, sicrhewch eich bod yn profi eich cynllun CSS a'i rannu'n helaeth.
- Gwyliwch am newidiadau i sgriptio pan fyddwch yn chwilio amdano. Mae Firefox yn newid y ffordd y mae'r priodoldeb id yn gweithio, er enghraifft. Mae gan IE8 ac IE9 newidiadau dramatig iawn i sgriptio yn y modd quirks.
Mae yna hefyd wahaniaeth yn y "Modd bron Safonau:"
- Mae uchder celloedd bwrdd sydd â delweddau yn unig y tu mewn yn cael ei gyfrifo'n wahanol i ddull safonau.
Sut i Ddewis DOCTYPE
Rwy'n mynd i fwy o fanylder yn fy nrthygl Rhestr DOCTYPE, ond dyma rai rheolau cyffredinol ar bawd:
- Dewiswch safon safonau bob tro. A'r safon bresennol y dylech fod yn ei ddefnyddio yw HTML5: Oni bai bod gennych reswm penodol i osgoi defnyddio'r DOCTYPE HTML5, dyma beth ddylech chi ei ddefnyddio.
- Ewch i HTML 4.01 llym os oes angen i chi ddilysu elfennau etifeddiaeth neu osgoi osgoi nodweddion newydd am ryw reswm:
- Os oes gennych ddalennau wedi'u sleisio mewn tabl ac nad ydych am eu hatgyweirio, ewch i Transitional HTML 4.01:
- Peidiwch â llunio tudalennau yn fwriadol yn y modd ymgeisio. Defnyddiwch DOCTYPE bob tro. Bydd hyn yn eich arbed ar amser datblygu yn y dyfodol, ac nid oes ganddo fudd o gwbl. Mae IE6 yn colli poblogrwydd yn gyflym a thrwy ddylunio ar gyfer y porwr hwn (sydd, yn ei hanfod, beth yw dylunio yn y modd cuddio) rydych chi'n cyfyngu eich hun, eich darllenwyr, a'ch tudalennau. Os bydd yn rhaid i chi ysgrifennu ar gyfer IE 6 neu 7, yna defnyddiwch sylwadau amodol i'w cefnogi, yn hytrach na gorfodi porwyr modern i mewn i ddulliau chware.
Pam Defnyddiwch DOCTYPE
Unwaith y byddwch chi'n ymwybodol o'r math hwn o newid DOCTYPE ar y gweill, gallwch effeithio ar eich tudalennau gwe yn fwy uniongyrchol trwy ddefnyddio DOCTYPE sy'n nodi'r hyn y gall y porwr ei ddisgwyl gan eich tudalen. Hefyd, ar ôl i chi ddechrau defnyddio DOCTYPE, byddwch chi'n ysgrifennu HTML sydd yn nes at fod yn ddilys (dylech chi ei ddilysu o hyd). A thrwy ysgrifennu XHTML dilys, rydych chi'n annog gwneuthurwyr porwyr i adeiladu porwyr sy'n cydymffurfio â safonau.
Fersiynau Porwr a Modd Quirks
DOCTYPE | Android Chrome Firefox IE 8+ iOS Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Dim | Modd Quirks | Modd Quirks | Modd Quirks |
HTML 3.2 | |||
Modd Quirks | Modd Quirks | Modd Quirks | |
HTML 4.01 | |||
Trosiannol | Modd Safonau * | Modd Safonau * | Modd Safonau |
Trosiannol | Modd Quirks | Modd Quirks | Modd Quirks |
Strict | Modd Safonau | Modd Safonau * | Modd Safonau |
Strict | Modd Safonau | Modd Safonau * | Modd Safonau |
HTML5 | |||
Modd Safonau | Modd Safonau * | Modd Quirks | |
* Gyda'r DOCTYPE hwn, mae porwyr yn agos at safonau sy'n cydymffurfio, ond mae ganddynt rai materion - sicrhewch eu bod yn profi. Gelwir hyn hefyd yn "Bron i Fod Safonau." |