Gunnar Bittersmann: I-Frame Interaktion

Beitrag lesen

@@Camping_RIDER

Nur als Ergänzung...

Die einer weiteren bedarf.

Ja, indem du beim Klick auf den Button die display-Eigenschaft per Javascript (style-Eigenschaft) änderst, alternativ kannst du die Klasse ändern und damit display:none; bzw. display:block; setzten.

Im Allgemeinen ist Letzteres besonders empfehlenswert, da bei der ersten Variante (direktes Ändern per JavaScript) Probleme auftauchen können - so ist es bspw. in den meisten Browsern nicht ohne weiteres möglich, eine solche direkte Änderung wieder rückgängig zu machen

Nein? Doch. Oh!

<HTMLElement>.style.display = ''; sollte Änderungen durch JavaScript rückgängig machen und display auf den im Stylesheet (das kann auch das Browserstyleet sein) angegebenen Wert zurücksetzen. Und zwar in den meisten (lies: allen?) Browsern.

Die Klassen-Lösung ist da deutlich flexibler, plus separation of concerns

Die Angabe, wie etwas dargestellt wird, gehört unzweifelhaft ins Stylesheet. Darum geht’s hier aber nicht; sondern darum, ob etwas dargestellt wird. Und das darf sich durchaus im Markup/DOM wiederspiegeln. Separation of concerns ist hier nicht per se ein Grund gegen Inline-style-Attribute.

Statt Klassen könnten (falls angebracht) auch data-*-Attribute eingesetzt werden,

Was für Daten sollten da drinstehen? data-hidden="true"??

Klassen sind aber im Allgemeinen einfacher zu handeln.

Inwiefern wäre [class~="hidden"] „einfacher zu handeln“ als [data-hidden="true"]? Weil es für ersteres die Kurzschreibweise .hidden gibt?

Klassen sind nicht Mittel der Wahl, wenn es bessere Attribute gibt. Womit nicht data-… gemeint ist; schon eher aria-hidden.

Aber auch das ist nicht Mittel der Wahl, wenn es ein besseres Attribut gibt: hidden. Natives HTML.

“Documents that use style attributes on any of their elements must still be comprehensible and usable if those attributes were removed.
Note: In particular, using the style attribute to hide and show content, or to convey meaning that is otherwise not included in the document, is non-conforming. (To hide and show content, use the hidden attribute.)”
[Spec]

In JavaScript einfacher zu handeln als alles andere: <HTMLElement>.hidden = true; bzw. <HTMLElement>.hidden = false;.

Für alte IEs kann man noch [hidden] { display: none } ins Stylesheet schreiben – gegebenfalls auch mit !important.

LLAP 🖖

--
„Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
„Hat auf dem Forum herumgelungert …“
(Wachen in Asterix 36: Der Papyrus des Cäsar)