Perl-devStateIcon: Wie Ausrichtung von mehreren Elementen beeinflussen

Begonnen von TomLee, 29 Oktober 2019, 14:52:00

Vorheriges Thema - Nächstes Thema

TomLee

Hallo Rudi,

bezugnehmend auf meine Frage hier stehe ich in gewisser Weise wieder auf dem Schlauch.

Beschäftige mich zum ersten Mal mit dem Thema und bin da bis jetzt eher unbelesen.

Spricht in meinem Fall irgendwas dagegen das ich ein block-Element (div) in devStateIcon verwende ?

Gruß

Thomas

rudolfkoenig

ZitatSpricht in meinem Fall irgendwas dagegen das ich ein block-Element (div) in devStateIcon verwende ?
Vermutlich nicht, es sei denn einer der Styles stolpert darueber, weil du "zu viel Magie" einbaust.

Allerdings verbinde ich <div> mit "untereinander", und <span> mit "nebeneinander".
Dass in deinem Fall aus <span> "untereinander" wurde, haengt vermutlich (neben dem <br>) mit dem verwenden CSS zusammen, und kann schwer aus der Ferne diagnostiziert werden.

TomLee

Ich weiß nicht wo es mich hintreibt aber der Gedanke waren vier floatende divs.

Weshalb jetzt width und padding noch nicht greifen muss ich mir noch am PC anschauen, hab ich ja vor 2 Tagen gelernt  :P


Danke

TomLee

Zu meiner letzten Frage im andern Thread.

Nach mehreren Tagen darüber nachdenken kann ich mir nicht vorstellen den Code für das Dropdown selbst ins HTML schreiben zu müssen (davon abgesehen wüsst ich dann auch nicht wie ausgewählte Werte dann übergeben werden).

Es muss doch eine Funktion geben die aus den Angaben in setList den HTML-Code für das Auswahlfeld generiert, sonst würde doch nicht mit nur der Angabe des Namens in WebCmd das Dropdown angezeigt ?

Kannst du bitte dazu was sagen oder verweisen wie das genau abläuft ?

rudolfkoenig

ZitatEs muss doch eine Funktion geben die aus den Angaben in setList den HTML-Code für das Auswahlfeld generiert, sonst würde doch nicht mit nur der Angabe des Namens in WebCmd das Dropdown angezeigt ?
Kurz: FW_replaceWidgets in fhemweb.js.

Lang:
Dieser Vorgang wird von mehreren Funktionen durchgefuehrt, da die Darstellung ueber Jahre hinweg erweitert und umgebaut wurde, ohne es komplett neu zu implementieren.

setList wird von manchen Modulen verwendet, um daraus die Antwort auf "set dev ?" zu generieren. Das ist ein String mit den moeglichen Befehlen, samt optionalen gewuenschten Darstellung (aka Widget), wie dropdown, slider, etc.

webCmd wird von FW_devState() verwendet, um (unter anderem) die Liste der anzuzeigenden Befehle zu erstellen.
FW_makeDeviceLine bereichert diese Liste aus der Liste aller moeglichen Befehle mit der Darstellung (Widget).
Diese Darstellung wird in FW_widgetFallbackFn als<td><div class='fhemWidget' cmd='$cmd' reading='$reading' ".
                "dev='$d' arg='$values' current='$current'></div></td>";
formatiert. Urspruenglich waren die Widgets in FHEMWEB.pl nach HTML "konvertiert", das wurde aber nach fhemweb.js verlangert.

fhemweb.js sucht mit der Funktion FW_replaceWidgets nach Aufruf der Seite nach div.fhemWidget, und ersetzt diese durch den Rueckgabewert der zum Widget passenden createFn.  Diese Funktionen sind entweder in fhemweb.js direkt definiert, oder in den anderen www/pgm2/fhemweb_*.js Dateien