Linuchs: style scoped

Moin,

beim HTML-Validierungs-Check wird als Fehler gemeldet

Error: Element style not allowed as child of element body in this context. 

als ich style scoped innerhalb header geschrieben habe. Nun habe ich es vor header gesetzt und es ist immer noch nicht richtig.

Also habe ich style scoped nicht verstanden.

Wenn ich eine Seite per PHP zusammensetze aus Bausteinen, warum dürfen diese Bausteine, also z.B. header nicht ihre eigenen Formatierungen haben? Das wäre doch im Sinne von objektorientiert. In Programmiersprachen seit Jahrzehnten üblich, bei HTML verboten?

Linuchs

  1. Hallo

    beim HTML-Validierungs-Check wird als Fehler gemeldet

    Error: Element style not allowed as child of element body in this context. 
    

    Tja, ist halt so, weil es das im Standard nicht gibt.

    als ich style scoped innerhalb header geschrieben habe. Nun habe ich es vor header gesetzt und es ist immer noch nicht richtig.

    Ja, weil, wie du dir bestimmt denken kannst, <style> nur in <head> notiert werden darf.

    Also habe ich style scoped nicht verstanden.

    Doch, was du machen willst, ist das, was diese Technik leisten soll(te). Das heißt ABER weder, dass sie Bestandteil eines Standards ist, also von einem Validator als valide bezeichnet wird, und noch viel weniger, dass sie überhaupt breit unterstützt wird.

    Wenn ich eine Seite per PHP zusammensetze aus Bausteinen, warum dürfen diese Bausteine, also z.B. header nicht ihre eigenen Formatierungen haben?

    Weil das der HTML-Standard nicht hergibt.

    Das wäre doch im Sinne von objektorientiert. In Programmiersprachen seit Jahrzehnten üblich, bei HTML verboten?

    Nun tu bitte nicht so, als ob es neu für dich wäre, dass HTML keine Programmiersprache ist. Worin besteht das Problem, den Bestandteilen der Seite(n) die CSS-Regeln auf klassische Weise zuzuweisen?

    Tschö, Auge

    --
    Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
    Wolfgang Schneidewind *prust*
    1. Nun tu bitte nicht so, als ob es neu für dich wäre, dass HTML keine Programmiersprache ist.

      Nu sei doch nicht so pingelig, war ja nur der Vergleich von Autarkie-Ideen.

      Autarke HTML-Bausteine wären doch was ... Auch für Server Side Includes.

      <!--#include file="header.shtml" -->
      

      Und bei frames und iframes längst Realität.

      Linuchs

      1. Hallo

        Autarke HTML-Bausteine wären doch was ... Auch für Server Side Includes.

        SSI wiederum ist eine Programmiersprache, wenn auch eine mit einem auf dihre Aufgabne beschränkten Sprachrepertoire.

        Und bei frames und iframes längst Realität.

        Nein. Frames enthalten vollständige Dokumente und keine Bausteine, aus denen ein Dokument erst entstehen soll.

        Tschö, Auge

        --
        Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
        Wolfgang Schneidewind *prust*
  2. Hallo,

    Also habe ich style scoped nicht verstanden.

    Wo hast du das denn her und wie hast du es verwendet?

    In Programmiersprachen seit Jahrzehnten üblich, bei HTML verboten?

    Ich weiß grad nicht, ob das jemals hier erwähnt wurde, aber HTML ist keine Programmiersprache. Stattdessen ist genau definiert, welche Elemente was für Kinder haben dürfen.

    Gruß
    Kalk

  3. @@Linuchs

    als ich style scoped innerhalb header geschrieben habe. Nun habe ich es vor header gesetzt und es ist immer noch nicht richtig.

    Also habe ich style scoped nicht verstanden.

    Das war mal eine Idee, die wohl wieder verworfen (oder zumindest auf Eis gelegt) wurde. scoped gibt es weder in den W3C-Specs HTML 5.0, HTML 5.1 oder HTML 5.2 noch im Living Standard der WHATWG.

    warum dürfen diese Bausteine, also z.B. header nicht ihre eigenen Formatierungen haben?

    Das style-Element darf im template-Element stehen.

    LLAP 🖖

    --
    “The best way to help people learn: answer their coding question an hour later, they’ll have likely figured it out by then.” —Todd Motto
    Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
    1. warum dürfen diese Bausteine, also z.B. header nicht ihre eigenen Formatierungen haben?

      Das style-Element darf im template-Element stehen.

      … wo es dann erstmal vor sich hin dümpelt und ohne Weiteres noch keine Auswirkungen hat. Das muss beim Instanziieren des Templates berücksichtigt werden. Wenn man es als Shadow DOM instanziiert ist das Wirken des Stylesheets auf diesen lokalen Bereich beschränkt. Das kommt der Modularisierung die sich Linuchs herbeisehnt schon sehr nahe. In dem Zusammenhang kann ich auch diesen Talk über Modulariserung des Webs von Pete Hunt empfehlen.

  4. @@Linuchs

    beim HTML-Validierungs-Check wird als Fehler gemeldet

    Error: Element style not allowed as child of element body in this context. 
    

    Wenn dich die Meldung des Markup-Checkers nicht stört: Es funktioniert ja.

    Und es gibt Bestrebungen, das link in body zu erlauben.

    Guckst du.

    LLAP 🖖

    --
    “The best way to help people learn: answer their coding question an hour later, they’ll have likely figured it out by then.” —Todd Motto
    Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
    1. Wenn dich die Meldung des Markup-Checkers nicht stört: Es funktioniert ja.

      Naja, nicht so ganz. Das Problem ist deshalb überraschend hochgepoppt, weil auf meinem antiken Smartphone (Android von 2011 ?) ein style scoped allgemeingültig zu sein scheint.

      Linuchs

      1. Hallo

        Wenn dich die Meldung des Markup-Checkers nicht stört: Es funktioniert ja.

        Naja, nicht so ganz. Das Problem ist deshalb überraschend hochgepoppt, weil auf meinem antiken Smartphone (Android von 2011 ?) ein style scoped allgemeingültig zu sein scheint.

        Ein <style>-Element, welches innerhalb des <body> notiert ist, wird wohl von den meisten Browsern interpretiert, auch wenn es nach den HTML-Regeln invalide ist. Wenn dabei „scope“ ignoriert wird, was nach der laut CanIUse? mageren Unterstützung anzunehmen ist, ist der Inhalt dieses <style>-Blocks natürlich allgemeingültig.

        Tschö, Auge

        --
        Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
        Wolfgang Schneidewind *prust*
        1. @@Auge

          … ist der Inhalt dieses <style>-Blocks natürlich allgemeingültig.

          Und i.A. ist das auch gut so.

          “CSS is supposed to be global. You want your site to be uniform, not haphazard.” —Estelle Weyl

          LLAP 🖖

          --
          “The best way to help people learn: answer their coding question an hour later, they’ll have likely figured it out by then.” —Todd Motto
          Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|