@@beatovich
Sprachversionen müssen unmittelbare Kinder des Elements mit lang="multi" sein.
Welches es nicht geben sollte. multi
ist kein gültiger Wert fürs lang
-Attribut; das dürfen nur Sprachkürzel sein. Verwende bspw. class="multilingual"
.
Das funktioniert, sollte aber rationeller notiert werden.
Du willst also dasjenige Kind eines .multilingual{:.language-css}
-Containers (um beim obigen Vorschlag zu bleiben) anzeigen, dessen Sprache mit der in _.lang
vorgegebenen überseinstimmt, und wenn es kein solches gibt, dann das letzte?
Also alle anderen ausblenden (hier in Sass-Syntax mit der vorgegebenen Sprache in $lang
):
$lang: 'en';
.multilingual > :not([lang|="#{$lang}"]):not(:last-child),
.multilingual > [lang|="#{$lang}"] ~ :last-child
{
display: none;
}
Es werden alle Kindelemente von .multilingual
ausgeblendet, deren Sprache nicht mit $lang
übereinstimmt, außer dem letzten, was als Defaultsprache erhalten bleibt. Wenn es ein Kindelement von .multilingual
gibt, dessen Sprache mit $lang
übereinstimmt und dieses nicht das letzte ist, dann wird auch das letzte ausgeblendet.
☞ Codepen zum Rumspielen
Zum Vergleichen habe ich |=
verwendet. Womöglich ist aber nicht [lang|="…"]
, sondern :lang(…)
die bessere Wahl. ☞ Stylen anhand von Sprachattributen
Was es mit dem html[data-lang]
bei dir auf sich hat, habe ich nicht so ganz verstanden.
LLAP 🖖
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann