Analysieren Sie den Ausführungsprozess. Bewegen Sie die Maus in den Knoten, um festzustellen, ob der Knoten die Kennung (Klassenname, Attribut usw.) hat, um die Tooltip -Implementierung zu öffnen. Erkennen Sie das Thema und den Ort (Klassenname, Attribut usw.). Blasen generieren/anzeigen. Lernen Sie von anderen. Schauen wir uns zunächst den Tooltip-Stil von element-ui an Offensichtlich wird die Position der Blase durch ein JavaScript-Skript hinzugefügt Lassen Sie uns ohne weiteres einige Erwartungen festlegen. Kein JavaScript erforderlich, reine CSS- Implementierung. Keine Notwendigkeit, neue Elemente hinzuzufügen** (verwenden Sie nach, vor Pseudoelementen)** Keine Notwendigkeit, Klassennamen abzugleichen, verwenden Sie Attributselektoren direkt** ([attr])** Unterstützt Standardstile** (wenn das Tag das Thema oder die Position nicht definiert)** Direktive** (definieren Sie es einfach im Tag und lassen Sie es dann von CSS abgleichen)** Implementieren Sie das Thema und die Position der Blase mit dem Sass- Präprozessor (diejenigen, die es nicht verstehen, können es in CSS konvertieren) Spezifikation der HTML-Definitionsdirektive Imperative Erklärung <button tooltip='Ich bin eine Content-Ente' effect='light' placement='top-left'>Oben links</button>
Schreiben Sie zuerst ein paar Schaltflächen Der Stil ist von Element-UI inspiriert <div Klasse="Container"> <div Klasse="oben"> <button tooltip="Oben" placement="oben links" effect="hell">Oben links</button> <button tooltip="Oben Links Oben Links" placement="top">Oben</button> <button tooltip="Oben rechts" placement="oben rechts">Oben rechts</button> </div> <div Klasse="links"> <button tooltip="Oben links oben links oben links oben links oben links oben links oben links oben links oben links" placement="left-top">Oben links</button> <button tooltip="Links" placement="links" effect="light">Links</button> <button tooltip="Links-rechts" placement="links-unten">Unten links</button> </div> <div Klasse="rechts"> <button tooltip="Oben rechts oben rechts oben rechts oben rechts oben rechts oben rechts oben rechts oben rechts" placement="right-top">Oben rechts</button> <button tooltip="Rechts" placement="rechts" effect="light">Rechts</button> <button tooltip="Unten rechts" placement="right-bottom">Unten rechts</button> </div> <div Klasse="unten"> <button tooltip="Unten links" placement="unten links">Unten links</button> <button tooltip="unten" placement="unten" effect="licht">Unten</button> <button tooltip="Unten rechts" placement="unten rechts">Unten rechts</button> </div> </div> Implementierung der CSS-Kerncodelogik „Hover“ überwacht die Bewegung der Maus hinein und hinaus, **[tooltip]** passt zu Tags mit diesem Attribut, danach kommt eine Blase, davor ein Dreieck /* Stimmt mit Elementen mit einem Tooltip-Attribut überein */ [Tooltip] Position: relativ; /* Standard-Blasenstil */ &::nach { Anzeige: keine; Inhalt: Attr (Tooltip); } /* Dreieck-Standardstil*/ &::vor { Anzeige: keine; Inhalt: ''; } /* Bewegen Sie die Maus in dieses Element, um Blasen und Dreiecke anzuzeigen*/ &:schweben { &::nach { Anzeige: Block; } &::vor { Anzeige: Block; } } } Jetzt wird es wirksam, wenn Sie die Maus bewegen Um den Effekt leichter sehen zu können, können im Test die Blasen und Dreiecke standardmäßig auf Block gesetzt werden. /* Standard-Blasenstil */ &::nach { Anzeige: Block; Inhalt: Attr (Tooltip); } /* Dreieck-Standardstil*/ &::vor { Anzeige: Block; Inhalt: ''; } Die aktuelle Wirkung ist wie folgt Legen Sie den Standardstil von Blasen und Dreiecken fest Die Kernanzeige ist natürlich auf absolute Positionierung eingestellt /* Standard-Blasenstil */ &::nach { Anzeige: Block; Inhalt: Attr (Tooltip); Position: absolut; Leerzeichen: Nowrap; Überlauf: versteckt; Textüberlauf: Auslassungspunkte; Polsterung: 8px 15px; maximale Breite: 200px; Rahmenradius: 4px; Kastenschatten: 0 10px 20px -5px rgba (0, 0, 0, 0,4); Z-Index: 100; @extend .tooltip-theme-dark; /* Standarddesign übernehmen (schwarzer Hintergrund und weißer Text) */ } /* Dreieck-Standardstil*/ &::vor { Anzeige: Block; Inhalt: ''; Position: absolut; Rand: 5px durchgehend transparent; Z-Index: 100; @extend .triangle-theme-dark; /* Standarddesign übernehmen (schwarzer Hintergrund) */ } Die aktuelle Wirkung ist wie folgt Passen Sie die Farben des Blasen- und Dreieckdesigns an Definieren Sie zwei Themen $weiß: #fff; $schwarz: #313131; /* Blasenthema */ .tooltip-theme-dunkel { Farbe: $weiß; Hintergrundfarbe: $schwarz; } .tooltip-theme-light { Farbe: $schwarz; Hintergrundfarbe: $weiß; Rand: 1px durchgezogen $schwarz; } /* Dreiecksthema*/ .dreieck-thema-dunkel { Rahmenoberseitefarbe: $schwarz; } .dreieck-thema-licht { border-top-color: $black; /* Im Moment dasselbe wie dunkel*/ } Blasen- und Dreieckpositionen anpassen (es wird nur eine Richtung angezeigt) /* Blasenposition */ /*----Vorgesetzter----*/ .tooltip-placement-top { unten: berechnet (100 % + 10 Pixel); links: 50%; transformieren: übersetzen(-50 %, 0); } .tooltip-placement-top-right { unten: berechnet (100 % + 10 Pixel); links: 100 %; transformieren: übersetzen(-100%, 0) } .tooltip-placement-top-left { unten: berechnet (100 % + 10 Pixel); links: 0; transformieren: übersetzen(0, 0) } /* Dreiecksposition */ /*----Vorgesetzter----*/ .dreieck-platzierung-oben { unten: berechnet (100 % + 5 Pixel); links: 50%; transformieren: übersetzen(-50 %, 0); } .dreieck-platzierung-oben-links { unten: berechnet (100 % + 5 Pixel); links: 10px; } .dreieck-platzierung-oben-rechts { unten: berechnet (100 % + 5 Pixel); rechts: 10px; } Aufnahmeort, Motiv Dies ist auch der Kerncode. Verwenden Sie Attributselektoren, um den Wert im Tag abzugleichen, und legen Sie dann verschiedene Stile fest. Passende Blasen, Dreiecksthemen &[Effekt="Licht"] { &::nach { @erweitern .tooltip-theme-light; } &::vor { @erweitern .triangle-theme-light; } } Ordnen Sie die Positionen von Blasen und Dreiecken zu, 12 Positionen @each $placement oben, oben rechts, oben links, rechts, rechts oben, rechts unten, unten, unten rechts, unten links, links, links-oben, links-unten { &[Platzierung="#{$placement}"] { &::nach { @extend .tooltip-placement-#{$placement}; } &::vor { @extend .triangle-placement-#{$placement}; } } } Wenn das Platzierungsattribut in einem Tag nicht vorhanden oder leer ist, erbt es standardmäßig die oberste Position. &:nicht([Platzierung]), &[Platzierung=""] { &::nach { @erweitern .tooltip-placement-top; } &::vor { @erweitern .triangle-placement-top; } } Die aktuelle Wirkung ist wie folgt Verlängern wir den Text und fügen display:none zu den Standardstilen der Blase und des Dreiecks hinzu.
Unterteilt in vier Richtungen, oben, unten, links und rechts, vier Animationen @keyframes anime-top { aus { Deckkraft: .5; unten: 150 %; } } @keyframes anime-bottom { aus { Deckkraft: .5; oben: 150 %; } } @keyframes anime-links { aus { Deckkraft: .5; rechts: 150%; } } @keyframes anime-rechts { aus { Deckkraft: .5; links: 150 %; } } Passen Sie die Position der Blase an, um zu bestimmen, welche Animation ausgeführt werden soll. Verwenden Sie **[attr^=]** zur Auswahl, z. B. oben links und oben rechts. /* Animation einrichten */ @each $placement oben, Rechts, unten, links &[Platzierung^="#{$placement}"] { &::nach, &::vor { Animation: Anime-#{$placement} 300 ms Vorwärts-Auslaufen; } } } Der endgültige Effekt ist wie folgt Fügen Sie die Codepen-Adresse codepen.io/anon/pen/yR an … Zusammenfassen Das Obige ist die reine CSS-Implementierung (kein Skript) des vom Editor eingeführten HTML-Direktiven-Tooltip-Textaufforderungseffekts. Ich hoffe, es wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! |
<<: Detaillierte Erläuterung der MySQL-Deadlock-Prüfung und Beispiele zur Deadlock-Entfernung
>>: Lösen Sie das Problem, dass Docker Elasticsearch7.x startet und einen Fehler meldet
Einführung in allgemeine Dockerfile-Anweisungen A...
Dieses Artikelbeispiel zeigt die Implementierung ...
Jeden Tag ein jQuery-Plugin - Schritt-Fortschritt...
Problembeschreibung Ein Spring + Angular-Projekt ...
Vorwort Nodejs ist eine serverseitige Sprache. Wä...
1. Umweltvorbereitung: Betriebssystem: CentOS Lin...
Wir können den Installationspfad von MySQL über d...
Durch die Verwendung von Dockerfile können Benutz...
Linux wird im Allgemeinen als Server verwendet un...
In diesem Artikel erfahren Sie, wie Sie Kylin auf...
Originalartikel: Ultimatives IE6-Cheatsheet: So b...
Einführung Es ist nicht nötig, Redis im Detail vo...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Klassischer Ansatz Frage Weite...
1. Konfigurieren Sie den Docker-Remoteverbindungs...