Trükkök browser független oldal készítéséhez

"Azon kívül, hogy az IE egy kalap sz... miért különbözik a két érték akkor is, ha tartalom sokkal kisebb mint az adott szélesség?

Példa:
http://jsfiddle.net/xr2Yq/2/"

Innen jött az alap ötlet. Szeretném ha leírnátok, hogy ti milyen trükköket szoktatok bevetni, hogy az oldalaitok nagyjából minden böngésző alatt ugyanúgy nézzen ki.

Ugye azt tudjuk, hogy álltalában az MS magával sem kompatibilis, szóval ő okozza a legnagyobb problémát.

Mondjuk, ha szeretném, hogy amit fejlesztek oldal IE6+, FF2.0+, Opera és Chrome alatt is legalább hasonlítson egymásra akkor milyen lépéseket tegyek meg?

Gondolok itt reset.css és különböző DOCTYPE-ok beimportálására, illetve magic CSS kommentekre amit pl csak IE vesz figyelembe (bár ez már inkább a gányolás kategória), gondolom azért mindenkinek van valami bevett szokása aki ilyennel foglalkozik.
Tudom, be lehet írni google-ba, hogy "HACK CSS" meg egyéb okosságokat, de most inkább arra lennék kíváncsi, ti hogyan oldjátok meg ezt az elég bosszantó problémát.

Lehetőleg, olyan megoldásokat mondjatok amik működnek és nem gányolások...

Ezt például ismerem, de tényleg az a megoldás, hogy minden böngésző verzióra külön css-t írunk?

Hozzászólások

A CSS-ben van egy csomó magic comment, amit csak egyes böngészők vesznek figyelembe. Erre valóak a gyártóspecifdikus prefixek. A stíluslap invalid lesz ugyan tőle, viszont a specifikációban le van írva, hogy a böngészőknek az ismeretlen tulajdonságot figyelmen kívül kell hagynia.
A citált példában a min-width mellett lehet, hogy érdemes megpróbálkozni az Internet Explorer CSS expressionjeivel pl.:
width:expression(document.body.clientWidth < 502? "500px": "auto" )

Igen, gányolás. Kit érdekel?

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Köszönöm.

"Igen, gányolás. Kit érdekel?"

Egy darabig senkit, sőt még a kliens is örülni fog minden milyen szép és jó. Csak ugye, ha ezek a "trükkös" megoldások elszaporodnak akkor egy idő után te magad is elveszel benne. Arról nem is beszélve, hogy egy nagyobb oldalt ugye nem csak egy ember fejleszt és ha valaki nem ismeri ezeket a tükköket, vagy esetleg másfajtákat használ már is meg vagyunk lőve.

Amint egy leírónyelvben valamit többféleképpen tudsz definiálni, máris meg vagy lőve. Ez csak n+1. megoldása ugyanannak a problémának, a különbség annyi, hogy nem a W3C vagy a WHATWG találta ki.
Egyébként a kommentált kód sokat segíthet.

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Én - bár nem nagyon foglalkozom ilyennel - eleve úgy tervezem meg az oldalt, hogy kivitelezhető legyen. Láttam, amikor a grafikusok megrajzolták az oldalt PS-ben (egyébként igen jól nézett ki), majd szétdarabolták, összerakták és nem olyan lett.

Szóval az egyik hiba a tervezési módszer volt - szerintem. A másik pedig, hogy ők nagyon becsületesen, pixelre pontosan azt akarták visszaadni, ami design-t megálmodtak, és nem sikerült. Pedig számtalanszor írtam nekik, hogy ha gond van, akkor szóljanak. Nem szóltak. Egy hónap után feladták, én meg egy délután összeraktam egy, az apró csicsáktól mentes oldalt az ő elemeikből. Ha rászántam volna még egy hetet, akkor az egész apró izéket is visszarakhattam volna, de annyit már nem ért meg a dolog.

A szokasos egyelore az, hogy a CSS azon subsetjet hasznaljuk, amit az IE is szeret.

Egyeb megoldasok a modernizr es az ie7-js; szokott meg lenni IE6 tiltasa is, az IE7 egy picit okosabb, bar meg nem tokeletes.

Tovabba ne feledd, hogy soha, semmilyen korulmenyek kozott nem szabad kikerulnod a standard-compatible modbol IE-ben! Sokan a letezeserol se tudnak, az oldaluk atvalt quirks mode-ba, es csodalkoznak, hogy szetesik.

A Quirks mode-ról vannak vicces emlékeim. Ezt ugye a

DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"

sorral tudom "kikapcsolni"?

"A szokasos egyelore az, hogy a CSS azon subsetjet hasznaljuk, amit az IE is szeret."

Ez oké, de például egy caption tag-nak a height-je egészen máshogy néz ki FF-ben és megint máshogy IE alatt, ott még megint két részre bomlik a dolog, 7-es és az az előtti, illetve attól felfelé lévő verziók.

Meg kell adni a doctype-ot, igen, nem feltetlenul a strict-et.

De ha megadsz doctype-ot, viszont nem vagy komform a sajat magad altal megadott doctype-pal, eppugy vissza fog kapcsolni. jQuery-vel meg nehany mas frameworkkel le lehet ellenorizni, epp abban vagy-e.

Ez oké, de például egy caption tag-nak a height-je egészen máshogy néz ki FF-ben és megint máshogy IE alatt

Hat akkor ez nem resze a subsetnek :)

(BTW, a HTML sose definialt kinezetet, az csak a HTML5-tol van divatban, hogy az alapertelmezett stilus minden bongeszore kotelezo)

subscribe

* Én egy indián vagyok. Minden indián hazudik.