Sie befinden sich in den Archiven der Kategorie Web - Browser und Co..
- Allgemein (2)
- Apache (2)
- Blender (1)
- Cups, Druck (1)
- Eclipse für PHP-Projekte (7)
- Erfahrungsberichte (68)
- Firewall Netfilter Iptables (1)
- Hardware, Treiber (13)
- Impressum (1)
- KDE (41)
- Kontact - Kmail (11)
- LAMP / Webentwicklung (28)
- LibreOffice, OpenOffice (8)
- Linux 3D Desktop (8)
- MySQL (1)
- Netzwerk (8)
- Open Source (1)
- Open-Xchange (11)
- Open-Xchange 5 (9)
- Open-Xchange 6 (2)
- Opensuse 12.1 (2)
- Postfix, Cyrus, Kmail (7)
- Sound (8)
- Verschlüsselung (Mail, SSH) (4)
- VMware Workstation (12)
- Web - Browser und Co. (11)
- Xen und KVM (2)
- 4.2.2012: Kmail 4.8 - Suchfunktionalität weiterhin im Eimer
- 4.2.2012: Update KDE 4.8 - Nepomuks hohe CPU-Last
- 8.1.2012: Opensuse 12.1 - Erfahrungen mit einer Neuinstallation
- 3.1.2012: Opensuse 11.4 / 12.1 - Problem mit ssh -X
- 28.11.2011: Cyrus IMAP unter Opensuse auf die Schnelle
- 5.11.2011: Kontact 4.7 und OX 6 unter Opensuse 11.4 - Teil II
- 29.10.2011: Kann man KDE professionell nutzen ?
- 21.10.2011: Libreoffice 3.4, Scrollbar-Fehler, KDE 4.7
- 23.8.2011: Opensuse 11.4, samba, apparmor-Problem
- 21.8.2011: Kontact 4.7 und OX 6 unter Opensuse 11.4 - Teil I
homepages
- Februar 2012
- Januar 2012
- November 2011
- Oktober 2011
- August 2011
- Juli 2011
- Mai 2011
- April 2011
- März 2011
- Februar 2011
- Januar 2011
- Dezember 2010
- Oktober 2010
- September 2010
- August 2010
- Juli 2010
- Juni 2010
- Mai 2010
- April 2010
- März 2010
- Februar 2010
- Januar 2010
- Dezember 2009
- November 2009
- Oktober 2009
- September 2009
- August 2009
- Juli 2009
- Juni 2009
- Mai 2009
- April 2009
- Februar 2009
- Januar 2009
- Dezember 2008
- November 2008
- Oktober 2008
- September 2008
- August 2008
- Juli 2008
- Juni 2008
- Mai 2008
- Februar 2008
- Oktober 2007
- September 2007
- Juli 2007
Archiv der Kategorie Web - Browser und Co.
Reihenfolge relativ und absolut positionierter DIVs
6.12.2009 von rmo.
Anne kam vor kurzem mit einem typischen Problem im Zusammenhang mit der Positionierung von relativ und absolut positionierten DIVs in einem Container-DIV.
Fast wie immer klappte alles im Firefox oder in Opera unter Linux (und Windows) - nur nicht im MS IE (7,8).
Worum ging es?
Das Container-DIV hatte nur die Aufgabe, einen definierten Bereich innerhalb der Webseite vorzugeben und bei Bedarf Scrollbedarf zuzuschalten. Das DIV war in seiner Umgebung relativ positioniert.
Innerhalb des Containers hatte Anne eine Reihe aufeinanderfolgender, relativ positionierter DIVs undefinierter Höhe. Die Elemente der DIVs wurden durch Datenbankinhalte gefüllt. Insgesamt ergaben die relativ positionierten DIVs einen Hintergrundsbereich innerhalb des Containers. Alle befanden sich in der gleichen Ebene, die durch eine z-Index festgelegt wurden.
Zusätzlich gab es ein weiteres DIV, das absolut positioniert wurde und für das ein höherer Wert im z-Index gewählt wurde. Dieses DIV sollte also immer vor den relativ positionierten DIVs angezeigt werden.
Also:
<div id=”container” …. >
<!– das absolut positionierte DIV –>
<div id=”abs” style=”position:absolute; …. z-index:10; “>
…..
</div>
<!– die relativ positionierten DIVs –>
<div id= “rel_1 ” style= “…; z_index:1; ” ….. > …. </div>
<div id= “rel_2 ” style= “…; z_index:1; ” ….. > …. </div>
…..
…..
</div>
Im Firefox wurde das abslout positionierte DIV auch brav über allen anderen DIVs angezeigt; im MS IE7 dagegen nicht und im MS IE 8 nur, wenn der Seitenaufruf mit geänderten PHP-Parametern geschah. Ein reiner Seiten-Refresh führte immer zu einem Ausblenden des absolut positionierten DIVs.
Die Lösung
Was hatte Anne falsch gemacht ? Aus meiner Sicht gar nichts. Außer, dass sie hätte davon ausgehen müssen, dass der MS IE ein wenig Hilfe benötigt:
Der MS IE kriegt die obige Reihenfolge nämlich nicht auf die Reihe - im wahrsten Sinne des Wortes !
Hätte Anne die Reihenfolge von vornherein wie folgt gewählt, wäre nichts passiert:
<div id=”container” …. >
<!– die relativ positionierten DIVs –>
<div id=”rel_1″ style=”…; z_index:1;” ….. > …. </div>
<div id=”rel_2″ style=”…; z_index:1;” …..> …. </div>
…..
…..
<!– das absolut positionierte DIV –>
<div id=”abs” style=”position:absolute; …. z-index:10; “>
…..
</div>
</div>
Merke:
Im MS IE ist es zwingen, die relativ positionierten DIVs vor den absolut definierten DIVs zu definieren. Sonst bekommt der MS IE den Ebenenaufbau nicht hin.
Arme Web-Designer ! Das ist kein Spass mit dem MS IE.
Geschrieben in Web - Browser und Co., LAMP / Webentwicklung | Keine Kommentare »
Flackern beim Seitenwechsel im MS IE
14.11.2009 von rmo.
Viele Websites beinhalten Seiten, die vom Grundaufbau/Layout her völlig identisch aussehen. D.h., sie beinhalten viele begrenzende oder Hintergrunds-Elemente, die auf allen Seiten völlig gleich aussehen.
Bei einem Wechsel zwischen zwei Seiten erwartet man dann, dass die identisch aussehenden Seitenelemente während des Wechsel ohne jedes Flackern dargestellt werden. Der Wechsel soll für das Auge des Betrachters also so ablaufen, als ob nur die unterschiedlichen Seitenanteile im Wechsel neu aufgebaut werden. Die identisch aussehenden Elemente sollen beim Seitenwechsel dagegen als völlig statisch erscheinen. Es soll vor allem zu keinem Flackern beim Seitenaufbau kommen. Flackereffekte (kurzzeitige Hell-Dunkel-Wechsel in bestimmten Seitenbereichen) wirken auf die meisten Betrachter irritierend.
Leider stellt man aber immer wieder fest, dass es gerade bei komplexeren Seiten im MS IE zu diesem unangenehmen Flackern kommt - oft genau in den Bereichen, die beim Seitenwechsel eigentlich unverändert bleiben. Dagegen kann man bei Browsern wie Firefox, Opera, Konquerer oft einen stabilen, flackerfreien Bildwechsel während des Renderns der neuen Seiten konstatieren. (Ausnahmen stellen Seiten dar, die Flash-Elemente beinhalten.) Wir haben das Problem schon des öfteren mit gewöhnlichen HTML-Seiten, aber auch im Zusammenhang mit PHP-Seiten festgestellt.
Wie kann man als Entwickler das nervige Flackern im MS IE in den Griff bekommen ?
Hierfür gibt es nach unserer Erfahrung mindestens zwei Tricks:
Trick 1: MS IE spezifisches Metatag
Im MS IE kann man den Seitenwechsel mit (teils spektakulären) Effekten unterlegen, die eine bestimmte Zeitdauer haben. Die Render-Engine arbeitet in diesem Modus anders als gewöhnlich. Wir nutzen das an dieser Stelle zur Vermeidung des Flackerns aus. Zur Parametrierung der Effekte dient ein Metatag der folgenden Form
<meta http-equiv=”Page-Enter” content=”revealtrans(duration=0.1,transition=5)” >
Der Parameter “duration” gibt die Zeitdauer des Effektes in Sekunden an, der Parameter “transition” den ausgewählten Effekt. In unserem Fall wird die Seite von oben nach unten aufgebaut (abgerollt) - die Zeitdauer ist allerdings so kurz gewählt, dass man das praktisch nicht merkt. Der von uns gewünschte Seiteneffekt ist allerdings der, dass ein Seitenwechsel nun in vielen Fällen völlig stabil und ohne jedes Flackern vor sich geht.
Weitere Information zu “revealtrans” findet man im Internet.
Trick 2: Einbau von Dummy-DIVs mit einer Opacity-Anweisung
Auch wenn man auf einem Layer der Webseite mit hohem z-Index ein Dummy-DIV mit einer Opacity-Vorgabe integriert, reagiert die Render-Engine des MS IE positiv im Sinne der Flackerfreiheit. Ein Element der Form :
<div style=”position:absolute; width:0.5em; height:0.5em; top:0.1em; left:0.1em; filter: alpha(opacity=66); -moz-opacity: .66; opacity: .66; z-index:10;”></div>
ist an sich zwar völlig sinnlos (da ohne Hintergrundsfarbe), zieht aber dennoch die Flackerfreiheit des Seitenaufbaus nach sich. (Ausschlaggebend für den MS IE ist dabei übrigens die “filter”-Anweisung.)
Viel Spass in Zukunft beim “Beruhigen” des MS IE.
Nachtrag am 18.11.2009:
Im Falle von Hintergrundsbildern, die per CSS in Tags eingebunden werden, helfen die obigen Tricks in der Regel nichts. Siehe aber die Hinweise von Anne zu weiteren Möglichkeiten im Kommentar ! Danke, Anne !
Nachtrag am 28.11.2009
Anne hat mich darauf aufmerksam gemacht, dass beim MS IE in vielen Fällen auch der unauffällige Einbau eines kleinen Dummy-Flash-Films, der eigentlich nichts tut, zur Stabilisierung des Bildaufbaus und zur Vermeidung von Flackereffekten hilft. Wegen evtl. Schwierigkeiten mit Flash-Filmen in Gecko/Mozilla-Browsern ist das aber kein Trick, den man generalisieren könnte.
Interessant ist auch, dass im Moment das gleichzeitige Öffnen mehrer Tabs mit Webseiten, die per SWFObjects 2.x eingebaute Flashfilme beinhalten, im Firefox zu Flackereffekten beim Seitenwechsel führt - zumindest unter Linux. Es ist ein Leiden !
Ferner hat mich Anne mit einigen Beispielen, bei denen im BODY-Tag Hintergrundsbilder per CSS verankert wurden, davon überzeugt, dass es im MS IE (alle Versionen) manchmal sogar von Nachteil sein kann, den “revealtrans”-Effekt einzusetzen. Besser ist es da anscheinend, das Bild, das man im Body-Tag untergebracht hat, nochmal in Form eines gewöhnlichen IMG-Tags in einem DIV zu hinterlegen, das man per z-index unter allen anderen Seitenelementen einfügt.
OK, OK, ich gebe auf - es gibt keine Standardrezepte - man muss halt herumexperimentieren.
Wenn man Zeit hätte, könnte man ja die Sache mal systematisch untersuchen - Seitenwechsel bei vorhandenen Hintergrundsbildern, beim Vorhandensein von Flash und das in allen gängigen Browsern unter Linux und MS Windows. Ach ja, man müßte dann auch noch die unterschiedlichen Arten der Einbindung von Flashfilmen berücksichtigen …..
Geschrieben in Web - Browser und Co., LAMP / Webentwicklung | 2 Kommentare »
Zweites Alpha-Release 64 Bit Flashplayer
11.4.2009 von rmo.
Ich habe heute das zweite alpha-Release des 64Bit-Flash-Plugins von Adobe für Linux ausprobiert.
Der größte Fortschritt ist für mich war, dass dieses Plugin nun auch mit Konqueror KDE 4.2 funktioniert !
Ich habe meinen ursprünglichen Beitrag
http://linux-blog.anracom.com/2009/01/26/kurztest-der-64-bit-version-des-flash-plugins-von-adobe/
zum ersten Release abgeändert und so aktualisiert, dass die Installation auch mit dem neuen Release funktioniert.
Getestet habe ich unter aktuellen Versionen von Konqueror, Firefox und Opera (alles 64 Bit unter Opensuse 11.1 mit KDE 4.2 (Factory Repository)). Sieht ganz gut aus !
Weiter so Adobe ! Endlich habt ihr begriffen, dass Innovation über Linux und nicht über Micro-Software läuft ! Dann macht es ja vielleicht in naher Zukunft sogar wieder Spaß, Flash-Applikationen zu entwickeln!
Geschrieben in Web - Browser und Co., Erfahrungsberichte | Keine Kommentare »