HeadStyle Helfer
Das HTML Element <style> wird verwendet um CSS
Stylesheets im HTML Element <head> zu inkludieren.
HeadLink verwenden um CSS Dateien zu verlinken
HeadLink sollte verwendet
werden um <link> Elemente zu Erstellen die externe Stylesheets
enthalten. HeadStyle wird verwendet wenn man Stylesheets inline definieren
will.
Der HeadStyle Helfer unterstützt die folgenden Methoden für das Setzen und
Hinzufügen von Stylesheet Deklarationen:
appendStyle($content, $attributes =
array())offsetSetStyle($index, $content, $attributes =
array())prependStyle($content, $attributes =
array())setStyle($content, $attributes =
array())
In allen Fällen ist $content die aktuelle CSS
Deklaration. $attributes sind alle zusätzlichen Attribute die das
style Tag erhalten soll: lang, title, media, oder dir sind alle möglich.
Abhängige Kommentare setzenHeadStyle erlaubt es ein Script Tag in abhängige Kommentare zu setzen, das
es erlaubt es vor speziellen Browsern zu verstecken. Um abhängige Tags zu setzen, muß
der abhängige Wert als Teil des $attrs Parameters im Methodenaufruf
übergeben werden.
Headstyle mit abhängigen KommentarenheadStyle()->appendStyle($styles, array('conditional' => 'lt IE 7');
]]>HeadStyle erlaubt auch das Erfassen von Style Deklarationen; das kann nützlich
sein wenn eine Deklaration programmtechnisch erstellt werden soll und Sie dann woanders
platziert wird. Die Verwendung hierfür wird in einem unten angeführten Beispiel gezeigt.
Letztendlich kann auch die headStyle() Methode verwendet werden um
schnellstens Deklarationselemente hinzuzufügen; die Signatur dafür ist
headStyle($content$placement = 'APPEND', $attributes = array()).
$placement sollte entweder 'APPEND', 'PREPEND', oder 'SET' sein.
HeadStyle überschreibt jedes append(),
offsetSet(), prepend(), und
set() um die Verwendung der oben gelisteten speziellen Methoden zu
forcieren. Intern wird jeder Teil als stdClass Token gespeichert, welches
später serialisiert wird durch Verwendung der itemToString()
Methode. Das erlaubt es die Teile im Stack zu Prüfen, und optional auch zu Ändern durch
einfaches Modifizieren des zurückgegebenen Objektes.
Der HeadStyle Helfer ist eine konkrete Implementation des
Platzhalter Helfers.
Grundsätzliche Verwendung des HeadStyle Helfers
Ein neues Style Tag kann jederzeit spezifiziert werden:
headStyle()->appendStyle($styles);
]]>
Die Reihenfolge ist in CSS sehr wichtig; es könnte sein das man
sichergestellen muß das Deklarationen in einer speziellen Reihenfolge geladen werden
wegen der Reihenfolge der Kaskade; die verschiedenen append, prepend und offsetSet
Direktiven können für diesen Zweck verwendet werden:
headStyle()->offsetSetStyle(100, $customStyles);
// Am Ende platzieren:
$this->headStyle()->appendStyle($finalStyles);
// Am Anfang platzieren:
$this->headStyle()->prependStyle($firstStyles);
]]>
Wenn man damit fertig ist und alle Style Deklarationen im Layout Skript ausgegeben
werden können kann der Helfer einfach wiederholt werden:
headStyle() ?>
]]>Den HeadStyle Helfer verwenden um Style Deklarationen zu Erfassen
Hier und da müssen CSS Style Deklarationen programmtechnisch erstellt
werden. Wärend String Kopplungen, HereDocs und ähnliches verwendet werden könnte, ist es
oft einfacher das durch erstellen der Styles und deren Einfügung in
PHP Tags zu machen. HeadStyle lässt das zu indem es in
den Stack erfasst wird:
headStyle()->captureStart() ?>
body {
background-color: bgColor ?>;
}
headStyle()->captureEnd() ?>
]]>
Die folgenden Annahmen werden gemacht:
Die Style Deklarationen werden dem Stack angefügt. Wenn Sie den Stack ersetzen
sollen oder an den Anfang hinzugefügt werden sollten muß 'SET' oder 'PREPEND'
als erstes Argument an captureStart() übergeben werden
Wenn zusätzliche Attribute für das <style> Tag spezifiziert
werden sollen, dann müssen diese in einem Array als zweites Argument an
captureStart() übergeben werden.