Debug css

A tapasztalat az hibakeresés CSS már több, mint elég. Valaki másnak a kódot, és a saját. Plotforma mobil és az asztali böngészők. Minden a régi verziójú Internet Explorer legújabb nightly épít WebKit. Dolgozó emberek, rájöttem, hogy nem mindenki van beállítva CSS hibakeresési folyamat.

Rájöttem, hogy a szisztematikus megközelítés a probléma megoldásának elleni küzdelem hibákat kevesebb időt vesz igénybe.

És itt van a saját megközelítését.

Nem azt mondom, hogy ez az egyetlen módja annak, hogy a debug CSS. De rendkívül hatásos számomra. Ha CSS nem az elsődleges nyelvet, majd a hibakeresési tűnhet kissé rejtélyes önnek; A következő útmutatás lehet sokkal hatékonyabb harcolni és megszabadulni a hibákat.

Összességében osztom a hibakeresési folyamat három szakaszból áll:

  • Értékelés és gyors döntéseket
  • Lokalizáció és lejátszás
  • Okok és kijavítása

Nézzük meg minden lépést, és miután egy-egy gyors CSS-Nézzük meg a problémát, például.

Értékelés és gyors döntéseket

Sok hiba könnyen kijavítható, ha tudja, és mélyen megérteni a CSS (például azért, mert ők dolgoznak vele folyamatosan). Ellenkező esetben, egy gyors javítás arzenál kevesebb lesz.

Íme néhány a leggyakoribb buktatókat, amelyek valószínűleg ismerős minden tapasztalt CSS-fejlesztő:

  • furcsa tér körül a képet? Kérd meg, hogy display: block (az alapértelmezett kép a húr, így tereket figyelembe véve).
  • elem viselkedik megfelelően a falon? Valószínűleg valahol beállítani pakolás (float).
  • abszolút pozicionált elem nem jelenik meg, vagy rossz helyen, vagy egy másik elem? Legvalószínűbb, elfelejtettük beállítani a helyzetét a szülő elem, vagy véletlenül, létrehozhat egy réteget összefüggésben z-index segítségével átalakítani vagy homályosság.
  • pszeudo nem jelenik meg? meg kell adni minden olyan értéket, amely tartalmi tulajdonság.

Az ilyen „hibákat” sokat. De ezek nem valódi hibákat, a fejlesztők egyszerűen nem teljesen érti, mi teszi a böngészőt. Pontosabban: hogy a CSS-kód jelzi a böngésző csinálni.

Több tapasztalt fejlesztők már tudja, milyen problémákkal lehet számítani ezeket a funkciókat CSS, így számukra ez „hibák”, mellyel gyorsan kezelni. Ők azonnal felismerni egy problémát, szemben a fejlesztők sokkal kisebb térfogatban CSS-tudás. Fontos megérteni, hogy a fejlesztő kell váltani a hibakeresés „technika”, mint mások.

De kihívások aligha hozzáadásával oldják meg a különböző tulajdonságok és értékek véletlenszerűen abban a reményben, eredmények. Még ha szerencséd van, és a probléma megoldódik, és nem az, hogy Ön képes lesz meghatározni, hogy mi volt a probléma, és miért döntött.

Ehelyett a nehéz helyzetekben meg kell határoznia a problémás területet, és szó szerint másolja az elrendezés a DOM, majd lépni a következő lépés a hibakeresés: lokalizáció és a lejátszást.

Lokalizáció és lejátszás

Ebben a szakaszban, a CSS hibakeresés nagyon hasznos szolgáltatások, mint Codepen. Sőt, meg kell elkülöníteni a probléma -, hogy az egyedi kódot részt vesz a hiba. Ez lehetővé teszi, hogy gyorsan elkülöníthetők a hibát, és elsősorban a kiváltó ok.

A tisztaság a kísérlet, hogy ez a minimális példát kellene kap csak a HTML és CSS, ami azért fontos, hogy reprodukálja a problémát. Akkor tárcsázza stílusok megjelölni újra, vagy másolja a minimális része a valós CSS, az üggyel kapcsolatos. Ha lehetséges, próbálja, hogy ne dobja ki a teljes teszt CSS; játszani kell csak a legszükségesebb. Gyakran fokozatos hozzáadásával CSS ahhoz, hogy azonosítani a problémás terület.

Amikor látsz egy szinte azonnali eredményt, az egyes tevékenységek gyakran lehet észrevenni, hozzátéve, a tulajdon vagy értéket hiba miatt érezhető.

Ellentétes megközelítést fognak lerakott a teljes CSS teszt, törölje szakaszok apránként, és reméljük, hogy a hiba, akkor megnyilvánul. A gyakorlatban tartom, hogy egy kicsit ügyetlen, de az Ön esetében eltérő lehet.

Most, miután fokozatosan hozzáadni / eltávolítani CSS, kéne egy gyors tesztet, hogy mi okozza a problémát, és segít megtanulni a balsorsú telek / kódot.

Tegyük fel, hogy mi történik egy teszt minimum CSS, de ugyanúgy viselkedik, mint az eredeti probléma kódot. Az is hasznos. Most itt az ideje, hogy partíciót.

Miután az érvényességét a jelölés van jelölve, hasznos, hogy „megszabaduljon” a felesleges böngésző stílusokat. Íme:

Először is, cserélje ki az összes elemet a jelölésben a div-ek (a tömb elemei) és a span-s (a kisbetű), majd ellenőrizze, hogy a kiválasztott elem a CSS egyetlen osztály. Talán még meg kell változtatni a túlterhelt típusú szelektor a.link az csak .link.

A semleges jelölés eltávolítását minden böngésző-stílus / default viselkedés bizonyos bonyolult HTML-elemeket képviselő a problémát. Ez különösen igaz a forma elemek (mint látni fogjuk a példánkban).

Okok és megoldás

Tegyük fel, hogy az elrendezés az egyszerűsítés nem változtat semmit. Mindazonáltal a probléma lokalizált és következetesen reprodukálható Most van szükség, hogy ellenőrizze a lokalizált helyen más böngészőkben. Ugyanez a probléma bukkan fel a Chrome, Internet Explorer, Safari és a Firefox? Ha nem, akkor az egyiket érti ugye? Ha a hiba jön ki csak egy böngésző, meg kell találni között az ismert hibákat ebben a böngészőben.

Ez egy ismert probléma a böngésző vagy egy adott X X verzió böngésző? Bug fix hamar? Vannak olyan ismert megoldásokat, amelyek nem érintik többiben? Egy csipetnyi, akkor adjunk hozzá kódot egy ágat egy hibajavítást a kívánt böngésző?

Greg Vitvorg a Microsoft is megosztott néhány részletet szubpixelből kerekítés böngészők. WebKit / Blink kerekítve 1/64, Gecko - 1/60 és Edge - 1/100 (a takarmány „smfr WebKit fejlesztő.)

Hibakeresés mobil platformok

A mobil eszközök, ha rendelkezik a szükséges fizikai eszköz, nem csak egy üzenetet a hiba a felhasználó, és a készülék támogatja ezt a funkciót, nem veri a „távoli” hibakeresés a kábelt. Ebben a tekintetben nagy Safari a csatlakoztatott iPhone (csak Mac), azonban, mint a Chrome Androidra párosítva egy asztali Chrome (Windows és Mac). IOS esetén nincs kéznél egy adott eszköz is elég jó, és a Safari debugger párhuzamosan az iOS szimulátorban, de korlátozott lesz az iOS verzió, amely támogatja a verziója Xcode. Elméletileg lehetőség van több verziója Xcode egyidejűleg, például, az egyik, hogy támogatja iOS6 és iOS7, és egy másik, amely támogatja iOS 8 rendszeren és a 9., de van, hogy nem igazán működött.

És mi van, ha meg kell foglalkozni a régebbi mobil eszköz? Távoli hibakeresés gyakran nincs lehetőség itt. Ilyen esetekben hasznos, hogy dolgozzon ki egy „flair”, amely fejlesztési eszközök segíthetnek megoldani bizonyos problémákat megjelenítő platform.

Például ha figyelembe a probléma a régi verzió Safari iOS (pl. IOS5-6), illetve a beágyazott böngésző az Android <4.2, полезно знать, что у них общая основа WebKit. На свежих версиях OS X, как отмечено выше, довольно трудно добиться, чтобы симулятор iOS точно воспроизвел эти устройства (симуляторы iOS склонны поддерживать лишь пару последних версий). Более плодотворным подходом может оказаться вовсе даже взять и скачать последнюю версию Safari для Windows (5.x, если память меня не подводит).

A következő ezen régi változat a Safari for Windows valójában nagyon hasonlóak a mobil platformokon, hogy a hibakereső ez valószínűleg több, mint a legutóbbi Chrome / Firefox vagy a meglévő IE. Egy másik lehetőség - ha az operációs rendszer támogatja, töltse le és telepítse a régi nightly build WebKit.

Hasonlóképpen, ha van egy Mac, mint problémák merülnek fel a Windows Mobile (8 / 8,1), megragad, és letölt egy virtuális gép IE10. Ezután ott a hibakereső, mint látható a IE10 és mobil IE8 és 8,1 nagyon sok közös.

Egyes böngészőkben, különösen a régi mobil, ha valami úgy tűnik, egy bogár - az is lehet, és meg kell találni a megoldás sokkal egyszerűbb lenne, ha a probléma kivizsgálását, ahol ez lehetséges „semmiből” a debugger.

számított stílus

A fejlesztők gyakran figyelmen kívül hagyják ilyen funkció debugger, a panel számított stílusokat. Ha a számított stílusok az új termék, a név maga is kifejti - olyan stílusok, amelyek alkalmazzák az elem kiszámítása után a böngésző. Ez azért fontos, mert gyakorlatilag belső stílusokat lehet eltérő. hogy írtál. Sőt, többek között a meglévő stílusok lehet az is, hogy nem írtál. Most fogom elmagyarázni ezt egy példa. Vegyük a következő jelölést.

Mi a szélessége a külső az Ön számára? Ha úgy gondolja, hogy 400px, meghatározott max-width. Volna érteni. De nem ez a helyzet. Vessen egy pillantást a következő:?

Mi folyik itt? Miért max-width nem veszik figyelembe? Adok egy nyom. Nyissa meg a hibakereső és nézd meg a panel „számított stílus» ( «A computer Styles»).

Azt tartalék van a bizonytalanság; Alapértelmezésben fieldset kiszámították a szélessége, amely beállítja annak tartalmát. A Chrome-ban, ez jelenik meg a «Számított Styles» az új min-content-length a min-width.

Ennek kijavításához, akkor adjunk hozzá egy új értéket a min-width tulajdonság. A min-width: 0 a max-width tulajdonság fog működni, ahogy kellene.

Ez milyen hasznos lehet a panel «Számított Styles» a debugger. Ne felejtsük el, mindent, amit ír, az nem kell kiszámítani a böngészőben.

következtetés

Okai vizuális rendellenességeket az interneten sok és változatos. Végrehajtása az adatok eltérőek, ezért minden böngésző hiányzik a szeszélyeit. Amellett, hogy a felhalmozási mentális katalógust „gotchas” módszeres - a leghatékonyabb megközelítés a problémát. Általában ez a megközelítés nem bizonyult nagyon hatékonynak számomra:

Ui Azt is érdekelhetnek:

Kevesebb, mint hat hónappal a legutóbbi változás W3C munkafolyamatban, mint a vezető a konzorcium kapott javaslatot, hogy ezt az új eljárást végül az ügyben. És írd le lényegtelen HTML specifikáció a múzeumban, így nem zavart a fejlesztők, „mintha” kapcsolódnia.

Tovább CSS modul, mely azt mondták csendesen érett állapotát, amellyel a W3C azt tanácsolja, hogy indítsa el a rutinszerű használata az új termékek. tartalmazzák a tulajdonság lehetővé teszi, hogy korlátozzuk a változás a fa rajz, újrarajzoláskor CSS-dobozokat, és változtatni a méretét az elemen belül. Ezért olyan fontos, ...
TÖBB

Paris (a képen), amely a közelmúltban elfogadott CSS munkacsoport ülésén, megérkezett szórakoztató hírek: Properties grid-row-rés és rács-oszlop-szakadék, valamint a csökkentés rácsos rés ...