Inhaltsverzeichnis
Key Takeaways
Was ist das HTML5-Datalist-Element und wie funktioniert es? Es bietet eine "automatische" -Funktion für Formularelemente. Das Datalist -Element verwendet das ID -Attribut, um es mit einem bestimmten Eingabeelement zu verknüpfen. Das Eingabeelement verwendet das Listenattribut, um den Datalisten zu identifizieren. Innerhalb des Datalists können Sie Optionselemente definieren, die die verfügbaren Optionen für das Eingabebereich darstellen. müssen den Datalisten mit einem Eingabefeld assoziieren. Dies erfolgt durch Hinzufügen des List -Attributs zum Eingabebuch und der Einstellung des Werts an die ID des Datalisten. Der Browser schlägt dann automatische Optionen für die Eingabe des Benutzers und die definierten Optionen im Datalist vor. Die meisten modernen Browser, darunter Chrom, Firefox, Safari und Edge. Es wird jedoch nicht in Internet Explorer 9 und früheren Versionen unterstützt. Sie können die aktuelle Browserkompatibilität auf Websites wie Can I verwenden. Das Erscheinungsbild der Dropdown -Liste wird vom Browser gesteuert und kann nicht leicht mit CSS angepasst werden. Sie können jedoch das mit dem Datalisten verknüpfte Eingabefeld stylen.
Kann ich mehrere Datalisten für ein einzelnes Eingabefeld verwenden? Das Listenattribut des Eingabefeldes kann nur eine ID annehmen, die einem Datalisten entspricht. Wenn Sie mehrere Optionensätze bereitstellen müssen, müssen Sie möglicherweise JavaScript verwenden, um die Optionen basierend auf der Benutzereingabe dynamisch zu ändern. Der HTML5-Datalist kann mit verschiedenen Eingangstypen verwendet werden, einschließlich Text, Suche, URL, Tel, E-Mail, Datum, Monat, Woche, Zeit, datetime-local, nummer, reichweite und Farbe. Die automatische Funktionsfunktion funktioniert jedoch möglicherweise nicht wie erwartet mit einigen Eingangstypen wie Bereich oder Farbe. mit einem ausgewählten Element verwendet werden. Der Datalist soll automatische Vorschläge für ein Eingabefeld bereitstellen, während das Auswahlelement eine Dropdown -Liste von Optionen bietet. Wenn Sie eine Dropdown -Liste benötigen, sollten Sie stattdessen das Element auswählen.
Kann ich den HTML5 -Datalisten für ein Suchfeld verwenden? Feld. Es kann automatische Vorschläge basierend auf der Eingabe des Benutzers liefern, die die Benutzererfahrung verbessern können. Sie müssen den Datalisten jedoch manuell mit den möglichen Suchbegriffen bevölkern. . Der Datalist soll automatische Vorschläge für ein Eingabefeld und nicht für ein Textbereich erstellen. Wenn Sie eine automatische Funktionalität für einen Textbereich benötigen, müssen Sie möglicherweise eine JavaScript -Bibliothek verwenden oder Ihre eigene Lösung erstellen.
Heim Web-Frontend CSS-Tutorial Leichte automatische Steuerelemente mit dem HTML5 -Datalisten

Leichte automatische Steuerelemente mit dem HTML5 -Datalisten

Feb 10, 2025 pm 03:18 PM

Leichte automatische Steuerelemente mit dem HTML5 -Datalisten

In diesem Tutorial werden wir ein tiefes Tauchgang in das wenig verwendete HTML5 -Element einnehmen. Es kann eine leichte, zugängliche Cross-Browser-Autokontrolle implementieren, für die kein JavaScript erforderlich ist.

Key Takeaways

  • Das HTML5 `` -Element bietet eine leichte, zugängliche und Kreuzbrowser-Lösung für Autokontrollensteuerelemente, ohne sich auf JavaScript zu verlassen.
  • Im Gegensatz zu `
  • Browserunterstützung für `` ist in modernen Browsern, einschließlich Internet Explorer 10 und 11, robust. Für ältere Browser werden für ältere Browser eine Kombination aus `
  • Das Element `` kann nicht direkt mit CSS gestylt werden, was die Anpassung einschränkt, sondern die Konsistenz über verschiedene Browser und Plattformen sorgt.
  • Verbesserungen wie AJAX können in "" integriert werden, um Optionen basierend auf der Benutzereingabe dynamisch zu füllen, die Funktionalität und die Benutzererfahrung in Anwendungen zu verbessern, die Echtzeitdaten-Feedback erfordern.

Was ist los mit

html5

  • Es gibt viele Optionen, wie Länder oder Jobtitel
  • Der Benutzer möchte seine eigene Option eingeben, die nicht in der Liste steht

Die offensichtliche Lösung ist eine automatische Kontrolle. Auf diese Weise kann der Benutzer einige Zeichen eingeben, was die für eine schnellere Auswahl verfügbaren Optionen einschränkt.

Entwickler wenden sich häufig an eine der vielen JavaScript-Lösungen, aber eine benutzerdefinierte automatische Kontrolle ist nicht immer erforderlich. Das HTML5 -Element ist leicht, zugänglich und hat keine JavaScript -Abhängigkeiten. Möglicherweise haben Sie gehört, dass es fehlerhaft ist oder es fehlt. Das stimmt 2021 nicht, aber es gibt Browser -Inkonsistenzen und Vorbehalte.

Schnellstart

Ihr Land aus einer Liste mit mehr als 200 Optionen auswählen, ist ein idealer Kandidat für eine automatische Kontrolle. Definieren Sie a mit Child

<span><span><span><datalist</span> id<span>="countrydata"</span>></span>
</span>  <span><span><span><option</span>></span>Afghanistan<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Åland Islands<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Albania<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Algeria<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>American Samoa<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Andorra<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Angola<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Anguilla<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Antarctica<span><span></option</span>></span>
</span>  ...etc...
<span><span><span></datalist</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die ID des Datalists kann dann durch ein Listenattribut in jedem Feld verwiesen werden:

<span><span><span><label</span> for<span>="country"</span>></span>country<span><span></label</span>></span>
</span>
<span><span><span><input</span> type<span>="text"</span>
</span></span><span>  <span>list<span>="countrydata"</span>
</span></span><span>  <span>id<span>="country"</span> name<span>="country"</span>
</span></span><span>  <span>size<span>="50"</span>
</span></span><span>  <span>autocomplete<span>="off"</span> /></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

verwirrend ist es am besten, autocomplete = "off" festzulegen. Dies stellt sicher

Das Ergebnis:

Leichte automatische Steuerelemente mit dem HTML5 -Datalisten

Dies ist das Standard -Rendering in Microsoft Edge. Andere Anwendungen implementieren ähnliche Funktionen, aber das Aussehen unterscheidet sich über Plattformen und Browser hinweg.

Verwenden des Etiketts als Textkind einer

<span><span><span><datalist</span> id<span>="countrydata"</span>></span>
</span>  <span><span><span><option</span>></span>Afghanistan<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Åland Islands<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Albania<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Algeria<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>American Samoa<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Andorra<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Angola<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Anguilla<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Antarctica<span><span></option</span>></span>
</span>  ...etc...
<span><span><span></datalist</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die Verwendung eines Wertattributs erzeugt identische Ergebnisse:

<span><span><span><label</span> for<span>="country"</span>></span>country<span><span></label</span>></span>
</span>
<span><span><span><input</span> type<span>="text"</span>
</span></span><span>  <span>list<span>="countrydata"</span>
</span></span><span>  <span>id<span>="country"</span> name<span>="country"</span>
</span></span><span>  <span>size<span>="50"</span>
</span></span><span>  <span>autocomplete<span>="off"</span> /></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Hinweis: Der Schließ /> Schrägstrich ist in HTML5 optional, obwohl er dazu beitragen könnte, Codierungsfehler zu verhindern.

Sie können auch einen Wert gemäß einer ausgewählten Etikett mit einem der folgenden Formate festlegen.

Option 1:

<span><span><span><datalist</span> id<span>="mylist"</span>></span>
</span>  <span><span><span><option</span>></span>label one<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>label two<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>label three<span><span></option</span>></span>
</span><span><span><span></datalist</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Option 2:

<span><span><span><datalist</span> id<span>="mylist"</span>></span>
</span>  <span><span><span><option</span> value<span>="label one"</span> /></span>
</span>  <span><span><span><option</span> value<span>="label two"</span> /></span>
</span>  <span><span><span><option</span> value<span>="label three"</span> /></span>
</span><span><span><span></datalist</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren

In beiden Fällen ist das Eingangsfeld auf 1, 2 oder 3 eingestellt, wenn eine gültige Option ausgewählt wird, die Benutzeroberfläche variiert jedoch über Browser:

  • Chrome zeigt eine Liste mit dem Wert und dem Etikett. Nur der Wert bleibt, sobald eine Option ausgewählt ist.
  • Firefox zeigt nur eine Liste mit dem Etikett. Es wechselt auf den Wert, sobald eine Option ausgewählt ist.
  • Kante zeigt nur den Wert.

Das folgende CodePen -Beispiel zeigt alle Variationen:

Siehe den Stift
html5 automatische Beispiele von SitePoint (@sinepoint)
auf CodePen.

Implementierungen werden sich entwickeln, aber ich würde vorerst empfehlen, keinen Wert und Kennzeichnung zu verwenden, da es wahrscheinlich die Benutzer verwirren. (Eine Problemumgehung wird unten erörtert.)

Browser -Unterstützung und Fallbacks

Das Element wird sowohl in modernen Browsern als auch in Internet Explorer 10 und 11:

gut unterstützt.

Leichte automatische Steuerelemente mit dem HTML5 -Datalisten

Es gibt mehrere Implementierungsnotizen, aber sie beeinflussen keinen Einfluss auf die meisten Nutzungen. Das Schlimmste, was passieren könnte, ist, dass ein Feld zu einer Standardtexteingabe zurückkehrt.

Wenn Sie IE9 und unten unbedingt unterstützen müssen, gibt es ein Fallback -Muster, das in Verbindung mit einer Texteingabe einen Standard verwendet, wenn der fehlschlägt. Anpassung des Landes Beispiel:

<span><span><span><datalist</span> id<span>="countrydata"</span>></span>
</span>  <span><span><span><option</span>></span>Afghanistan<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Åland Islands<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Albania<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Algeria<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>American Samoa<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Andorra<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Angola<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Anguilla<span><span></option</span>></span>
</span>  <span><span><span><option</span>></span>Antarctica<span><span></option</span>></span>
</span>  ...etc...
<span><span><span></datalist</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Siehe den Stift
html5 Autoperete Fallback von SitePoint (@sinepoint)
auf CodePen.

In modernen Browsern werden die

In IE9 und unten sind sowohl die (sehr langen)

Leichte automatische Steuerelemente mit dem HTML5 -Datalisten

Beide Werte können in alten IES eingegeben werden. Ihre Bewerbung muss entweder:

  • entscheiden Sie, welches am gültigsten ist oder
  • Verwenden Sie eine kleine JavaScript -Funktion, um eine zurückzusetzen, wenn das andere geändert wird

Verwenden von für Nicht-Text-Steuerelemente

Chrome-basierte Browser können auch -Werte anwenden auf:

  1. Eine Eingabe mit dem Typ "Datum". Der Benutzer kann aus einer Reihe von Optionen wählen, die als YJJJ-MM-DD-Werte definiert sind, aber in seinem Gebietsschemasformat dargestellt werden.

  2. Ein Eingang mit der Art der "Farbe". Der Benutzer kann aus einer Auswahl von Farboptionen wählen, die als sechsstellige Hex-Werte definiert sind (dreistellige Werte funktionieren nicht).

  3. Ein Eingang mit einer Art "Bereich". Der Schieberegler zeigt Zeckenspuren an, obwohl dies nicht eingeschränkt ist, welcher Wert eingegeben werden kann.

Siehe den Stift
html5 auf anderen Eingabetypen nach SitePoint (@sinepoint)
auf CodePen.

CSS -Styling

Wenn Sie jemals Probleme mit einem -Box ausgewählt haben, hatten Sie es einfach!

An kann als normal gestaltet werden, aber ein verknüpfter und seine Kinder

Ich hoffe, diese Situation verbessert sich, aber im Moment wird eine Lösung bei MDN vorgeschlagen, die:

  1. überschreibt das Standard -Browser -Verhalten
  2. behandelt die wie eine
    effektiv, sodass es in CSS gestylt werden kann
  3. repliziert alle automatischen Funktionen in JavaScript
  4. Ich habe es weiter erweitert und der Code ist auf GitHub verfügbar. Laden Sie das Skript überall in Ihrer HTML -Seite als ES6 -Modul. Die JSDelivr CDN -URL kann verwendet werden:

    <span><span><span><datalist</span> id<span>="countrydata"</span>></span>
    </span>  <span><span><span><option</span>></span>Afghanistan<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>Åland Islands<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>Albania<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>Algeria<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>American Samoa<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>Andorra<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>Angola<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>Anguilla<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>Antarctica<span><span></option</span>></span>
    </span>  ...etc...
    <span><span><span></datalist</span>></span>
    </span>
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren

    oder Sie können es mit NPM installieren, wenn Sie einen Bundler verwenden:

    <span><span><span><label</span> for<span>="country"</span>></span>country<span><span></label</span>></span>
    </span>
    <span><span><span><input</span> type<span>="text"</span>
    </span></span><span>  <span>list<span>="countrydata"</span>
    </span></span><span>  <span>id<span>="country"</span> name<span>="country"</span>
    </span></span><span>  <span>size<span>="50"</span>
    </span></span><span>  <span>autocomplete<span>="off"</span> /></span>
    </span>
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren

    Ihr Elemente muss das Format verwenden. Zum Beispiel:

    <span><span><span><datalist</span> id<span>="mylist"</span>></span>
    </span>  <span><span><span><option</span>></span>label one<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>label two<span><span></option</span>></span>
    </span>  <span><span><span><option</span>></span>label three<span><span></option</span>></span>
    </span><span><span><span></datalist</span>></span>
    </span>
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren

    Hinweis: kann nicht verwendet werden, da es zu einem leeren Element führt, das nicht gestylt werden kann!

    cs Zum Beispiel:

    <span><span><span><datalist</span> id<span>="mylist"</span>></span>
    </span>  <span><span><span><option</span> value<span>="label one"</span> /></span>
    </span>  <span><span><span><option</span> value<span>="label two"</span> /></span>
    </span>  <span><span><span><option</span> value<span>="label three"</span> /></span>
    </span><span><span><span></datalist</span>></span>
    </span>
    Nach dem Login kopieren
    Nach dem Login kopieren

    Beispiel:

    Siehe das Stift
    html5 automatischer CSS -Styling von SitePoint (@sitepoint)
    auf CodePen.

    Styling funktioniert, aber ist es die Mühe wert? Ich vermute nicht…

    • Implementieren Sie die Standardtastatur, Maus und Berührungssteuerungen des Browsers mit angemessener Zugänglichkeit ist schwierig. Das MDN -Beispiel unterstützt keine Tastaturereignisse, und obwohl ich versucht habe, es zu verbessern, wird es zwangsläufig Probleme auf einigen Geräten geben.
    • Sie verlassen sich auf 200 Zeilen von JavaScript, um ein CSS -Problem zu lösen. Es wird auf 1,5 KB abgebaut, könnte jedoch Leistungsprobleme einführen, wenn Sie auf derselben Seite viele lange Elemente benötigen.
    • Wenn JavaScript eine Anforderung ist
    Die Steuerung fällt auf einen Standard -HTML5 ohne Styling zurück, wenn JavaScript fehlschlägt, aber das ist ein kleiner Vorteil.

    Erstellen eines AJAX-verbesserten

    Vorausgesetzt, Ihr Designer akzeptiert gerne die Unterschiede im Browser -Styling. Es ist möglich, die Standard -Funktionalität mithilfe von JavaScript zu verbessern. Zum Beispiel:

      optionale Validierung implementieren, die nur einen bekannten Wert im
    1. akzeptiert
    2. set
    Der Code muss in erster Linie

Das obige ist der detaillierte Inhalt vonLeichte automatische Steuerelemente mit dem HTML5 -Datalisten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Es ist aus! Herzlichen Glückwunsch an das Vue -Team, dass es eine massive Anstrengung war und lange kommt. Alle neuen Dokumente auch.

Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Apr 02, 2025 pm 06:17 PM

Ich ließ jemanden mit dieser sehr legitimen Frage einschreiben. Lea hat gerade darüber gebloggt, wie Sie gültige CSS -Eigenschaften selbst aus dem Browser erhalten können. Das ist so.

Ein bisschen auf CI/CD Ein bisschen auf CI/CD Apr 02, 2025 pm 06:21 PM

Ich sage "Website" passt besser als "Mobile App", aber ich mag dieses Rahmen von Max Lynch:

Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Apr 03, 2025 am 10:30 AM

Neulich habe ich dieses besonders schöne Stück von der Website von Corey Ginnivan entdeckt, auf der eine Sammlung von Karten aufeinander stapelt.

Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Apr 02, 2025 am 04:27 AM

Wenn wir dem Benutzer direkt im WordPress -Editor Dokumentation anzeigen müssen, wie können Sie dies am besten tun?

Vergleich von Browsern für reaktionsschnelles Design Vergleich von Browsern für reaktionsschnelles Design Apr 02, 2025 pm 06:25 PM

Es gibt eine Reihe dieser Desktop -Apps, in denen das Ziel Ihre Website gleichzeitig in verschiedenen Dimensionen angezeigt wird. So können Sie zum Beispiel schreiben

Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Apr 05, 2025 pm 05:51 PM

Fragen zu lila Schrägstrichen in Flex -Layouts Bei der Verwendung von Flex -Layouts können Sie auf einige verwirrende Phänomene stoßen, wie beispielsweise in den Entwicklerwerkzeugen (D ...

So verwenden Sie CSS -Gitter für klebrige Header und Fußzeilen So verwenden Sie CSS -Gitter für klebrige Header und Fußzeilen Apr 02, 2025 pm 06:29 PM

CSS Grid ist eine Sammlung von Eigenschaften, die das Layout einfacher machen als jemals zuvor. Wie alles andere ist es eine kleine Lernkurve, aber das Gitter ist

See all articles