Page 1 of 1

Re: IE8

Posted: Sat Dec 05, 2009 5:46 pm
by NaN
Die Kommentarzeichen werden schon vom IE 8 erkannt.
Aber er führt das was dort drin steht trotzdem aus, weil er dazu ja auch angewiesen wird:



Das bedeutet nichts weiter als "Wenn Du lieber Internet Exploerer größer oder gleich der Version 7 bist, dann mach doch bitte folgendes..."
Und dann kommt eben das Stylesheet.
Alle anderen Browser, ignorieren ausnahmslos alles, was in Kommentaren steht.
Nur der IE prüft ab der Version 4, ob in den Kommentaren nicht doch irgendwelche bestimmten Anweisungen drinstehen.

Somit lassen sich beim IE je nach Version bestimmte Anweisungen geben.
Ist insofern ganz nützlich, da man so eine Seite für unterschiedliche Versionen optimieren kann.
Nennt sich Conditional Comments

Was genau das Stylesheet da soll, ist mir allerdings schleierhaft.
Die Eigenschaft inline-block habe ich noch nicht verwendet.
Sie ist noch relativ neu und wird eigentlich erst ab IE8 richtig unterstützt.
Wozu genau man sowas brauchen soll weiß ich allerdings noch nicht. Nimm es doch einfach mal raus oder mach SMARTY Kommentare draus:

Code: Select all


{*

   {literal}
   <!--[if gte IE 7.0]>
   <style type="text/css">
   .clearfix {display: inline-block;}
   </style>
   <![endif]-->
   {/literal}

*}

Dann steht es notfalls noch im Template, wird aber nicht mit ausgegeben.

Re: IE8

Posted: Sat Dec 05, 2009 9:01 pm
by mike-r
NaN wrote:
Die Eigenschaft inline-block habe ich noch nicht verwendet.
Sie ist noch relativ neu und wird eigentlich erst ab IE8 richtig unterstützt.
Wozu genau man sowas brauchen soll weiß ich allerdings noch nicht. Nimm es doch einfach mal raus oder mach SMARTY Kommentare draus:
Die Eigenschaft funktioniert in allen gängigen Browsern und sonderlich neu ist sie auch nicht. (Finde gerade kein eindeutiges Datum dazu, der älteste eingetragene Bug für Gecko ist von 1999)

Die Eigenschaft ist äusserst nützlich, weil sie endlich das umständliche herumhantieren mit floats incl. unvemeidlicher und umständlicher Clearhacks, bspw. in vertikalen Menüs ersetzen kann.
Im Groben: inline-block sind Block-Elemente die trotzdem nebeneinander - also inline - gerendert werden.

Was das jetzt ausgerechnet in diesem Clearfix verloren hat, kann ich allerdings auch nicht wirklich nachvollziehen. Der "positive" Effekt mit dem Überlappen/ Nichtüberlappen ist hier imho nicht beabsichtigt. (Box wird breiter bei Skalieren und drückt den Inhalt vom Menü weg.)

Re: IE8

Posted: Sat Dec 05, 2009 9:43 pm
by NaN
mike-r wrote:
Die Eigenschaft funktioniert in allen gängigen Browsern und sonderlich neu ist sie auch nicht. (Finde gerade kein eindeutiges Datum dazu, der älteste eingetragene Bug für Gecko ist von 1999)
Die Eigenschaft gibt es offiziell erst seit CSS 2.1.
Diese Zwischenrevision wurde erst 2005 als erster Arbeitsentwurf veröffentlicht. In der Entwicklung von Webstandards ist das für mich noch relativ neu ;)

FF 2.x hatte 2008 noch immer Probleme und hat inline-block nur bei Elementen akzeptiert, die auch normalerweise inline Elemente sind.
Beim IE bin ich von diesen Tabellen ausgegangen:
http://www.quirksmode.org/css/display.html
http://www.css4you.de/browsercomp.html/standardbrowser
Nur im "echten" IE 8 wird inline-block korrekt interpretiert. Bei sämtlichen Emulationen oder niedrigeren Versionen nur teilweise bis garnicht.
(zumindest laut Tabelle, denn wie gesagt verwendet habe ich es bisher noch nicht)

Re: IE8

Posted: Sun Dec 06, 2009 2:39 pm
by NaN
Nein, das bedeutet nur, dass Du einen Fehler gemacht hast  :P
Dieses

Code: Select all


{literal}
   ...
{/literal}

um die ganze Sache herum hat einen Grund.
Wurde hier auch schon mehrfach allerdings meist im Zusammenhang mit Javascript erklärt.
Alles was in geschweiften klammern steht, wird als Smarty-Code interpretiert.
Da aber Stylesheets und Javascript ebenfalls geschweifte Klammern benutzen, muss man der Templateengine (Smarty) irgendwie sagen, dass diese oder jene Klammern ignoriert werden sollen.
Und das macht man mit diesem {literal} Tag.
Alles was zwischen {literal} und {/literal} steht wird von Smarty ignoriert.
Die hast Du warscheinlich nur vergessen.

Re: IE8

Posted: Tue Dec 08, 2009 10:48 am
by cyberman
chessi wrote: Trotzdem muss ich diesen Tag weglassen, da mit display: inline-block der IE7 Mist macht. Ohne ist alles OK.
Schon damit probiert  ;)?

Code: Select all

<!--[if gte IE 8.0]>