Ich habe festgestellt, dass SharePoint 2010 einen Wert wie diesen zugewiesen hat: {8CC7EF38-31D8-4786-8C20-7E6D56E49AE2} - {E60CE5E2-6E64-4350-A884-654B72DA5A53} für eine dynamisch generierte Tabelle in einem Webpart und einer Seite mit einem ID-Wert von Diese Art hat in keinem der gängigen Browser funktioniert. Der Umgang mit solchen ID-Werten über JavaScript ist allerdings schwierig - mvark.blogspot.in/2012/07/…
mvark
3
Die HTML4- und HTML5-Anforderungen für IDWerte sind sehr unterschiedlich. Hier ist eine kurze und vollständige Übersicht über die HTML5- IDRegeln: stackoverflow.com/a/31773673/3597276
Michael Benjamin
5
Bitte beachten Sie: Wenn Sie wie in einigen Antworten angegeben, einen Punkt verwenden ( **.**)bei jQuery treten beispielsweise erhebliche Probleme auf, wenn Sie jQuery verwenden <input id="me.name" />und dann $("#me.name").val()nach einem <me>Tag mit der Klasse suchen .name, das niemand möchte wirklich!
Kann O 'Spam
3
@SamSwift 웃 Nein, Sie müssen nur Sonderzeichen entkommen, wie in den Dokumenten angegeben . Bitte überprüfen Sie diese Online-Demo .
ID- und NAME-Token müssen mit einem Buchstaben ([A-Za-z]) beginnen und können von einer beliebigen Anzahl von Buchstaben, Ziffern ([0-9]), Bindestrichen ("-") und Unterstrichen ("_") gefolgt werden. , Doppelpunkte (":") und Punkte (".").
HTML 5 ist noch freizügiger und besagt nur, dass eine ID mindestens ein Zeichen enthalten darf und keine Leerzeichen enthalten darf.
Das id-Attribut unterscheidet in XHTML zwischen Groß- und Kleinschreibung .
Aus rein praktischen Gründen möchten Sie möglicherweise bestimmte Zeichen vermeiden. Punkte, Doppelpunkte und '#' haben in CSS-Selektoren eine besondere Bedeutung. Sie müssen diese Zeichen daher mit einem Backslash in CSS oder einem doppelten Backslash in einer an jQuery übergebenen Auswahlzeichenfolge umgehen . Überlegen Sie, wie oft Sie einem Zeichen in Ihren Stylesheets oder Ihrem Code entkommen müssen, bevor Sie mit Punkten und Doppelpunkten in IDs verrückt werden.
Beispielsweise ist die HTML-Deklaration <div id="first.name"></div>gültig. Sie können dieses Element in CSS als #first\.nameund in jQuery wie folgt auswählen : $('#first\\.name').Wenn Sie jedoch den Backslash vergessen, $('#first.name')haben Sie einen vollkommen gültigen Selektor, der nach einem Element mit ID sucht firstund auch eine Klasse hat name. Dies ist ein Fehler, der leicht zu übersehen ist. Auf lange Sicht könnten Sie glücklicher sein, wenn Sie stattdessen die ID first-name(eher einen Bindestrich als einen Punkt) wählen .
Sie können Ihre Entwicklungsaufgaben vereinfachen, indem Sie sich strikt an eine Namenskonvention halten. Wenn Sie sich beispielsweise ausschließlich auf Kleinbuchstaben beschränken und Wörter immer entweder durch Bindestriche oder Unterstriche trennen (aber nicht beide, wählen Sie einen aus und verwenden Sie niemals den anderen), haben Sie ein leicht zu merkendes Muster. Sie werden sich nie fragen: "War es firstNameoder FirstName?" weil Sie immer wissen, dass Sie tippen sollten first_name. Kamelkoffer bevorzugen? Dann beschränken Sie sich darauf, keine Bindestriche oder Unterstriche, und verwenden Sie immer konsequent Groß- oder Kleinbuchstaben für das erste Zeichen. Mischen Sie sie nicht.
Ein jetzt sehr dunkles Problem war, dass mindestens ein Browser, Netscape 6, ID-Attributwerte fälschlicherweise als Groß- und Kleinschreibung behandelte . Das heißt, wenn Sie id="firstName"Ihr HTML (Kleinbuchstaben 'f') und #FirstName { color: red }Ihr CSS (Großbuchstaben 'F') eingegeben hätten, hätte dieser fehlerhafte Browser die Farbe des Elements nicht auf Rot gesetzt. Zum Zeitpunkt dieser Bearbeitung, April 2015, hoffe ich, dass Sie nicht aufgefordert werden, Netscape 6 zu unterstützen. Betrachten Sie dies als historische Fußnote.
Beachten Sie, dass Klassen- und id Attribute sind case-sensitive in XHTML, alle anderen Attribute sind es nicht. Eric Meyer erwähnte dies in einem CSS-Workshop, an dem ich teilnahm.
John Topley
31
Beachten Sie auch, dass es nicht funktioniert, wenn Sie versuchen, eine CSS-Regel zu schreiben, um ein Element anhand der ID anzuvisieren, und die ID mit einer Nummer versehen ist. Schade!
Zack The Human
55
Wie für '.' oder ':' in einer ID mit jQuery, siehe die jQuery- FAQ . Es enthält eine kleine Funktion, die das notwendige Entkommen bewirkt.
Wolfram
7
Das idAttribut lautet [ w3.org/TR/html4/struct/global.html#adef-id weibl. ( Groß- und Kleinschreibung in HTML4) und muss mit einem Buchstaben beginnen (beschränkt auf A bis Z). Beachten Sie auch, dass Ihr Beispiel die Textfarbe Ihres Elements nicht rot machen sollte, da sich Ihr CSS auf ein Element mit einer Klasse bezieht, die FirstNamenicht auf Ihre id.
Augustus Kling
5
Der Fehler, auf den Augustus hingewiesen hat, ist immer noch vorhanden. Wenn Sie id="firstName"in Ihrem Beispiel HTML 4 oder HTML 5 und #FirstName { color: red }CSS verwenden, setzt nur ein fehlerhafter Browser die Farbe des Elements auf Rot.
ID- und NAME-Token müssen mit einem Buchstaben ([A-Za-z]) beginnen und können von einer beliebigen Anzahl von Buchstaben, Ziffern ([0-9]), Bindestrichen ("-") und Unterstrichen ("_") gefolgt werden. , Doppelpunkte (":") und Punkte (".").
Ein häufiger Fehler ist die Verwendung einer ID, die mit einer Ziffer beginnt.
IE6 unterstützte keine ID, die mit Unterstrichen begann, aber es ist trotzdem tot.
doc_id
2
@rahmanisback in Bezug auf IE6 hätte man das gedacht, aber ich beende gerade einen Vorschlag für eine Bank und sie bestehen darauf, dass jede Anwendung, die ein Anbieter entwickelt, in IE6 ausgeführt wird. Dies ist für 30.000 Benutzer. Wenn wir sie nur dazu bringen könnten, ihre Browser auf all diesen Desktops zu aktualisieren, könnte dies nur der Arbeitslosenquote helfen.
Karl
2
@ Karl Es tut mir leid das zu hören. Führen Sie alle Ihre Bemühungen aus, um vor IE6-Sicherheitsproblemen zu warnen. IE7 wird jedoch bald der neue IE6 sein, also scheint es unser Schicksal in dieser Branche zu sein, MS-Fehler in der Vergangenheit zu beheben.
doc_id
@ MrShark Der zweite Link ist unterbrochen. Neuer Link
SWdV
155
Sie können Doppelpunkte und Punkte technisch in ID / Name-Attributen verwenden, aber ich würde dringend empfehlen, beide zu vermeiden.
In CSS (und mehreren JavaScript-Bibliotheken wie jQuery) haben sowohl der Punkt als auch der Doppelpunkt eine besondere Bedeutung, und Sie werden auf Probleme stoßen, wenn Sie nicht vorsichtig sind. Perioden sind Klassenselektoren und Doppelpunkte sind Pseudoselektoren (z. B. ": hover" für ein Element, wenn sich die Maus darüber befindet).
Wenn Sie einem Element die ID "my.cool:thing" geben, sieht Ihr CSS-Selektor folgendermaßen aus:
#my.cool:thing { ... /* some rules */ ... }
Was wirklich sagt: "Das Element mit der ID 'mein', eine Klasse von 'cool' und der 'Ding'-Pseudo-Selektor" in CSS-Sprache.
Halten Sie sich in jedem Fall an AZ, Zahlen, Unterstriche und Bindestriche. Und wie oben erwähnt, stellen Sie sicher, dass Ihre IDs eindeutig sind.
Sie können Doppelpunkte und Punkte verwenden - aber Sie müssen sie mit doppelten Backslashes maskieren, z. B. $ ('# my \\. Cool \\: thing') oder mit einer Variablen: $ ('#' + id.replace (/ \ ./, '\\.'). Ersetzen (/ \: /, '\\:')) groups.google.com/group/jquery-en/browse_thread/thread/…
joeformd
2
Warum nicht Ziffern? warum nur AZ? Zahlen sind sehr nützliche IDs, wenn Sie sich auf Elemente beziehen, die sich auf Daten beziehen, die mit einer Nummer versehen sind, solange Sie nicht mit der Nummer beginnen.
Wenn Sie diese Zeichen ( ., :) in IDs haben und sie nicht entfernen können (Husten ... Sharepoint), können Sie dies in CSS mit Attributselektoren anstelle von ID-Selektoren umgehen, z. B. [id='my.cool:thing']hat dieser Selektor jedoch eine geringere Spezifität als ein ID-Auswahl, die andere Probleme verursachen kann.
Faust
2
Alt, ich weiß, aber aktualisiert, um Zahlen und Backpedal auf Bindestrichen einzuschließen
Michael Thompson
67
jQuery hat jeden gültigen ID - Namen handhaben . Sie müssen nur den Metazeichen (dh Punkten, Semikolons, eckigen Klammern ...) entkommen. Es ist so, als hätte JavaScript nur deshalb ein Problem mit Anführungszeichen, weil Sie nicht schreiben können
Oder alternativ: "Es ist also vielleicht besser, jquery zu vermeiden". ;)
Domsson
59
HTML5:
beseitigt die zusätzlichen Einschränkungen für das ID-Attribut, siehe hier . Die einzigen verbleibenden Anforderungen (abgesehen davon, dass sie im Dokument eindeutig sind) sind:
Der Wert muss mindestens ein Zeichen enthalten (darf nicht leer sein)
Es darf keine Leerzeichen enthalten.
PRE-HTML5:
ID sollte übereinstimmen:
[A-Za-z][-A-Za-z0-9_:.]*
Muss mit AZ- oder Az-Zeichen beginnen
Kann -(Bindestrich), _(Unterstrich), :(Doppelpunkt) und .(Punkt) enthalten
aber man sollte vermeiden :und .weil:
Beispielsweise könnte eine ID mit "ab: c" gekennzeichnet und im Stylesheet als #ab: c bezeichnet werden. Sie könnte jedoch nicht nur die ID für das Element sein, sondern auch die ID "a", die Klasse "b", pseudo- Wahlschalter "c". Vermeiden Sie am besten Verwirrung und vermeiden Sie die Verwendung. und: insgesamt.
HTML5: Zulässige Werte für ID- und Klassenattribute
Ab HTML5 sind die einzigen Einschränkungen für den Wert einer ID:
muss im Dokument eindeutig sein
darf keine Leerzeichen enthalten
muss mindestens ein Zeichen enthalten
Ähnliche Regeln gelten für Klassen (mit Ausnahme der Einzigartigkeit natürlich).
Der Wert kann also aus allen Ziffern bestehen, nur aus einer Ziffer, nur aus Satzzeichen und Sonderzeichen. Nur kein Leerzeichen. Dies unterscheidet sich stark von HTML4.
In HTML 4 müssen ID-Werte mit einem Buchstaben beginnen, auf den nur Buchstaben, Ziffern, Bindestriche, Unterstriche, Doppelpunkte und Punkte folgen können.
Denken Sie daran, dass die Verwendung von Zahlen, Satzzeichen oder Sonderzeichen im Wert einer ID in anderen Kontexten (z. B. CSS, JavaScript, Regex) zu Problemen führen kann.
Beispielsweise ist die folgende ID in HTML5 gültig:
In CSS dürfen Bezeichner (einschließlich Elementnamen, Klassen und IDs in Selektoren) nur die Zeichen [a-zA-Z0-9] und ISO 10646-Zeichen U + 00A0 und höher sowie den Bindestrich (-) und den Unterstrich (enthalten) enthalten. _); Sie können nicht mit einer Ziffer, zwei Bindestrichen oder einem Bindestrich gefolgt von einer Ziffer beginnen .
In den meisten Fällen können Sie Zeichen in Kontexten entkommen, in denen sie Einschränkungen oder eine besondere Bedeutung haben.
Das idAttribut gibt die eindeutige ID (ID) des Elements an.
Der Wert muss unter allen IDs im Home-Teilbaum des Elements eindeutig sein und mindestens ein Zeichen enthalten. Der Wert darf keine Leerzeichen enthalten.
Hinweis: Es gibt keine weiteren Einschränkungen hinsichtlich der Form einer ID. Insbesondere können IDs nur aus Ziffern bestehen, mit einer Ziffer beginnen, mit einem Unterstrich beginnen, nur aus Interpunktion bestehen usw.
Das Attribut muss, falls angegeben, einen Wert haben, bei dem es sich um eine Reihe von durch Leerzeichen getrennten Token handelt, die die verschiedenen Klassen darstellen, zu denen das Element gehört.
Die Klassen, die ein HTML-Element ihm zugewiesen hat, bestehen aus allen Klassen, die zurückgegeben werden, wenn der Wert des Klassenattributs auf Leerzeichen aufgeteilt wird. (Duplikate werden ignoriert.)
Es gibt keine zusätzlichen Einschränkungen für die Token, die Autoren im Klassenattribut verwenden können. Autoren werden jedoch aufgefordert, Werte zu verwenden, die die Art des Inhalts beschreiben, anstatt Werte, die die gewünschte Darstellung des Inhalts beschreiben.
In der Praxis verwenden viele Websites idAttribute, die mit Zahlen beginnen, obwohl dies technisch gesehen kein gültiger HTML-Code ist.
Die HTML 5-Entwurfsspezifikation lockert die Regeln für die Attribute idund name: Sie sind jetzt nur noch undurchsichtige Zeichenfolgen, die keine Leerzeichen enthalten dürfen.
Bindestriche, Unterstriche, Punkte, Doppelpunkte, Zahlen und Buchstaben sind für die Verwendung mit CSS und JQuery gültig. Das Folgende sollte funktionieren, muss jedoch auf der gesamten Seite eindeutig sein und mit einem Buchstaben [A-Za-z] beginnen.
Das Arbeiten mit Doppelpunkten und Punkten erfordert etwas mehr Arbeit, aber Sie können dies tun, wie das folgende Beispiel zeigt.
Beachten Sie, dass die ID eindeutig sein muss, d. H. Ein Dokument darf nicht mehrere Elemente enthalten, die denselben ID-Wert haben.
Die Regeln für ID-Inhalte in HTML5 lauten (abgesehen davon, dass sie eindeutig sind):
This attribute's value must not contain white spaces. [...]
Though this restriction has been lifted in HTML 5,
an ID should start with a letter for compatibility.
Dies ist die W3- Spezifikation zur ID (von MDN):
Anystring,with the following restrictions:
must be at least one character long
must not contain any space characters
Previous versions of HTML placed greater restrictions on the content of ID values
(for example, they did not permit ID values to beginwith a number).
Um auf eine ID mit einem Punkt darin zu verweisen, müssen Sie einen Backslash verwenden. Ich bin mir nicht sicher, ob dies für Bindestriche oder Unterstriche gleich ist. Zum Beispiel: HTML
Bindestriche und Unterstriche müssen normalerweise nicht maskiert werden. Eine Ausnahme bildet jedoch, wenn der Bindestrich am Anfang des Bezeichners erscheint und ein weiterer Bindestrich (z. B. \--abc) oder eine Ziffer (z. B. \-123) folgt .
MrWhite
16
Aus der HTML 4-Spezifikation ...
ID- und NAME-Token müssen mit einem Buchstaben ([A-Za-z]) beginnen und können von einer beliebigen Anzahl von Buchstaben, Ziffern ([0-9]), Bindestrichen ("-") und Unterstrichen ("_") gefolgt werden. , Doppelpunkte (":") und Punkte (".").
Ein Dokument darf nicht mehrere Elemente enthalten, die denselben ID-Wert haben.
Beliebige Zeichenfolge mit den folgenden Einschränkungen:
muss mindestens ein Zeichen lang sein
darf keine Leerzeichen enthalten:
U + 0020 SPACE
U + 0009 CHARAKTERTABELLIERUNG (Registerkarte)
U + 000A LINE FEED (LF)
U + 000C FORM FEED (FF)
U + 000D WAGENRÜCKGABE (CR)
Die Verwendung von Zeichen außer ASCII letters and digits, '_', '-' and '.'kann zu Kompatibilitätsproblemen führen, da sie nicht zugelassen wurden HTML 4. Obwohl diese Einschränkung aufgehoben wurde HTML 5, sollte eine ID aus Kompatibilitätsgründen mit einem Buchstaben beginnen.
Es scheint, dass Doppelpunkte (:) und Punkte (.) In der HTML-Spezifikation zwar gültig sind, jedoch als ID-Selektoren in CSS ungültig sind. Daher sollten Sie sie am besten vermeiden, wenn Sie sie für diesen Zweck verwenden möchten.
Der Wert muss unter allen IDs im Home-Teilbaum des Elements eindeutig sein und mindestens ein Zeichen enthalten. Der Wert darf keine Leerzeichen enthalten.
Mindestens ein Zeichen, keine Leerzeichen.
Dies öffnet die Tür für gültige Anwendungsfälle wie die Verwendung von Zeichen mit Akzent. Es gibt uns auch viel mehr Munition, mit der wir uns in den Fuß schießen können, da Sie jetzt ID-Werte verwenden können, die Probleme mit CSS und JavaScript verursachen, sofern Sie nicht wirklich vorsichtig sind.
IDs eignen sich am besten zum Benennen von Teilen Ihres Layouts und sollten daher nicht den gleichen Namen für ID und Klasse enthalten
ID erlaubt alphanumerische Zeichen und Sonderzeichen
Vermeiden Sie jedoch die Verwendung von # : . * !Symbolen
nicht erlaubte Leerzeichen
nicht mit Zahlen oder einem Bindestrich gefolgt von einer Ziffer begonnen
Groß- und Kleinschreibung beachten
Die Verwendung von ID-Selektoren ist schneller als die Verwendung von Klassenselektoren
Verwenden Sie für lange CSS-Klassen- oder ID-Regelnamen den Bindestrich "-" (Unterstrich "_" kann ebenfalls verwendet werden, ist jedoch nicht für SEO geeignet)
Wenn eine Regel einen ID-Selektor als Schlüsselselektor hat, fügen Sie der Regel keinen Tag-Namen hinzu. Da IDs eindeutig sind, würde das Hinzufügen eines Tag-Namens den Abgleich unnötig verlangsamen.
In HTML5 kann das id-Attribut für jedes HTML-Element verwendet werden, und in HTML 4.01 kann das id-Attribut nicht verwendet werden mit: <base>, <head>, <html>, <meta>, <param>, <script>, <style>, and <title>.
Aber auch wenn Sie eine ID mit Doppelpunkten (:) oder Punkt (.) Erstellen können, ist es für CSS schwierig , diese ID als Auswahl zu verwenden. Hauptsächlich, wenn Sie Pseudo-Elemente verwenden möchten (: vorher ,: nachher).
Auch in JS ist es schwierig, diese IDs auszuwählen. Sie sollten also die ersten vier IDs verwenden. Wie von vielen Entwicklern bevorzugt, und wenn es erforderlich ist, können Sie auch die letzten beiden verwenden.
In ES2015 müssen Bezeichner mit $, _ oder einem beliebigen Symbol mit der von Unicode abgeleiteten Kerneigenschaft ID_Start beginnen.
Der Rest des Bezeichners kann $, _, U + 200C Nicht-Joiner mit Nullbreite, U + 200D Null-Breite-Joiner oder ein beliebiges Symbol mit der von Unicode abgeleiteten Kerneigenschaft ID_Continue enthalten.
Das Format sollte entweder mit '.' beginnen. oder ein Alphabet, gefolgt von einem der Sonderzeichen von mehr Alphabeten oder Zahlen. Der Wert des ID-Feldes darf nicht mit einem '_' enden.
Außerdem sind Leerzeichen nicht zulässig, sofern sie bereitgestellt werden. Sie werden als unterschiedliche Werte behandelt, was bei den ID-Attributen nicht gültig ist.
ID
Werte sind sehr unterschiedlich. Hier ist eine kurze und vollständige Übersicht über die HTML5-ID
Regeln: stackoverflow.com/a/31773673/3597276**.**)
bei jQuery treten beispielsweise erhebliche Probleme auf, wenn Sie jQuery verwenden<input id="me.name" />
und dann$("#me.name").val()
nach einem<me>
Tag mit der Klasse suchen.name
, das niemand möchte wirklich!Antworten:
Für HTML 4 lautet die Antwort technisch:
HTML 5 ist noch freizügiger und besagt nur, dass eine ID mindestens ein Zeichen enthalten darf und keine Leerzeichen enthalten darf.
Das id-Attribut unterscheidet in XHTML zwischen Groß- und Kleinschreibung .
Aus rein praktischen Gründen möchten Sie möglicherweise bestimmte Zeichen vermeiden. Punkte, Doppelpunkte und '#' haben in CSS-Selektoren eine besondere Bedeutung. Sie müssen diese Zeichen daher mit einem Backslash in CSS oder einem doppelten Backslash in einer an jQuery übergebenen Auswahlzeichenfolge umgehen . Überlegen Sie, wie oft Sie einem Zeichen in Ihren Stylesheets oder Ihrem Code entkommen müssen, bevor Sie mit Punkten und Doppelpunkten in IDs verrückt werden.
Beispielsweise ist die HTML-Deklaration
<div id="first.name"></div>
gültig. Sie können dieses Element in CSS als#first\.name
und in jQuery wie folgt auswählen :$('#first\\.name').
Wenn Sie jedoch den Backslash vergessen,$('#first.name')
haben Sie einen vollkommen gültigen Selektor, der nach einem Element mit ID suchtfirst
und auch eine Klasse hatname
. Dies ist ein Fehler, der leicht zu übersehen ist. Auf lange Sicht könnten Sie glücklicher sein, wenn Sie stattdessen die IDfirst-name
(eher einen Bindestrich als einen Punkt) wählen .Sie können Ihre Entwicklungsaufgaben vereinfachen, indem Sie sich strikt an eine Namenskonvention halten. Wenn Sie sich beispielsweise ausschließlich auf Kleinbuchstaben beschränken und Wörter immer entweder durch Bindestriche oder Unterstriche trennen (aber nicht beide, wählen Sie einen aus und verwenden Sie niemals den anderen), haben Sie ein leicht zu merkendes Muster. Sie werden sich nie fragen: "War es
firstName
oderFirstName
?" weil Sie immer wissen, dass Sie tippen solltenfirst_name
. Kamelkoffer bevorzugen? Dann beschränken Sie sich darauf, keine Bindestriche oder Unterstriche, und verwenden Sie immer konsequent Groß- oder Kleinbuchstaben für das erste Zeichen. Mischen Sie sie nicht.Ein jetzt sehr dunkles Problem war, dass mindestens ein Browser, Netscape 6, ID-Attributwerte fälschlicherweise als Groß- und Kleinschreibung behandelte . Das heißt, wenn Sie
id="firstName"
Ihr HTML (Kleinbuchstaben 'f') und#FirstName { color: red }
Ihr CSS (Großbuchstaben 'F') eingegeben hätten, hätte dieser fehlerhafte Browser die Farbe des Elements nicht auf Rot gesetzt. Zum Zeitpunkt dieser Bearbeitung, April 2015, hoffe ich, dass Sie nicht aufgefordert werden, Netscape 6 zu unterstützen. Betrachten Sie dies als historische Fußnote.quelle
id
Attribut lautet [ w3.org/TR/html4/struct/global.html#adef-id weibl. ( Groß- und Kleinschreibung in HTML4) und muss mit einem Buchstaben beginnen (beschränkt auf A bis Z). Beachten Sie auch, dass Ihr Beispiel die Textfarbe Ihres Elements nicht rot machen sollte, da sich Ihr CSS auf ein Element mit einer Klasse bezieht, dieFirstName
nicht auf Ihreid
.id="firstName"
in Ihrem Beispiel HTML 4 oder HTML 5 und#FirstName { color: red }
CSS verwenden, setzt nur ein fehlerhafter Browser die Farbe des Elements auf Rot.Aus der HTML 4-Spezifikation :
Ein häufiger Fehler ist die Verwendung einer ID, die mit einer Ziffer beginnt.
quelle
Sie können Doppelpunkte und Punkte technisch in ID / Name-Attributen verwenden, aber ich würde dringend empfehlen, beide zu vermeiden.
In CSS (und mehreren JavaScript-Bibliotheken wie jQuery) haben sowohl der Punkt als auch der Doppelpunkt eine besondere Bedeutung, und Sie werden auf Probleme stoßen, wenn Sie nicht vorsichtig sind. Perioden sind Klassenselektoren und Doppelpunkte sind Pseudoselektoren (z. B. ": hover" für ein Element, wenn sich die Maus darüber befindet).
Wenn Sie einem Element die ID "my.cool:thing" geben, sieht Ihr CSS-Selektor folgendermaßen aus:
Was wirklich sagt: "Das Element mit der ID 'mein', eine Klasse von 'cool' und der 'Ding'-Pseudo-Selektor" in CSS-Sprache.
Halten Sie sich in jedem Fall an AZ, Zahlen, Unterstriche und Bindestriche. Und wie oben erwähnt, stellen Sie sicher, dass Ihre IDs eindeutig sind.
Das sollte Ihr erstes Anliegen sein.
quelle
.
,:
) in IDs haben und sie nicht entfernen können (Husten ... Sharepoint), können Sie dies in CSS mit Attributselektoren anstelle von ID-Selektoren umgehen, z. B.[id='my.cool:thing']
hat dieser Selektor jedoch eine geringere Spezifität als ein ID-Auswahl, die andere Probleme verursachen kann.jQuery hat jeden gültigen ID - Namen handhaben . Sie müssen nur den Metazeichen (dh Punkten, Semikolons, eckigen Klammern ...) entkommen. Es ist so, als hätte JavaScript nur deshalb ein Problem mit Anführungszeichen, weil Sie nicht schreiben können
Selektoren in der jQuery-API (siehe untere Anmerkung)
quelle
Genau genommen sollte es passen
Aber jquery scheint Probleme mit Doppelpunkten zu haben, daher ist es möglicherweise besser, sie zu vermeiden.
quelle
HTML5:
beseitigt die zusätzlichen Einschränkungen für das ID-Attribut, siehe hier . Die einzigen verbleibenden Anforderungen (abgesehen davon, dass sie im Dokument eindeutig sind) sind:
PRE-HTML5:
ID sollte übereinstimmen:
-
(Bindestrich),_
(Unterstrich),:
(Doppelpunkt) und.
(Punkt) enthaltenaber man sollte vermeiden
:
und.
weil:Beispielsweise könnte eine ID mit "ab: c" gekennzeichnet und im Stylesheet als #ab: c bezeichnet werden. Sie könnte jedoch nicht nur die ID für das Element sein, sondern auch die ID "a", die Klasse "b", pseudo- Wahlschalter "c". Vermeiden Sie am besten Verwirrung und vermeiden Sie die Verwendung. und: insgesamt.
quelle
HTML5: Zulässige Werte für ID- und Klassenattribute
Ab HTML5 sind die einzigen Einschränkungen für den Wert einer ID:
Ähnliche Regeln gelten für Klassen (mit Ausnahme der Einzigartigkeit natürlich).
Der Wert kann also aus allen Ziffern bestehen, nur aus einer Ziffer, nur aus Satzzeichen und Sonderzeichen. Nur kein Leerzeichen. Dies unterscheidet sich stark von HTML4.
In HTML 4 müssen ID-Werte mit einem Buchstaben beginnen, auf den nur Buchstaben, Ziffern, Bindestriche, Unterstriche, Doppelpunkte und Punkte folgen können.
In HTML5 sind diese gültig:
Denken Sie daran, dass die Verwendung von Zahlen, Satzzeichen oder Sonderzeichen im Wert einer ID in anderen Kontexten (z. B. CSS, JavaScript, Regex) zu Problemen führen kann.
Beispielsweise ist die folgende ID in HTML5 gültig:
In CSS ist es jedoch ungültig:
Aus der CSS2.1-Spezifikation:
In den meisten Fällen können Sie Zeichen in Kontexten entkommen, in denen sie Einschränkungen oder eine besondere Bedeutung haben.
W3C-Referenzen
HTML5
quelle
In der Praxis verwenden viele Websites
id
Attribute, die mit Zahlen beginnen, obwohl dies technisch gesehen kein gültiger HTML-Code ist.Die HTML 5-Entwurfsspezifikation lockert die Regeln für die Attribute
id
undname
: Sie sind jetzt nur noch undurchsichtige Zeichenfolgen, die keine Leerzeichen enthalten dürfen.quelle
Bindestriche, Unterstriche, Punkte, Doppelpunkte, Zahlen und Buchstaben sind für die Verwendung mit CSS und JQuery gültig. Das Folgende sollte funktionieren, muss jedoch auf der gesamten Seite eindeutig sein und mit einem Buchstaben [A-Za-z] beginnen.
Das Arbeiten mit Doppelpunkten und Punkten erfordert etwas mehr Arbeit, aber Sie können dies tun, wie das folgende Beispiel zeigt.
quelle
HTML5
Beachten Sie, dass die ID eindeutig sein muss, d. H. Ein Dokument darf nicht mehrere Elemente enthalten, die denselben ID-Wert haben.
Die Regeln für ID-Inhalte in HTML5 lauten (abgesehen davon, dass sie eindeutig sind):
Dies ist die W3- Spezifikation zur ID (von MDN):
Mehr Info:
id
)id
)quelle
Um auf eine ID mit einem Punkt darin zu verweisen, müssen Sie einen Backslash verwenden. Ich bin mir nicht sicher, ob dies für Bindestriche oder Unterstriche gleich ist. Zum Beispiel: HTML
CSS
quelle
\--abc
) oder eine Ziffer (z. B.\-123
) folgt .Aus der HTML 4-Spezifikation ...
ID- und NAME-Token müssen mit einem Buchstaben ([A-Za-z]) beginnen und können von einer beliebigen Anzahl von Buchstaben, Ziffern ([0-9]), Bindestrichen ("-") und Unterstrichen ("_") gefolgt werden. , Doppelpunkte (":") und Punkte (".").
EDIT: d'oh! Wieder auf den Knopf geschlagen!
quelle
Vergessen Sie auch niemals, dass eine ID eindeutig ist. Nach der Verwendung wird der ID-Wert möglicherweise nirgendwo im Dokument erneut angezeigt.
Möglicherweise haben Sie viele IDs, aber alle müssen einen eindeutigen Wert haben.
Auf der anderen Seite gibt es das Klassenelement. Genau wie ID kann es viele Male vorkommen, aber der Wert kann immer wieder verwendet werden.
quelle
Eine eindeutige Kennung für das Element.
Ein Dokument darf nicht mehrere Elemente enthalten, die denselben ID-Wert haben.
Beliebige Zeichenfolge mit den folgenden Einschränkungen:
darf keine Leerzeichen enthalten:
Die Verwendung von Zeichen außer
ASCII letters and digits, '_', '-' and '.'
kann zu Kompatibilitätsproblemen führen, da sie nicht zugelassen wurdenHTML 4
. Obwohl diese Einschränkung aufgehoben wurdeHTML 5
, sollte eine ID aus Kompatibilitätsgründen mit einem Buchstaben beginnen.quelle
Es scheint, dass Doppelpunkte (:) und Punkte (.) In der HTML-Spezifikation zwar gültig sind, jedoch als ID-Selektoren in CSS ungültig sind. Daher sollten Sie sie am besten vermeiden, wenn Sie sie für diesen Zweck verwenden möchten.
quelle
zum
HTML5
Mindestens ein Zeichen, keine Leerzeichen.
Dies öffnet die Tür für gültige Anwendungsfälle wie die Verwendung von Zeichen mit Akzent. Es gibt uns auch viel mehr Munition, mit der wir uns in den Fuß schießen können, da Sie jetzt ID-Werte verwenden können, die Probleme mit CSS und JavaScript verursachen, sofern Sie nicht wirklich vorsichtig sind.
quelle
# : . * !
Symbolen<base>, <head>, <html>, <meta>, <param>, <script>, <style>, and <title>.
quelle
Jeder alphanumerische Wert und " - " und " _ " ist gültig. Sie sollten den ID-Namen jedoch mit einem beliebigen Zeichen zwischen AZ oder az beginnen .
quelle
Keine Leerzeichen, muss mit mindestens einem Zeichen von a bis z und 0 bis 9 beginnen.
quelle
In HTML
Die ID sollte mit {AZ} oder {az} beginnen. Sie können Ziffern, Punkte, Bindestriche, Unterstriche und Doppelpunkte hinzufügen.
Zum Beispiel:
Aber auch wenn Sie eine ID mit Doppelpunkten (:) oder Punkt (.) Erstellen können, ist es für CSS schwierig , diese ID als Auswahl zu verwenden. Hauptsächlich, wenn Sie Pseudo-Elemente verwenden möchten (: vorher ,: nachher).
Auch in JS ist es schwierig, diese IDs auszuwählen. Sie sollten also die ersten vier IDs verwenden. Wie von vielen Entwicklern bevorzugt, und wenn es erforderlich ist, können Sie auch die letzten beiden verwenden.
quelle
Werte können sein: [az], [AZ], [0-9], [* _: -]
es wird für HTML5 verwendet ...
Wir können ID mit jedem Tag hinzufügen.
quelle
Seit ES2015 können wir auch fast alle Unicode-Zeichen für IDs verwenden, wenn der Dokumentzeichensatz auf UTF8 eingestellt ist.
Testen Sie hier: https://mothereff.in/js-variables
Lesen Sie mehr über: https://mathiasbynens.be/notes/javascript-identifiers-es6
Solltest du es benutzen? Wahrscheinlich keine gute Idee!
Lesen Sie mehr über: https://stackoverflow.com/a/52799593/2494754
quelle
Alphabete->
Großbuchstaben & kleine Ziffern-> 0-9
Sonderzeichen-> ':', '-', '_', '.'
Das Format sollte entweder mit '.' beginnen. oder ein Alphabet, gefolgt von einem der Sonderzeichen von mehr Alphabeten oder Zahlen. Der Wert des ID-Feldes darf nicht mit einem '_' enden.
Außerdem sind Leerzeichen nicht zulässig, sofern sie bereitgestellt werden. Sie werden als unterschiedliche Werte behandelt, was bei den ID-Attributen nicht gültig ist.
quelle