In welcher Reihenfolge werden DOMContentLoaded abgearbeitet?
bearbeitet von Gunnar Bittersmann@@Felix Riesterer
> Meiner Ansicht nach sollte das Markup eher so sein:
>
> ~~~ html,bad
> <ul class="lyrics">
> <li>
> <div>
> Wa-<span class="to"></span>rum bist du gekommen, wenn
> <span class="do"></span>du schon wieder gehst?
> </div>
> <div>
> Du hast mein Herz genommen und
> <span class="to"></span>wirfst es wieder weg!
> </div>
> ...
> </li>
> </ul>
> ~~~
Meiner Ansicht nicht. Ein Liedtext ist keine Liste.
Und wie würdest du mit Listen-Markup [solch ein Lied](https://gunnarbittersmann.de/songs/herbst) hinbekommen wollen: 1. Strophe, 2. Strophe, Refrain, 3. Strophe, Refrain, 4. Strophe, Refrain?
IMHO passt für Strophen und Refrains das `p`-Element mit `br` darin für die Zeilen – so wie ich es habe und wie Linuchs es auch hat.
Noch besser wäre freilich ein natives HTML-Element für Zeilen. Das wurde bei der Entwicklung geflissentlich übersehen – dazu hätte Hixie ja eingestehen müssen, dass es auch Sinnvolles in XHTML2 gab (da war nähmlich ein `l`-Element geplant), und das wäre ihm wohl nie über die Lippen gekommen.
Ich verwende deshalb ein **custom element**{:@en} `x-l`, um die Einrückung hinzubekommen, wenn eine Liedzeile über mehrere Bildschirmzeilen geht.
Und ja, *custom elements*{:@en} haben einen `-` im Elementtypbezeichner, um sie von HTML-Elementen abzugrenzen. Das von Linuchs verwendete Phantasie-Element `l` verhält sich wie ein `span`[^CSSBattle] – sollte also keine Gefahr sein. Noch nicht. Das würde sich schlagartig ändern, wenn in HTML doch noch ein `l`-Element eingeführt wird.
[^CSSBattle]: In der CSSBattle nutzt man das gnadenlos aus. Eine Lösung für [Target 73 (Elephant)](https://cssbattle.dev/play/73) war `<s><l><o><n><style>* *{margin:var(--m,-70-20);--p:0/50%;--:9q,#0000 42q,#998235}s{--:,#1A4341 0;--m:130}l{--m:31;--:at top,#0B2429 0 11q,#998235 0 21q,#0000 0;--p:0 62q/63q}o{--m:99-1-97;--p:0-60q;--:at bottom,#0000 5ch,#fff 0 63q,#0000}n{padding:68 20;--m:-10 40;--:,#0B2429 0}*{float:left;border-radius:1in;background:var(--p,3vw/47%)radial-gradient(4q var(--,9q,#0B2429 42q,#1A4341)42.7q`{:.language-html}.
**Fun fact**{:@en}: „slon“ heißt „Elefant“ in so ziemlich allen(?) slawischen Sprachen.
Dass Linuchs nicht `l` verwenden sollte, haben wir schon oft angesprochen. Er bleibt starrköpfig.
> Die eigentlichen Akkordsymbole werden in den leeren `span`-Elementen geregelt. […]
> Mit sinnvollerem Markup sollte auch das Hineinschreiben der Akkorde besser gelingen.
Aber sowas von. Keine Ahnung, was Linuchs da treibt. Nach `(To)`, `(Do)`, `(Su)` suchen und durch Markup für die Akkorde ersetzen?
Wenn man die Elemente schon im Markup hat (`ruby`/`rt` dürfte sich für Akkorde anbieten), muss nur noch deren Textinhalt ersetzt werden – das sollte einfacher und performanter sein.
Wie sind denn eigentlich die Paralleltonarten benannt?
Wenn ich sowas implementieren würde, würde ich Zahlen verwenden. Ist auch Standard: `I` für die Tonika, `V` für die Dominante, `IV` für die Subdominante. Paralleltonart der Tonika ist `VIm`; Paralleltonart der Dominante ist `IIIm`.
[Die Hälfte aller Lieder](https://forum.selfhtml.org/self/2023/nov/08/frage-zum-wiki-artikel-selektoren/1811792#m1811792) geht dann so: I – V – VIm – IIIm – IV – I – IV – V.
Kwakoni Yiquan
{:@art-x-kwejian}
--
*Ad astra per aspera*{:@la}