Gibt es eine Möglichkeit, ein eigenes HTML-Element zu erstellen?

7

Gibt es eine Möglichkeit, ein eigenes HTML-Element zu erstellen? Ich möchte ein speziell gestaltetes Kontrollkästchen erstellen.

Ich stelle mir vor, so etwas würde in JavaScript gemacht werden. Etwas wie document.createHTMLElement , aber die Fähigkeit, ein eigenes Element (und ein eigenes Tag) zu erstellen.

    
Alan 21.07.2010, 23:47
quelle

8 Antworten

3

Ja, Sie können Ihre eigenen Tags erstellen. Sie müssen ein Schema erstellen und es auf Ihrer Seite importieren und eine JavaScript-Ebene schreiben, um Ihre neuen Tags in vorhandene HTML-Tags zu konvertieren.

Ein Beispiel ist fbml ( Facebook Markup Language ), das ein Schema und eine JavaScript-Ebene enthält das hat Facebook geschrieben. Siehe hierzu: Open Graph-Protokoll .

Mit ihm können Sie einen ähnlichen Knopf wirklich leicht machen:

%Vor%     
BrunoLM 21.07.2010, 23:56
quelle
12

Nein, gibt es nicht.

Die HTML-Elemente beschränken sich auf den Umgang mit dem Browser. Das heißt, wenn Sie ein benutzerdefiniertes Firefox-Plugin erstellt haben und es dann mit Ihrem speziellen Tag behandelt haben, dann könnten Sie es "tun", um verschiedene Interpretationen von "doing it" zu machen. Eine Liste aller Elemente für eine bestimmte HTML-Version finden Sie hier: Ссылка

Wahrscheinlich willst du das aber nicht wirklich. Wenn Sie mehrere vorhandene Elemente so kombinieren möchten, dass sie zusammen funktionieren, können Sie genau das mit JavaScript machen. Wenn Sie beispielsweise eine Checkbox möchten, die, wenn Sie darauf klicken, irgendwo eine Dropdown-Liste anzeigt, die mit verschiedenen Dingen gefüllt ist, können Sie das tun.

Vielleicht möchten Sie näher erläutern, was Sie eigentlich erreichen wollen, und wir können weiter helfen.

    
Noon Silk 21.07.2010 23:54
quelle
2

Der einfachste Weg wäre wahrscheinlich, ein Plugin in Jquery zu schreiben (oder Dojo, MooTools, wähle eins). Im Falle von jQuery können Sie hier einige Plugins Ссылка finden und sie als Beispiel verwenden.

    
Alex Djioev 21.07.2010 23:55
quelle
2

Sie müssen einen eigenen Doctype oder / schreiben und hierfür einen eigenen Namespace verwenden.

Ссылка

    
olamedia 22.07.2010 03:36
quelle
1

Nein, ist es nicht. Außerdem ist es in HTML5 nicht erlaubt.

Sehen Sie sich die Ample SDK JavaScript-GUI-Bibliothek an, die alle benutzerdefinierten Elemente oder Ereignis-Namespaces clientseitig aktiviert (so wie zum Beispiel XUL) dort implementiert) ohne die Regeln von HTML5 zu stören.

Schauen Sie sich zum Beispiel an, wie das XUL-Skalierungselement implementiert wurde: Ссылка und sein Standard-Stylesheet: Ссылка

    
Sergey Ilinsky 22.07.2010 00:25
quelle
1

Es ist eine gültige Frage, aber ich denke, der Name des Spiels von der UI-Seite ist progressive Markup. Erstellen Sie gültige w3-kompatible Tags und formatieren Sie sie dann mit Javascript (in meinem Fall Jquery oder Dojo) und CSS. Ein gut geschriebener CSS-Block kann immer wieder verwendet werden (mein Lieblingsfall ist Jquery UI mit dem meroller) und style fast jedes Element auf der Seite mit nur einem Ein-oder Zwei-Wort-Zusatz zur Klassendeklaration.

Hier sind einige gute Jquery / Javascript / CSS-Lösungen, die relativ einfach sind:

Ссылка Ссылка Ссылка

Hier ist die Spezifikation für das kommende (und vielversprechende) JqueryUI-Update für Formularelemente: Ссылка

Wenn Sie Eingaben validieren mussten, ist dies eine einfache Möglichkeit, eine Inline-Validierung mit einem einzelnen Klassen- oder ID-Tag zu erhalten: Ссылка

Ok, meine Lösung ist also keine 10-Zeichen-Lösung. Abgesehen von Jquery Code wäre jedoch jedes einzelne Tag nicht viel mehr als:

%Vor%

Obwohl es also einen mittleren Teil des Jquery-Codes geben würde, wären die einzelnen Elemente sehr klein, was wichtig ist, wenn Sie es 250-mal (programmgesteuert) wiederholen, da mein letztes Projekt erforderlich ist. Es ist einfach zu codieren, verschlechtert sich gut, validiert gut, und weil progressive Markup auf dem Benutzer-Ende sein würde, haben praktisch keine Kosten auf dem Server-Ende.

Mein aktuelles Projekt ist in Symfony - nicht meine Wahl -, die komplexe, sperrige serverseitige Tags verwendet, um Formularelemente zu rendern, zu validieren, JavaScript-onclick, style usw. auszuführen. Dies scheint das zu sein, wonach Sie gefragt haben .... und lass mich dir sagen, es ist CLUNKY. Ein Tag zum Aufruf eines Links kann 10 Zeilen Code lang sein! Nachdem ich dazu gezwungen wurde, bin ich kein Fan.

    
bpeterson76 22.07.2010 03:20
quelle
0

Hm. Der erste Gedanke ist, dass Sie Ihr eigenes Element erstellen und dann eine Transformation mit XSLT in das gültige HTML durchführen können.

    
franzose 23.07.2010 02:45
quelle
0

Mit dem aufkommenden W3 Web Components Standard, speziell dem Benutzerdefinierte Elemente spec , Sie können nun Ihre eigenen benutzerdefinierten HTML-Elemente erstellen und sie mit der document.register() DOM-Methode im Parser registrieren.

X-Tag ist eine hilfreiche Zuckerbibliothek, die von Mozilla entwickelt wurde, und die es noch einfacher macht, mit Web Components zu arbeiten. Schau mal: X -Tags.org

    
csuwldcat 01.06.2013 05:14
quelle

Tags und Links