Styling IMSC-Dokumente
IMSC bietet viele Optionen zur Gestaltung von Dokumenten, und die meisten IMSC-Gestaltungseigenschaften haben direkte CSS-Äquivalente, was sie für Webentwickler vertraut macht. In diesem Leitfaden lernen Sie mehr über die Gestaltung mit IMSC, einschließlich der Unterschiede zwischen Inline- und referenziellem Styling sowie effizienten Styling durch Vererbung und Regionsstyling.
Inline-Styling
Die einfachste Möglichkeit, Inhaltselemente wie <p>
oder <span>
zu gestalten, besteht darin, ein oder mehrere Stilattribute wie tts:color
anzugeben. Zum Beispiel das folgende
<p tts:textAlign="center"
tts:fontSize="64px"
tts:color="red"
tts:fontFamily="proportionalSansSerif"
tts:fontStyle="italic">
Hello, I am Mork from Ork
</p>
ergibt:
Referenzielles Styling
Inline-Styling wird normalerweise vermieden, da es Duplikation erzeugt.
Nehmen Sie zum Beispiel die folgenden zwei <span>
-Elemente, die genau dieselben Stilattribute haben:
<p>
<span tts:color="yellow" tts:backgroundColor="black">
Hello, I am Mork from Ork.
</span>
</p>
<p>
<span tts:color="yellow" tts:backgroundColor="black">
I come from another planet.
</span>
</p>
Beim referenziellen Styling werden Stile einmal definiert und im gesamten Dokument wiederverwendet – ähnlich wie CSS-Regeln einmal deklariert werden können und dann auf mehrere HTML-Elemente angewendet werden, beispielsweise über Element- oder Klassenselektoren. In IMSC wird dies durch die Definition eines <styling>
-Elements im <head>
des Dokuments erreicht, in dem eines oder mehrere <style>
-Elemente platziert sind – jedes definiert einen Satz von Stilen, die Sie anderweitig wiederverwenden können. Dies wird unten veranschaulicht:
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling"
xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="yellow" tts:backgroundColor="black"/>
</styling>
</head>
<body>
<div>
<p>
<span style="s1">Hello, I am Mork from Ork.</span>
</p>
<p>
<span style="s1">I come from another planet.</span>
</p>
</div>
</body>
</tt>
Jedes <style>
-Element erhält eine id
("s1"
in diesem Beispiel):
<style xml:id="s1" tts:color="yellow" tts:backgroundColor="black"/>
auf die später im Dokument verwiesen werden kann:
<span style="s1">Hello, I am Mork from Ork.</span>
dies ist gleichwertig mit:
<span tts:color="yellow" tts:backgroundColor="black">
Hello, I am Mork from Ork
</span>
Anders ausgedrückt, das Verweisen auf ein <style>
-Element über seine id
und das style
-Attribut ist gleichbedeutend mit dem Kopieren der Stileigenschaften des <style>
-Elements auf das verweisende Element, als ob die Stileigenschaften mithilfe von Inline-Styling angegeben worden wären.
Stilvererbung
Wenn eine Stileigenschaft vererbbar ist, wie tts:color
, dann wird die Stileigenschaft auf alle Nachfahren eines Elements angewendet, auf dem sie angegeben ist – wiederum ähnlich wie bei CSS und HTML. Im folgenden Beispiel wird die Farbe "gelb" auf den Text beider <p>
-Elemente angewendet, da sie Nachfahren des <body>
-Elements sind.
<body tts:color="yellow">
<div>
<p>Hello, I am Mork from Ork.</p>
<p>I come from another planet.</p>
</div>
</body>
Das Angeben eines Stils auf einem Element überschreibt jeden Stil, der auf einem Vorfahren angegeben ist, zum Beispiel würde im folgenden Ausschnitt die Farbe des Textes des zweiten <p>
auf "aqua" gesetzt werden:
<body tts:color="yellow">
<div>
<p>Hello, I am Mork from Ork.</p>
<p tts:color="aqua">I come from another planet.</p>
</div>
</body>
Regionenstyling
Regionenstyling spielt eine besondere Rolle in IMSC, da eine Stileigenschaft, die auf einer Region angegeben ist, von allen ausgewählten Elementen der Region vererbt wird, beginnend mit dem <body>
-Element, als ob das <region>
-Element das Elternelement des <body>
-Elements wäre. Zum Beispiel wird im folgenden Beispiel der Text "Hallo, ich bin Mork vom Ork" in Gelb erscheinen.
<tt
xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling"
xml:lang="en">
<head>
<layout>
<region xml:id="r1" tts:color="yellow" />
</layout>
</head>
<body>
<div>
<p region="r1">Hello, I am Mork from Ork</p>
</div>
</body>
</tt>
Kombinieren von Stilen
Referenzielles Styling kann auch auf Style-Elemente selbst angewendet werden:
<styling>
<style xml:id="s1"
tts:color="yellow"
tts:backgroundColor="black"/>
<style xml:id="s2"
style="s1"
tts:textAlign="left"/>
</styling>
Mehrere Stile können auch gleichzeitig auf ein Element angewendet werden. Im folgenden Ausschnitt werden die Stileigenschaften sowohl von s1
als auch s2
auf dasselbe <p>
-Element angewendet.
<p style="s1 s2">Hello, I am Mork from Ork</p>