Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » Auszeichnungssprachen » firefox beachte float mit width nicht Antworten
firefox beachte float mit width nicht

pascalplus
Pixelschubser


Beiträge: 20


Hi
Ich bin am erstellen eines css-layouts und stosse da leider auf relativ viele schwierigkeiten.
So hab ich gemerckt, wenn ich folgendes schreibe
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
<style type="text/css">
.feld1{background-color:#00A050; width: 150px; float: left;}
.feld2{ background-color: #BF0000; width: 150px;  }
</style>

<div class="feld1">&#160;</div>
<div class="feld2">&#160;</div>

dass firefox (ie nicht) die beiden felder trotzdem untereinander anzeigt.
wenn ich das width beim feld2 weglassen würde, zeigt firefox alles richtig an, nun aber ist das feld2 beliebig lang.

gibt es eine möglichkeit, auch firefox dazu bringen, zwei <div> nebeneinander anzuzeigen und dass man beim 2. doch noch eine höhe und eine breite angeben kann?


---
ridere.de
sac-grenchen
linkplus

  Profil   E-Mail   Website   Editieren   Zitieren

n0f3aR
Mausakrobat


Beiträge: 155


Der Firefox zeigt das nicht falsch an, tztz. Du solltest doch wissen das der IE die Fehler macht nicht der Firefox. Du mußt aus dem Element ein Inline-Element machen
display: inline;
Dann sollte es funktionieren.

---
Kostenlos Webspace bei funpic.de

  Profil   E-Mail   Editieren   Zitieren

pascalplus
Pixelschubser


Beiträge: 20


danke
ich habe aber nomachmal eine frage, wenn es erlaubt ist, dies in den gleichen threat zu schreiben.
ich möchte nämlich einen div, welcher sich über die ganze Höhe erstreckt.
Zurzeit habe ich dass mit height: 100% gelöst. ich habe aber nun jetzt in diesem div noch einen weiteren, welcher aber eine unbestimmt höhe hat und es kann vorkommen, dass diese höhe grösser als 100% der bildschirmhöhe ist. also ist der innere div grösser als der äussere.
beim firefox lässt sich das so ansehen, dass der innere einfach den rand des äusseren missachtet und darüber weg geht. mein wunsch wäre es aber, dass es dann so aussieht wie beim ie, wo einfach die höhe des äusserem angepasst wird.

gibt es deshalb so ein befehl, der etwa so lautet: bei normalfall sei 100% hoch, wenn aber eine anderer div höher ist, dann werde auch höher ?

---
ridere.de
sac-grenchen
linkplus

  Profil   E-Mail   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


den einen in den anderen packen.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

pascalplus
Pixelschubser


Beiträge: 20


das habe ich ja auch gemacht.
mein script sieht etwa so aus:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13:
<style type="text/css">
.hauptfenster {
width: 800px;
height: 100%; }
.menu {
width: 500px; }
</style>

<div class="hauptfenster">
<div class="menu">
<? include ("$site"); ?>
</div>
</div>

das hauptfenster bleibt leider beim firefox immer 100% hoch, auch wenn das menu einmal grösser ist.


---
ridere.de
sac-grenchen
linkplus

  Profil   E-Mail   Website   Editieren   Zitieren

Quaese
Pixelschubser


Beiträge: 2


Hi,

versuch es mal mit folgenden CSS-Definitionen:
1: 
2: 
3: 
4:
.hauptfenster{ width: 800px;
               min-height: 100%;}
* html .hauptfenster{ height: 100%; }
.menu{ width: 500px;} 

Mit min-height gibst du die minimale Höhe für Nicht-IE-Browser an. Wird diese Höhe überschritten,
so passt sich der Inhalt dynamisch an.
Die Definition, die mit * html beginnt, wird nur von IEs interpretiert. Diese Browser passen
die Höhe auch dynamisch an, wenn die sie über height angegeben wurde.

Ciao
Quaese

  Profil   Editieren   Zitieren

Ehemaliges Mitglied (#1460)
Posting-Schinder


Beiträge: 614


pascalplus schrieb am 29.04.2005 18:48
Ich bin am erstellen eines css-layouts und stosse da leider auf relativ viele schwierigkeiten.

Ja, CSS hat es in sich. Vor allem, wenn man von Tabellenlayout umsteigt. Es bedarf einer anderen Denkweise, ist dann aber viel logischer und einfacher. Du hast noch ne Menge zu lernen, insb. was den "Textfluss" angeht.

So hab ich gemerckt, wenn ich folgendes schreibe dass firefox (ie nicht) die beiden felder trotzdem untereinander anzeigt.

Das ist nicht richtig! Firefox stellt die beiden Boxen so dar, wie Du es geschrieben hast!
Du hast nur vergessen, dass das gefloatete Element aus dem Textfluss genommen wird und das nachfolgende Element dann an der selben Stelle beginnt, wie das erste, also in z-Richtung "unter" dem ersten liegt. Da Dein Inhalt (&#160;) aber nicht in die 0px zwischen dem rechten Rand Deines gefloateten Elements und den rechten Rand des anderen Elements passt (die Ränder liegen schließlich übereinander), wird dein zweites Element in der Höhe erweitert, damit Dein Inhalt untergebracht werden kann.

display:inline; ist hier falsch, weil dann keine Angabe "width" mehr möglich ist.
Du musst Dein zweites Element unter dem anderen wegschieben, also ihm einen margin-left in der Breite des gefloateten Elements zuweisen.

Wenn der IE die beiden Elemente nebeneinander anzeigt, ist das grober Unfug!

wenn ich das width beim feld2 weglassen würde, zeigt firefox alles richtig an, nun aber ist das feld2 beliebig lang.

Dann würde das Element trotzdem noch unter dem anderen beginnen, nur wäre jetzt genug Platz für den Inhalt und der Bereich muss nicht nach unten erweitert werden. Mein Tipp: Gib den Boxen eine border in unterschiedlicher Farbe und schau, wo die beiden beginnen! Und variiere die width des zweiten Bereichs pixelweise ab 151px. Du wirst die Wahrheit in meinen Worten erkennen!

gibt es eine möglichkeit, auch firefox dazu bringen, zwei <div> nebeneinander anzuzeigen und dass man beim 2. doch noch eine höhe und eine breite angeben kann?

Du hast jetzt hoffentlich verstanden, dass der Fehler bei Dir lag.

Falls noch Fragen sind...gerne!

  Profil   Editieren   Zitieren

Ehemaliges Mitglied (#1460)
Posting-Schinder


Beiträge: 614


n0f3aR schrieb am 29.04.2005 18:59
Der Firefox zeigt das nicht falsch an, tztz. Du solltest doch wissen das der IE die Fehler macht nicht der Firefox.

Soweit richtig. Aber warum muss man dann display:inline sagen, wenn es der FF doch richtig darstellt? Außerdem kannst Du einem Inline-Element keine width mitgeben.

  Profil   Editieren   Zitieren
 

Antworten
Nach oben