AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [HTML] Ausrichten von Objekten im Firefox
Thema durchsuchen
Ansicht
Themen-Optionen

[HTML] Ausrichten von Objekten im Firefox

Ein Thema von TurboMartin · begonnen am 16. Feb 2009 · letzter Beitrag vom 18. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#1

[HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 18:49
Hallo DP ,
ich muss zur Zeit für meine Schule eine Webseite machen. Dabei greift der Lehrer, der bisher die Seite erstellt hat auf Frames zurück. Das ganze habe ich nun alles entfernt und rufe alles per XmlHttpRequest ab. Das ganze funktioniert auch soweit im IE problemlos, im Firefox zick dies aber noch.

Mit folgendem Code richte ich einige Divs aus, was ich bisher nicht mit CSS geschaft habe:

Code:
        function Init() {
            //Erzeugen der Größe der Zellen
            var win = null;
            if (!win) win = window;
            if (typeof win.innerHeight != 'undefined') {
                alert("0");
                ctLeft.style.height = win.innerHeight - 40;
                alert("1");
                ctMiddle.style.height = win.innerHeight - 40;
                alert("2");
                ctRight.style.height = win.innerHeight - 40;
                alert("3");
            }
            else {
                var obj = getBody(win);
                ctLeft.style.height = parseInt(obj.clientHeight) - 40;
                ctMiddle.style.height = parseInt(obj.clientHeight) - 40;
                ctRight.style.height = parseInt(obj.clientHeight) - 40;
            }
            //Eventhandler für Größenänderung registrieren
            alert("");
            window.onresize = Init;
            //window.test.innerHTML
            //AJAX-Aufruf
            alert("");
            setRequest();
            alert("");
        }
Die alerts wurden dabei nur zum Testen im Firefox eingefügt. Dabei zeigte sich, dass ich nur eine Box mit der 0 als Inhalt angezeigt bekomme. Danach wird nichts mehr ausgeführt. Alles dahinter wird einfach nicht ausgeführt.

Was mache ich da falsch?

Schon mal danke im Voraus.

Ich hoffe mal, dass das ganze hier in die Kategorie gehört...
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 18:58
Warum müssen die Divs noch angepasst werden?

Wenn man es gescheit verschachtelt, ich kenne Deine Seite nicht, kommt man ohne Anpassung aus.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 19:06
An dieser Stelle würde ich für solche Ansätze (DOM Manipulation per Javascript) JQuery empfehlen.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#4

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 19:09
Lädst du den gesamten Content und so alles per Ajax?

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 19:12
Zitat von sniper_w:
An dieser Stelle würde ich für solche Ansätze (DOM Manipulation per Javascript) JQuery empfehlen.
Hm, naja - oder gutes CSS (Aber gut, so ganz ist mir nicht klar was das werden soll...)
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 19:20
Zitat von Valle:
Lädst du den gesamten Content und so alles per Ajax?
Nein, nur einen kleinen Teil.

Zitat von Meflin:
Zitat von sniper_w:
An dieser Stelle würde ich für solche Ansätze (DOM Manipulation per Javascript) JQuery empfehlen.
Hm, naja - oder gutes CSS (Aber gut, so ganz ist mir nicht klar was das werden soll...)
Und wie mache ich das? Ich glaube kaum, dass ich der Höhe 100%-40px zuweisen kann .
Und außerdem funktioniert es ja so ganz gut auch im IE.
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#7

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 19:46
Zitat von TurboMartin:
Und wie mache ich das? Ich glaube kaum, dass ich der Höhe 100%-40px zuweisen kann .
Und außerdem funktioniert es ja so ganz gut auch im IE.
das sollte doch in CSS3 kommen oder - wär jedenfalls geil

Height 100% könnte z.B. so gehen: http://www.webmasterworld.com/forum83/200.htm (die 40px Rand oben kannst du ganz einfach via margin erzeugen). Aber height 100% ist tatsächlich immer problematisch
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#8

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 20:24
Zitat von TurboMartin:
Zitat von Valle:
Lädst du den gesamten Content und so alles per Ajax?
Nein, nur einen kleinen Teil.
Mh, also ich weiß ja nicht welchen Teil, aber denk daran, dass alle Ajax-Elemente für Besucher ohne JavaScript (z.B. ich) nicht benutzbar sind und dass Google solche Elemente auch niemals indexieren wird.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 16. Feb 2009, 20:38
Wie Meflin sagte.
Um solche Abstände zu erzeugen nutze margin.

Das JS nebenbei noch von einigen abgeschalten wird, ist ein anderes Problem, was bei einer Sache für die Schule glaube ich nicht von Belangen ist.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

Re: [HTML] Ausrichten von Objekten im Firefox

  Alt 17. Feb 2009, 19:28
Moin,

JQuery (und auch andere Tools, wie z.B. mooTools) sind fuer solche Dinge normalerweise ein bisschen overkill. Man muss aber ganz ehrlich sagen, dass die ganze Sache ziemlich stinkt.

Erstens ist es ne sehr dumme Idee, im DOM rumzupfuschen, bevor dieser fertig gebaut ist. Da kommen die oben genannten Tools aber zum Einsatz: diese definieren ein domready-Event, welches erst feuert, sobald der DOM vollstaendig geladen und aufgebaut ist. Vorher solltest du nichts machen.

Zweitens setzt du im onResize immer wieder den Event-Handler fuer Resize neu. Ist auch nicht die tolle Art, was zu machen.

Drittens kannst du einer Box sehr wohl die height:100% - 40px geben. Du musst einfach nur bisserl was ueber absolute Positionierung wissen. Nehmen wir folgenden Code:
Code:
<html>

<body>
   <div id="full">
      Hier ist alles drin
   </div>
   <div id="bottom">
      Hier nur bisserl was
   </div>
</body>
</html>
Diese Box ist zwar so breit wie die Seite (liegt daran dass div ein Block-Element ist), aber noch nicht ganz so hoch. Hier kommt nun absolute Positionierung ins Spiel. Die Hintergrundfarbe ist nur zum Demonstrieren des Aufbaus da, sonst nichts.

Code:
#full {
   background-color: red;
   
   position: absolute;
   left: 0;
   right: 0;
   top: 0;
   bottom: 40px;
}
So, was machen diese Anweisungen. Wenn ich ein Element absolut positioniere, wird es aus dem Elementenfluss rausgenommen. Die Position richtet sich dann relativ zum naechsthoeheren, nicht static positionierten Element. In diesem Fall ist das unser body. Wenn ich nun left und right definiere, definiere ich damit die Position des Randes zum entsprechenden Rand des Elternelements. Die Breite errechnet sich der Browser dabei automatisch. Genauso funktioniert es mit top und bottom. In diesem Fall soll es ueberall am Rand kleben, ausser unten wo wir 40px Platz lassen. Ja, aber wo ist das zweite div? Da wo es laut dem Elementenfluss hingehoert: an der Position 0,0 - schliesslich ist das absolut positionierte Element rausgerissen. Nun muessen wir auch #bottom stylen:
Code:
#bottom {
   background-color:green;
   
   position: absolute;
   left: 0;
   right: 0;
   bottom: 0;
   height: 40px;
}
Hier machen wir im Grunde genommen dasselbe, aber wir definieren nicht mehr top und bottom, sondern nur bottom. Damit sagen wir dem Browser, dass er das Element unten ausrichten soll. Tm naechsten Schritt sagen wir dann, dass es auch noch eine Hoehe haben soll, naemlich die 40px, die wir in #full weggelassen haben. Das Ergebnis ist....naja, probiers mal aus

BTW, das Ganze funktioniert natuerlich nur in einem Browser, der CSS2 korrekt interpretiert. IE6 hab ich grad net zum Testen hier, aber Firefox 3 und IE7 machens korrekt - wenn die Seite im Standards Mode laeuft. Im Quirksmode kannst du das natuerlich knicken. Und wenns im IE6 nicht tut: fuck it, den sollte man eh nicht hernehmen. Wenns auch im IE6 funktionieren soll: nimm das IE7-Script um dir Probleme zu ersparen.

Spiel einfach damit rum - die Moeglichkeiten sind fast grenzenlos. Beachte aber, dass du saemtliche Margins, Paddings und Border mit dazurechnen musst. Wenn die beiden divs jetzt noch einen Rahmen von 1px erhalten sollen, musst du das natuerlich beachten, da sich die Boxen sonst ueberschneiden. Das findest du aber noch selbst raus

Achso, und bevor ichs vergesse: wenn du dem #full-div dann noch overflow-scroll gibst und viiiieeeeel Text reinwirfst...naja, sieh selbst

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz