Riesige Höhen bei Verwendung von hbox & vbox

Begonnen von Dracolein, 18 Dezember 2019, 11:47:21

Vorheriges Thema - Nächstes Thema

Dracolein

Hallo zusammen

ich bräuchte Hilfe bei der HTML Gestaltung meines Tablet UI Dashboards, wo ich grundlegend Gridster in Verwendung habe.
Konkret öffnet sich mit folgendem Code ein Popup, dessen Inhalt ich in 2 Spalten nebeneinander (class="hbox") darstellen möchte, was auch grundsätzlich funktioniert.

Allerdings wird bei mir in Chromium & Firefox die Höhe dieses <div class="hbox">-Elements viel zu groß dargestellt.  Ich würde erwarten, dass die Höhe lediglich so groß, wie dessen Inhalt ist. Tatsächlich muss ich nun sogar scrollen im Extremfall.

Ich habe schon sämtliche Variationen durchprobiert, die Höhe explodiert erst bei Verwendung von hbox / vbox 
Hier mal der Popup-Code, habe zur Veranschauuung rote Rahmen eingebaut:

<!--  Popup Bereich zum klicken-->
            <div data-type="popup" data-height="650px"  data-width="1200">
                <div data-type="symbol" data-icon="mi mi-build" class="bigger" data-color='["lightgray"]'></div>
                <!-- System Popup Inhalt -->
                <div class="dialog">
                <header>Systeminformationen</header>
                    <div class="hbox border-red">
                    <div>
                        <!-- linke Spalte -->
                        <div class="border-blue"> 
                        <div data-type="label" class="darker normal inline">Betriebszeit:</div>   
                        <div data-type="label" data-device="sysmon" data-get="fhemuptime_text" class="big darker inline"></div> 
                        </div>

                    </div>
                    <div class="border-yellow">
                    <!-- Rechte Spalte -->
                    <div class="label">Text rechte Spalte</div>
                    </div>
                    </div>   
                   
                   
                </div>
            </div>


Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

amenomade

Das Popup Fenster muss aber laut deiner Definition 1200x650 groß sein
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Dracolein

#2
Richtig und das ist es auch.
Gänzlich ohne Inhalt ist das Popup Fenster exakt gleich groß wie auf meinem Screenshot, nur ohne Scrollbalken. Letzterer taucht erst auf, wenn ich mit hbox / vbox arbeite.
Die Frage hier ist: wieso will sich das div-Element mit dem hbox-Zusatz auf volle Breite und Höhe ausbreiten? Das ist mMn nirgendwo definiert.

Am obigen Code-Beispiel: wenn ich lediglich das Wort "hbox" entferne, ohne sonstwas zu verändern, ist der Scrollbalken weg und das Layout natürlich etwas durcheinander.

Ich hatte dieses hier beschriebene Problem schon öfter und bin bisher ausschließlich mit Workarounds weitergekommen, wie auch hier. (hbox entfernt und mit "inline" weitergearbeitet). Aber das ist ja keine echte Lösung, das muss doch eine Ursache haben ?!
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

amenomade

#3
Normalerweise packt man die Spalten einer hbox in entspr. vboxen

Aber ich würde auf jeden Fall diese zusätzliche divs entfernen.

Für weitere Analyse würde ich den DOM-Inspector vom Browser benutzen, und gucken welche css-Klassen die andere überschreiben
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Dracolein

Deine markierten Divs resultieren aus ursprünglich angedachten vbox-Elementen, die ich zu Testzwecken bereits entfernt hatte.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

setstate

Das Problem ist der <header> im Dialog. Der wird nicht beachtet, wenn die rote Box auf 100% Höhe des Dialoges geht. Der <header> kommt dann noch obendrauf und dadurch entsteht der Overflow mit Scrollbalken.

Ein position:fixed  hilft (ergänze ich ...)

.dialog > header {
  position: fixed;
}


für Testzwecke auch erstmal inline
<header style="position:fixed">Systeminformationen</header>

Dracolein

Hm bei diesem Tip hüpft der Text zwischen den Header-Elementen aus der eigens dafür definierten Zeile heraus
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

setstate

besser ist es ein vbox beim dialog hinzuzufügen

<div class="dialog vbox">