Ankündigung

Einklappen
Keine Ankündigung bisher.

HTML5 eigene Attribute definieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • HTML5 eigene Attribute definieren

    Hallo

    Die Suche nach custom attributes führt mich immer nur zu data-* Attribute. Ich würde aber gerne wissen, ob es in HTML5 erlaubt ist, auch Attribute ohne den data- Prefix zu nutzen.
    Ich meine nicht damit ob es funktionieren würde, sondern ob es Standardkonform ist.

    Code:
    <foo-bar foo="x" y="bar">Output</foo-bar>

  • #2
    Moin Moin.

    Standardkonform ist es nur mit data-*, siehe auch: https://html.spec.whatwg.org/multipa...ml#attr-data-*

    Wären denn benutzerdefinierte Elemente eine Alternative? -> https://wiki.selfhtml.org/wiki/HTML/...ustom_elements

    Lg

    Kommentar


    • #3
      Zitat von MichaelKre Beitrag anzeigen
      Moin Moin.

      Standardkonform ist es nur mit data-*, siehe auch: https://html.spec.whatwg.org/multipa...ml#attr-data-*

      Wären denn benutzerdefinierte Elemente eine Alternative? -> https://wiki.selfhtml.org/wiki/HTML/...ustom_elements

      Lg
      Danke, dann werde ich es wohl mit data-* machen müssen.
      <foo-bar> ist bereits ein benutzerdefiniertes Element

      Kommentar


      • #4
        Zitat von SteiniKeule Beitrag anzeigen

        Danke, dann werde ich es wohl mit data-* machen müssen.
        Oder man nimmt class, wenn kein Wert gebraucht wird. - Aber was spricht denn gegen data- ?

        Kommentar


        • #5
          Zitat von p-bieling Beitrag anzeigen

          Oder man nimmt class, wenn kein Wert gebraucht wird. - Aber was spricht denn gegen data- ?
          Die Länge. Es soll eigentlich nur ein Platzhalter sein, welcher ersetzt wird.
          <foo-bar data-serach-key="blub">searchResult</foo-bar>
          oder eben
          <foo-bar data-serach-key="blub" data-term="searchResult"></foo-bar>


          Von PHP wird das ganze Element mit dem Wert searchResult ersetzt. Sollte searchResult nicht vorhanden sein, wird nur "searchResult" oder wie in Beispiel 2 nichts ausgegeben.
          Nutze ich kein HTML-Element, steht da so ein Zeug wie {{foobar searchKey[blub] term[earchResult] }}.

          Weiterer Vorteil ist, dass ich die Ersetzung nicht mit PHP machen muss und das Element mit CSS/JS manipuliert werden kann.
          Für die primäre Aufgabe, einen Platzhalter wie {{foobar }} zu ersetzen, ist der zusätzliche data-* Prefix einfach unnötig und macht den Platzhalter unnötig gross.

          Kommentar


          • #6
            Tut mir leid, ich sehe den Vorteil dieser Konstruktion nicht.
            Auf PHP-Seite muss ich doch kein HTML ersetzen, da würde ich eher HTML einsetzen, wo der Platzhalter im Template steht.
            Je nach Template-Engine gibt es doch für den Fall, dass man kein Ergebnis hat fertige Lösungen:
            https://unlimited-elements.com/docs/...mple-if-empty/

            Wenn man die Logik im PHP hat und nicht im Template, ist es mindestens genauso leicht, das auszuliefern, was man haben will.

            Wenn man mit JavaScript ersetzen will, kann man die HTML5-Template-Elemente verwernden:
            https://developer.mozilla.org/en-US/...tiredLocale=de

            Und wenn es tatsächlich nötig sein sollte, das so zu machen, wie Du es vorhast, dann kann man auch noch das id-Attribut verwenden, um ein Element eindeutig zu kennzeichnen. Dafür ist es ja auch da.

            Kommentar

            Lädt...
            X