Um verschiedene Elemente fix an bestimmten Stellen einer Seite darzustellen, wurden früher häufig Frames verwendet. Zwar ein durchaus legitimes Mittel, jedoch ist der Einsatz von Frames häufig mit Nachteilen und zusätzlichem Aufwand verbunden. Eine mögliche Alternative wäre der Einsatz von position:fixed innerhalb von CSS.
Das W3C hat in seiner CSS Empfehlung bei der Positionierung von Elementen neben den bereits häufig eingestetzten relative, static, absolute auch eine fixe Positionierung vorgesehen. Leider kam diese Art der Positionierung bisher eigentlich nie zum Einsatz, da der Microsofts Internet-Explorer, dieses Attribut leider selbst in Version 6 nicht unterstützt.
Microsoft scheint jedoch auf die Aufschreie aus den verschiedenen Webdesign Ecken halbwegs gehört zu haben und der Internet Explorer 7 unterstützt diese Art der Positionierung nun endlich. Aufgrund der eingeschränkten Umgebungen, auf denen der IE 7 jedoch läuft (Windows XP+ und Windows Server 2003+) ist das Problem auch weiterhin nicht zu unterschätzen, da alle anderen älteren Betriebssysteme nur mit dem Internet Explorer 6 laufen können.
Kennt man die einzelnen Macken der verschiedenen Browser im Bezug auf diese CSS Formatierung, so stehen einem verschiedene Wege offen, um anstelle von normalen Frames CSS Frames zu simulieren
Conditional Comments : Eingebaute Browserweichen
In der Not und im Laufe der Zeit haben CSS Anwender die verschiedensten Wege und Mittel gefunden, um die fehlerhafte Darstellung in den unterschiedlichen Browser auszutricksen. Dazu werden häufig verschiedene sogenannte CSS Hacks verwendet, welche Leseschwächen der Browser ausnutzen und ihnen CSS Information vorenthalten oder in anderen Fällen werden fehlerhafte Informationen überschrieben.
Das diese CSS Hacks auch Nachteile haben versteht sich natürlich von selbst. Spätestens mit erscheinen einer neuen Version kann es durchaus vorkommen, dass eine Leseschwäche zwar verbessert wurde, der Darstellungsfehler jedoch immer noch vorhanden bleibt, was schnell zu langen und schlaflosen Nächten führen kann
Microsoft selbst liefert jedoch eine Abhilfe gegen diese Problem, die sogeannten Condition Comments
Mehr dazu findet sich auf der Microsoft Entwickler Seite.
Kurz zusammengefasst: Im Gegensatz zu anderen Browsern und Tools, die Kommentare ignorieren, werden Kommtare vom IE geparst. Microsoft führte diese Idee erstmals mit dem IE 5/Win ein. Diese Einführung geschah recht unauffällig und blieb lange unbeachtet, bzw. nur sehr selten genutzt. Mittlerweile habe sich die Conditional Comments rumgesprochen und werden immer häufiger eingesetzt.
Der Internet Explorer ist also in der Lage Kommentare zu lesen und überprüft, ob diese bestimmte Bedingungen enthalten, die er erfüllen kann. Erfüllt er die Bedingungen des Conditional Comments, so wird sämtlicher gefundener Code innerhalb des Kommentares ausgeführt. Das ermöglicht es nicht nur andere Styles zu laden, sondern auch komplette HTML Tags je nach Browser ausführen zu lassen.
Hier noch ein kleines Beispiel :
<!--[if IE 6]> sie benutzen den Internet Explorer 6 <![endif]--> <!--[if IE 5]> sie benutzen den Internet Explorer 5 <![endif]-->
Das ist bestimmt kein beeindruckendes Beispiel, aber es zeigt sehr gut, wozu Conditional Comments verwendet werden können. Allergrößter Vorteil: Zumindest in der Internet Explorer Reihe ab Version 5 kann man dank dieser Kommentare sehr schön viele Bugs aushebeln und umgehen, in dem für diese Browser ein alternativer CSS oder HTML Code eingebunden wird.
#1 by jvp on 16.06.2006 - 19:09
Quote
“lte” bedeutet “kleiner oder gleich”, daher schließt die obige Bedingung den IE7 mit ein, obwohl er position:fixed darstellen kann.
Richtig wäre:
< !––[if lt IE 7]>––>jvp
#2 by jenoe on 16.06.2006 - 19:47
Quote
interessanter lösungsansatz. werde ich gleich ausprobieren.
dir ist aber im mittelteil der seite 2 ein kleiner fehler unterlaufen: du schreibst \” führt dazu, dass nur die Internet Explorer kleiner Version 7 den nachfolgenden Code ausführen\”. das stimmt nicht. es müsste korrekt … heißen.
#3 by LANtastic on 17.06.2006 - 04:49
Quote
Stimmt! Hast recht!
Hab den Fehler korrigiert.
Danke dir
Pingback: Feststehende Header und Footer - Problem mit IE - XHTMLforum
#4 by LANtastic on 20.10.2006 - 16:24
Quote
Ich empfehle für diesen Fall, dass du auf die Dean Edwards IE7 zurückgreifst. Damit vereinfachst du dir, dass keine separaten Stylesheets notwendig sind. Normalerweise (wenn deine CSS halbwegs korrekt ist), reicht dann eine CSS Datei, die du für den FF definierst, der rest sollte im Prinzip auch dann im IE funktionieren.
BoxModell Bugs & Co sind dann natürlich eine andere Sache …
#5 by jonathan on 23.11.2006 - 12:03
Quote
habe das sowohl in meiner aktuellen datei, als auch das beispiel von dir genommen und es funktioniert nicht!?
habe die dateien runtergeladen und in einen ie7 ordner gepackt. habe es sowohl online, als auch offline getestet.
passiert gar nichts. man kann die oberste zeile ganz normal mitscrollen.
eine idee, warum?
Pingback: Frage zu css Grundgerüst - XHTMLforum
Pingback: kopf fuss fest, inhalt dahinter scrollbar - XHTMLforum
Pingback: Gâteau Gâteau » Archive » Forschung
Pingback: TP Hilfe Forum - let it snow, let it snow, let it snow
Pingback: CSS Umsetzungsschwierigkeiten - XHTMLforum
#6 by Kazada on 16.02.2007 - 16:23
Quote
Hallo. Ich habe das Script ausprobiert und konnte freudig feststellen das es funzt. Leider ergab sich ein Problem. Ich bin zur Zeit in einem Praktikum und soll eine Übersicht schreiben. Dabei soll der Tabellenkopf fixed bleiben und der Rest scrollbar. So wie man es in Excel auch machen kann. Wie gesagt, das funzt ja auch.
Problem ist nur, bei der Ansicht, die alles zeigt, sollen über 300 Zeilen und rund 40 Spalten angezeigt werden. Der Internet Explorer 6 macht da folgendes wenn sowas mit dem Script aufgerufen wird.
Er bleibt ca. 20 bis 30 Minuten stehen (keine Rückmeldung) und dann ist das scrollen extrem langsam. Bei kleineren Tabellen passiert schon eher was, das scrollen ist aber nicht besser.
Und das, wo wir echt nicht schlechte Rechner hier haben.
Gibts vielleicht eine Leichtgewichtversion dieses Script?
MFG & THX =)
Pingback: IE Problem + Kritiken - XHTMLforum
Pingback: IE 6 versteht mich nicht ... - XHTMLforum
Pingback: Bottombar - XHTMLforum
Pingback: IE problem: Icon am Browserrand permanent platzieren - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: IE 6/7 entweder oder - XHTMLforum
Pingback: LANtastic’s Blog