[TYPO3-german] Bilder laufen unten aus dem Content raus - T3 4.2.1 nur mit CSS
Peter Linzenkirchner
liste at lisardo.de
Tue Aug 26 14:22:46 CEST 2008
Hallo Andreas,
wenn du dir das Beispiel von Redlich nach der von mir empfohlenen
Korrektur im Firefox ansiehst, wirst du feststellen, dass es korrekt
aussieht. overflow:hidden bewirkt in allen standardkonformen Browsern
ein Clearing, auch im Firefox 2. Zu den standardkonformen Browsern
gehört der IE 6 aber nur dann, wenn er sich nicht im Quirksmode
befindet. Heisst umgekehrt, wenn sich der IE 6 im Quirksmode befindet,
bewrikt overflow:hidden kein einschließendes Clearing.
Das zoom:1 gilt ausschließlich für die IE, es gibt dem Container die
IE-interne Eigenschaft "hasLayout", die in allen IE ein
einschließendes Clearing bewirkt (Ausnahme ist der IE 5.0, der
reagiert nur auf Breiten- oder Höhenangaben). Es ist in der Tat nicht
valide, wie alle Browserhacks. Wenn man sein CSS validieren will, so
kann man diese Angabe aber in ein Conditional Comment auslagern, oder
sie ersetzen durch eine Breitenangabe, was das gleiche bewirkt. Man
müsste das gleiche durch diesen Code erreichen können:
#content {overflow:hidden; width:600px}
Das Unangenehme an den Breitenangaben ist aber, dass sie vom Boxmodel-
Fehler der IEs bis Vs. 6 bedroht sind und deshalb immer, wenn ein
padding zusätzlich beteiligt ist, für die IEs eigene Breitenangaben
gemacht werden müssen.
Sehr schön erklärt in diesem Artikel:
http://onhavinglayout.fwpf-webdesign.de/
Man kann auch so arbeiten:
<div id="content" class="clearing"> ... floatender Inhalt hier ... </
div>
und im validierten CSS:
#content { /* was immer gewünscht wird */ }
.clearing {overflow:hidden}
sowie in einem Conditional Comment für alle IE:
<!--[if IE ]>
<style>
* html .clearing {height:1px}
</style>
<![endif]-->
Dieser Code wird nur vom IE < 7 erkannt bzw. interpretiert. Diese
Browser erhalten dadurch für den Container mit der Klasse .clearing
hasLayout und damit ein einschließendes Clearing. Die Höhenangabe wird
von den IE dabei ignoriert, da sie einen Block-Container immer auf die
Höhe des eingeschlossenen Inhalts erweitern. Im Gegensatz zu meinem
zoom:1 funktioniert das auch im IE 5.0. Einem Container, der floats
umschließen soll, wird dann einfach die Klasse .clearing zugewiesen
und das Problem ist in allen modernen Browsern gelöst.
in dem zitierten Artikel sind noch viele Varianten und Infos zu
hasLayout zu finden, eine gute Zusammenstellung.
Es gibt noch weitere Methoden, um in standardkonformen Browsern ein
einschließendes Clearing zu bewirken, ohne clear:both zu verwenden.
Einige werden z. B. bei YAML beschrieben:
http://www.yaml.de/de/dokumentation/grundlagen/funktionsweise-von-floats.html?no_cache=1&sword_list%5B0%5D=clearing
Da habe ich auch das overflow:hidden her.
Gruß
Peter
Am 26.08.2008 um 13:09 schrieb Andreas Burg:
> Hallo H. Hahn,
>
>> Es sieht aus als seien die Bilder von einem <div> umschlossen. Nur
>> Texte
>> scheinen sich den <div>s anzupassen (genauer: <div>s passen sich den
>> Texten an). Bilder gehen, wenn das so auskommt, über den Rand der
>> <div>s.
>
> das stimmt so nicht ganz. Wie Christian und Bernd schon sagten
> bewirkt erst die
> Eigenschaft float, dass ein umgebendes DIV nicht mehr in der Höhe
> gestreckt wird.
>
> Zum Ausprobieren:
> auch ohne den Extra-DIV um das Bild und float direkt im Bild ist es
> der gleiche
> Effekt. Erst das DIV clear:both bereinigt den unschönen Effekt im
> FF2.0.0.16,
> das overflow:hidden im obersten DIV bereinigt den Effekt im IE6. Die
> CSS-Eigenschaft zoom ist leider laut W3C nicht valide bis
> einschließlich CSS3.
>
> <html>
> <head>
> <title>float</title>
> </head>
> <body>
> <div style="background:#cccccc;overflow:hidden">
> <div style="background:#eeeeee;float:right">
> <img src="bild.jpg" height="200" width="300">
> </div>
> Text
> <div style="clear:both"></div>
> </div>
> </body>
> </html>
>
> Andreas
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list