_Thanatos_ schreef op dinsdag 21 mei 2013 @ 02:03:
Punt is wel dat je een hack voorstelt. En een hack is per definitie onstabiel. Sorry dat je mijn opmerkingen onzin noemt, dat vind ik jammer, want ik weet behoorlijk goed waar ik het over heb. Ik werk al jaren als front-ender, en ik heb m'n graantje IE6-hacks wel gezien (en gemaakt). Stuk voor stuk zorgden ze ervoor dat alles in steen gebijteld werd, omdat alles steeds omviel met de minst of gringe aanpassing. Plus dat het na verloop van tijd veel (en onnodige) belast meedraagt, want niemand durft ze weg te halen. De nette code blijft (zelfs na jaren) van browser tot browser gewoon werken, omdat het code is die werkt zoals het hoort te werken, en geschreven is zoals het geschreven hoort te worden. Dat soort dingen gaan niet kapot.
Het toeval wil dat ik dus ook al een aantal jaren als 'front-ender' werk. Mijn ervaring is juist dat alle gezeik rondom het clearen van floats en ongein zoals de double-left margin bug in IE6 voor een stuk meer troep zorgt dan een goed begrepen systeem zoals inline-block werkend krijgen in IE6/7.
Uiteraard is die star hack alleen om even snel een voorbeeld te illustreren. Ik zou in CSS die uiteindelijk naar productie gaat een Modernizr test gebruiken die het bestaan v/d 'hasLayout' property controleeert.
_Thanatos_ schreef op dinsdag 21 mei 2013 @ 02:03:
Hoe je het ook wend of keert, het is in de aard van een CSS-hack dat ie vroeg of laat of een willekeurig moment kan stoppen met werken, en dat kan door een update aan die oude browser of door een wijziging aan je code die er niets mee te maken lijkt te hebben.
Een CSS-hack moet een *allerlaatste* redmiddel zijn. En nee, "valid code" getuigt nog niet van de afwezigheid van hacks, just so you know. Gewoon opassen ermee, je graaft immers een kuil voor niemand minder dan jezelf.
Het is geen hack. Het is hoe IE6 en 7 inline-block implementeren. Het enige wat display: inline-block in IE6 en 7 doet is een element layout geven. Het werkt ook meteen goed op elementen die van nature al een display: inline hebben, zoals bijv. span. Enkel voor elementen die standaard een ander display type hebben heb je deze 'hack' nodig om ze eerst inline te maken en dan een
andere trigger te gebruiken om ze layout te geven.
Het kan toch niet zijn dat je al jaren als front-ender meedraait en dan nog geen kaas gegeten van hoe het layout systeem in IE6/7 zich gedraagt. Dan heb je jezelf gewoon nooit echt in de relevante materie verdiept. Nou ja; het
kan wel; da's het aloude verhaaltje van '5x 1 jaar ervaring' vs. '5 jaar ervaring', maar ik mag hopen dat dat hier toch niet het geval is...
Maar goed; laat even weten wanneer Microsoft een ingrijpende wijziging in IE6/7 gaat doen die de layout engine op z'n kop gooit. Die dag moet ik namelijk even oppassen voor neervallende stront van vliegende varkens.