You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Thursday, April 30th 2009, 1:41pm

CSS für Mitte + IE workaround für Positionsangabe

gesplittet von T-Online Browser(weiche)?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

[...]wir leben ja in einer Zeit wo es CSS gibt, da braucht kein Mensch mehr Tabellen, also weg damit! Alles schön in <div>'s gepackt, Firefox auf gemacht, sieht schonmal ganz gut aus. Einziges Problem, wie bekomm ich den kram mittig? Ich such bestimmt schon ne Stunde bei SelfHTML rum, stoße auf alle möglichen Atribute, aber nicht auf die Lösung. "text-align: center;" wird beflissen ignoriert, aus lauter Verzweiflung habe ich schon Sachen wie "left: 50% - 360px" versucht, natürlich auch ohne Erfolg. "left: 50%" oder "left: 300px" funktionieren zwar, aber dann sitzt der Content nicht in der Mitte, sondern beginnt ab der Mitte, bzw bei 300px. Das ist nicht so wirklich was ich wollte :(
Also, blöde Frage Nr.1: Wie bekomme ich ein <div> mit fester breite mittig?

Nun, immerhin funktioniert das Design an sich noch, Navigation und Fußzeile bleiben wo sie sind, der Rest ist scrollbar. Oder? I-Ex und T-Offline Browser auf gemacht... OhJeh! Na immerhin sind die beiden sich jetzt einig, das Bild is auf beiden gleich: Beide ignorieren Angaben zur Position (ob nun "top: 140px" oder "left: 50%") föllig und klatschen einfach alles untereinander. Dafür sind die Scrollbars jetzt wieder erreichbar, und das Scrolling funzt auch wie es soll. Die Navi bleibt wo sie ist, der Content ist scrollbar, die Fußzeile kommt nie ins Bild, befindet sich geschätzte 500px unter dem Bildschirmrand... Hab ich schon erwähnt das der I-Ex n ganz doller Browser is? Ja oder? Ich mag es wenn ein Browser immer ne Extrawurst braucht! Find ich toll! *kotz*
Also, blöde Frage Nr.2: Wie bringe ich dem I-Ex bei was Positionsangaben sind? Ich weiß, Browserweiche, aber was krickel ich da rein? Angaben wie "top: 140px" werden wir gesagt einfach ignoriert.

Vielen Dank schonmal
Look

2

Thursday, April 30th 2009, 4:51pm

Ich habe dein Thema mal gesplittet, damit es nicht unübersichtlich wird.

Hier deine Lösung zu Frage1: Ein div mit fester Breite mittig platziert:

HTML Code

1
<div style="margin-left:auto;margin-right:auto;width:200px;border:1px solid #000">test</div>


Positionsangaben interpretiert der Internet Explorer genau wie der Firefox.
Was der IE (<7) nicht kann position:fixed. Ist es das was du benötigst? Ansonsten poste mal ein Beispiel.

3

Thursday, April 30th 2009, 5:09pm

Hm, ok, das hilft mir schonmal ein bischen weiter.
Dein Beispiel funktioniert zwar iwie nicht so wie ich mir das vorstelle, aber ich hab mir daraus eine Lösung gebastelt die Funktioniert, jedenfalls für die <div>'s mit fester Breite.

Cascading Style Sheets

1
left: 50%; margin-left: -380px;

Einen <div> habe ich, mit variabler Breite. Hier ist die Breite deshalb variabel, weil sich der Inhalt evtuellen Schriftgößen Änderungen beim User anpassen können soll. Da funktioniert das leider noch nicht.

Und, ja, ich arbeite mit "position: fixed;", aber auch beim scrollbaren Teil werden die Positionsangaben ignoriert. I-Ex eben...

Ich will mal sehn, das ich den Quelltext mal irgendwo hochladen kann, vielleicht hilft euch das ja mir zu helfen :)

Edith sagt sie hätte den HTML und den CSS Quellcode, sowie die bisherige Browserweiche hoch geladen. Letztere erfüllt leider noch nicht wirklich ihren Zwek. Sie sagt auch, ihr sollt euch nicht an den komischen Farben stören, ich hätte das nur so bunt eingefärbt, damit ich leichter sehen könnte wo die einzelnen <div>'s liegen.

This post has been edited 1 times, last edit by "Lookbehind" (Apr 30th 2009, 5:22pm)


4

Friday, May 1st 2009, 12:15pm

Dann haben wir die Erklärung doch. Der IE (<7) kann position:fixed nicht.

Du kannst nun entweder versuchen Workarounds zu bauen oder es lösen indem du die ie7.js per Conditional Comment einbindest

Quoted

ie7-js
A JavaScript library to make MSIE behave like a standards-compliant browser.


HTML Code

1
2
3
4
<!--[if lt IE 7]>

<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script>
<![endif]-->


Ausführlich wird das ganze hier auf drei Seiten erklärt: http://artikel.fabrice-pascal.de/posfixedie6/

Quoted

Das W3C hat in seiner CSS Empfehlung bei der Positionierung von Elementen[...] 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.


Quoted

Da auf sehr vielen Windows Systemen noch immer der Internet Explorer 5 oder 6 installiert ist, sollte die Lösung unbedingt auch im beiden Browsern funktionieren.
Caio Chassot hat mal eine ganz andere Konstruktion ausprobiert, um einen position: fixed Effekt vorzutäuschen.[...]Das Unschöne daran : Leider verwendet sie Microsofteigene Tags und ist somit vor allen Dingen auf Mac Browsern (IE5.x, Safari und Co), sowie Mozilla und Opera nicht einsetzbar.


Quoted

Das kleine Paket von Dean Edwards beinhaltet einige in Javascript programmierte Erweiterungen, die verschiedene Fehler des Internet Explorers ausmerzen.

5

Sunday, May 3rd 2009, 5:08pm

Ok, danke!
Das hilft mir schonmal etwas weiter.
I-Ex 5 und 6 funktionieren jetzt so wie der FireFox, das is schonmal n gewaltiger Fortschrit. Aber der IE-7 weigert sich wehement jedwede Verbesserung an zu nehmen, selbst wenn ich die IE-8 Erweiterung nehme.

HTML Code

1
2
3
4
<!--[if lt IE 8]>

        <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script>
<![endif]-->

Edith meint, sie wäre auch schon mit einer etwas anderen Lösung zufrieden. Wenn man das hin bekommen könnte, das der IE-7 das Position Fixed komplett ignoriert, und die Kopf(Menü) und Fuß-Leiste einfach mit scrollen würde. Lässt sich das iwie einrichten? Denn das Position Fixed hat mit Browserweiche sogar der IE5 akzeptiert, allerdings war dann die Positionierung der einzelnen Elemente etwas, sagen wir mal abenteuerlich :)

Dann hab ich noch ein anderes Problem, das Menü bekomm ich einfach nicht zentriert, auch nicht im FireFox oder Opera (eigentlich nirgends). Das Problem dabei ist, das es eine variable Breite haben sollte.

HTML Code

1
2
3
4
5
6
7
8
<div id="Navi">
        <a href="../index.htm">NEWS</a> &nbsp;
        <a href="band.htm">BAND</a> &nbsp;
        <a href="media.htm">MEDIA</a> &nbsp;
        <a href="http://www.OWL-Soft.de/Horus/HTML/GB-Script/index.php">GUESTBOOK</a> &nbsp;
        <a href="links.htm">LINKS</a> &nbsp;
        <b>CONTACT</b>
</div>

Cascading Style Sheets

1
2
3
4
5
6
7
8
#Navi {
      position: fixed;
      top: 140px;
      margin-left: auto;
      margin-right: auto;
      font-family: "Times New Roman";
      background-color: #0000FF;
}

This post has been edited 1 times, last edit by "Lookbehind" (May 3rd 2009, 5:14pm)


6

Sunday, May 3rd 2009, 5:15pm

containerelemente sind per default 100% breit.
Hier mit margin zu arbeiten hilft als nicht. Jedoch ist das ein Anwendungsfall für den text-align:

Cascading Style Sheets

1
2
#Navi {
      text-align:center


Zum position:fixed Problem beim IE7.
Klappt das Sample in deinem IE7? http://ie7-js.googlecode.com/svn/test/fixed.html
Vergleich deinen Code mal mit dem Sample hier.

7

Sunday, May 3rd 2009, 5:19pm

Hui, da war aber jemand schnell...
Das Problem mit dem I-Ex hat sich grade in Luft auf gelöst... manchmal hilft es auch wenn man mal auf aktualisieren drückt *duck*

Das mit der Positionierung des Navi Kontainers bleibt aber. Die Idee mit text-align: center hatte ich nämlich auch schon, klappt leider nicht.

8

Sunday, May 3rd 2009, 5:51pm

Spiel das mal zur Verständnis schrittweise durch:

Das Div ist 100% breit

Cascading Style Sheets

1
2
3
#Navi {
      border:1px solid #000;
}


Das DIV schrumpft auf die Breite des Inhalts

Cascading Style Sheets

1
2
3
4
#Navi {
      position: fixed;
      border:1px solid #000;
}


Das DIV ist wieder 100% breit:

Cascading Style Sheets

1
2
3
4
5
#Navi {
      width: 100%;
      position: fixed;
      border:1px solid #000;
}


und der Inhalt ist mittig:

Cascading Style Sheets

1
2
3
4
5
6
#Navi {
      width: 100%;
      position: fixed;
      border:1px solid #000;
      text-align:center;
}

9

Sunday, May 3rd 2009, 6:06pm

Wär ja zu schön um wahr zu sein :D
Das funktioniert zwar im FireFox, aber dafür mag der I-Ex das nicht... Für den hat das <div> zwar auch 100% breite, und der Text ist mittig vom <div>, allerdings fängt das <div> auch erst auf der Mitte den Bildschirms an...
Maaaaaaaaan! Warum muss eigentlich jedes Microsoft-Produkt irgendwelche Schwierigkeiten machen? Können die nich ein mal was vernünftiges machen?

Edith meint sie hat es mittels Browserweiche hin bekommen, indem sie einfach nochmal mit margin-left: -100%; den ganzen Kram nach links verrückt hat, nur für den I-Ex versteht sich.

Ich Danke dir d0nut! Du hast mir sehr geholfen!

Edit2:
Eine Sache hätte ich aber gerne noch erklärt, es funktioniert zwar, aber ich wüßte gern warum...

HTML Code

1
2
3
4
5
6
7
8
9
10
<div id="Zentreiert">
     <div id="Navi">
          <a href="../index.htm">NEWS</a> &nbsp;
          <a href="band.htm">BAND</a> &nbsp;
          <a href="media.htm">MEDIA</a> &nbsp;
          <a href="http://www.OWL-Soft.de/Horus/HTML/GB-Script/index.php">GUESTBOOK</a> &nbsp;
          <a href="links.htm">LINKS</a> &nbsp;
          <b>CONTACT</b>
     </div>
</div>

Die css Datei die das #Zentriert enthielt ist garnicht mehr eingebunden, hab in der Browserweiche eine Andere Datei verlinkt. Will sagen, nirgends in dem verwendeten CSS Teil exestiert ein #Zentriert. Trotzdem, sobald ich das <div> weg nehme, haut er mir das Ding an den rechten Rand. :?:

This post has been edited 2 times, last edit by "Lookbehind" (May 3rd 2009, 6:25pm)


10

Sunday, May 3rd 2009, 8:33pm

Styleeigenschaften die entfernt wurden aber immer noch angewendet werden? Das hört sich sehr nach einem Caching Problem an. Mach ein paar "STR"+"F5" refreshs.
Außerdem solltest du die ein paar Entwickerwerkzeuge wie Firebug/Firebug Lite oder die IE Developer Bar anlegen.
Dann kannst du solche Sachen live probieren.

11

Sunday, May 3rd 2009, 9:05pm

Auf die Idee mit dem Cache bin ich auch schon gekommen, aber Cache ist defenitiev leer (eigenhändig leer gemacht).
Naja, es funzt ja. Habs mal den wichtigen Leuten zum Testen gegeben, wenns Probleme gibt meld ich mich nochmal.

Similar threads

Social bookmarks