JavaScript - Sie müssen eine Möglichkeit finden, OuterHeight des Elements festzulegen

9

Ich habe ein Container-Element, das eine Art Layout-Container für seine Kinder ist, und basierend auf einigen Attributen muss ich Kinder anordnen.

Ich brauche einen einfachen Weg, um outwardHeight eines Elements zu setzen, etwa so wie

%Vor%

jQuery's outerHeight setzt die Höhe überhaupt nicht, sondern ist eine readonly Methode.

%Vor%

In der obigen Methode verliere ich Grenzen der Eingabe vom Typ Text.

Die untergeordneten Elemente meines Elements werden basierend auf dem verfügbaren Speicherplatz angedockt und einige andere Kriterien basierend auf Daten, die es enthält, einfache Layouts wie float, clear usw. funktionieren nicht, da sich padding usw. dynamisch basierend auf den Größen ändert. Ich werde schließlich mit Tisch enden, auch wenn ich nicht will, aber keine Wahl habe, aber trotzdem danke für die Hilfe.

Wenn das Element jetzt auf mehr als childs skaliert ist, gibt es kein Problem, aber manchmal hat das container-Element vielleicht eine geringere Höhe als die Kinder, und zu dieser Zeit muss ich die Größe erhöhen.

%Vor%

Ich brauche eine Erklärung, wie man Laufzeithöhe / -breite berechnet, einschließlich / ohne Padding / Rand / Rahmen usw. und wie man es richtig einstellt, so dass ich keine Probleme habe. Ich kann nicht alle Permutationskombinationen ausprobieren, da ich selbst auf der jQuery-Website keine korrekte Dokumentation sehe.

Fixed-Height-Berechnungen sind in Ordnung, aber dies ist eine Art dynamisches Element, das seine Größe ändert und Kinder in einer bestimmten Reihenfolge anordnet.

Problem ist, dass outerHeight nicht gesetzt werden kann. Wenn wir Höhe / Breite eines Elements einstellen, ist die Höhe / Breite tatsächlich innere Höhe / Breite, ohne Berücksichtigung der Marge. Wenn wir die Größe ändern wollen, benötigen wir outerHeight , aber wir können die äußere Höhe nicht so einfach zurückstellen.

Meine calculateSize und layoutChildren sind zwei getrennte Methoden und zwei separate Algorithmen, da die Größe der Eltern auf die Summe aller Kinderhoheiten geändert wird. Und dann wird die Höhe einfach durch Nein geteilt. von Kindern gestapelt übereinander. Meine Berechnung ist perfekt, aber in meiner layoutChildren-Methode habe ich "outerHeight" und "outerWidth" von element und habe keine Ahnung, wie man es richtig setzt, indem man jQuery oder irgendeinen anderen Weg benutzt.

    
Akash Kava 06.12.2011, 11:02
quelle

4 Antworten

1

Ok, das ist seltsam, aber das ist die Antwort.

Es gibt seltsame Steuerelemente,

  • WÄHLEN
  • KNOPF (EINGABE [type = submit | reset | button])

WebKit Browser

  • Padding und Border werden als Teil von OuterWidth für alle Steuerelemente betrachtet
  • Padding und Border müssen zu Width als OuterWidth für alle Steuerelemente
  • hinzugefügt werden
  • Padding und Border werden als Teil von InnerWidth für "seltsame Steuerelemente"
  • betrachtet
  • Padding und Border müssen von der Breite subtrahiert werden, bevor die Breite für alle "nicht seltsamen Steuerelemente"
  • gesetzt wird

Nicht WebKit Browser

  • Padding und Border werden als Teil von OuterWidth für alle nicht "seltsamen Steuerelemente"
  • betrachtet
  • Padding und Border müssen zu Width als OuterWidth für alle nicht "seltsamen Steuerelemente"
  • hinzugefügt werden
  • Padding und Border werden als Teil von InnerWidth für alle nicht "seltsamen Steuerelemente"
  • betrachtet
  • Padding und Border müssen von der Breite subtrahiert werden, bevor die Breite für alle "nicht seltsamen Steuerelemente"
  • gesetzt wird
Akash Kava 10.12.2011, 09:36
quelle
2

.outerHeight( value ) version added: 1.8.0

Sie können jQuery.outerHeight(value) verwenden, um den Wert der äußeren Höhe eines Elements festzulegen. Bsp .: $foo.outerHeight( 200 )

    
Crashalot 14.08.2015 02:52
quelle
1

Wenn Sie keine spezielle Anforderung haben, wird die Höhe eines Standardelements standardmäßig auf die untergeordneten Elemente angepasst. Wenn Sie das float-Element style: left oder float: right ist die Standardbreite auch die, die alle untergeordneten Elemente enthält.

    
Matt 06.12.2011 11:16
quelle
0

Ich würde gerne helfen, aber ich verstehe Ihre Frage einfach nicht. In Bezug auf die Dokumentation der Dimensionsmethoden von jQuery habe ich festgestellt, dass Ссылка Dokumentation zu innerWidth (), innerHeight ( ), outerWidth () und outerHeight ().

Ich hoffe, dass dies hilft, anderenfalls, versuchen Sie, Ihre Frage durchzulesen, und machen Sie deutlicher, wofür Sie die Antwort brauchen.

    
kraenhansen 06.12.2011 11:09
quelle

Tags und Links