7 interessante Möglichkeiten, versteckte Elemente in CSS zu erreichen

7 interessante Möglichkeiten, versteckte Elemente in CSS zu erreichen

Vorwort

Die Ähnlichkeiten und Unterschiede zwischen den drei Attributen der versteckten Elemente – Anzeige, Sichtbarkeit und Opazität – waren schon immer eine häufige Frage in Front-End-Vorstellungsgesprächen.

Eigentum Wert Ob auf der Seite angezeigt werden soll Ist das Klickereignis bei der Registrierung gültig? Ist es im Zugänglichkeitsbaum vorhanden?
Anzeige keiner NEIN NEIN NEIN
Sichtweite versteckt NEIN NEIN Ja
Opazität 0 NEIN Ja Ja

Gibt es neben den Anzeige-, Sichtbarkeits- und Opazitätsattributen, die Elemente verbergen können, noch weitere Attribute, die Elemente verbergen können? Welche unvermeidliche Verbindung besteht zwischen ihnen? Darüber werden wir heute sprechen.

Hinweis: Aus Platzgründen werden in diesem Artikel einige kompatible Eigenschaften wie „filter:alpha(opacity=0); zoom:0;“ nicht erwähnt.

Erstens: Aus dem Zugänglichkeitsbaum entfernen

display : none

Mit der Anzeigeeigenschaft lässt sich die interne und externe Anzeigeart eines Elements festlegen. Wenn Sie die Anzeige auf „Keine“ setzen, wird das Element aus dem Zugänglichkeitsbaum entfernt.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Anzeige: keine</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Anzeige: keine;
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

Der zweite Typ: versteckte Elemente

visibility: hidden

Wenn Sie die Sichtbarkeit auf „versteckt“ setzen, wird das Element unsichtbar, es befindet sich jedoch noch immer im Zugriffsbaum (das Element wird aus dem Zugriffsbaum entfernt, wenn „display: none“ gesetzt ist) und das Registrieren von Klickereignissen hat keine Auswirkung.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Sichtbarkeit: versteckt</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Sichtbarkeit: versteckt;
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

Der dritte Typ: transparent

opacity: 0

Opazität (Deckkraft), der Wertebereich ist 0 (vollständig transparent) ~ 1 (vollständig undurchsichtig). Wenn Sie die Opazität auf 0 setzen, wird das Element vollständig transparent. Zu diesem Zeitpunkt ist das Element unsichtbar (weil es transparent ist), befindet sich jedoch noch im Zugänglichkeitsbaum und das registrierte Klickereignis ist gültig.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Deckkraft: 0</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Deckkraft: 0;
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

transparent

Stellen Sie die Hintergrundfarbe, Farbe und Rahmenfarbe des Elements auf transparent ein. Das Element ist nun unsichtbar (weil es transparent ist), befindet sich aber noch immer im Zugänglichkeitsbaum und registrierte Klickereignisse sind gültig.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>transparent</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Farbe: transparent;
                Hintergrundfarbe: transparent;
                Rahmenfarbe: transparent;
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

rgba(0,0,0,0)

Technisch gesehen ist transparent eine Abkürzung für rgba(0,0,0,0), wodurch die Hintergrundfarbe, Farbe und Rahmenfarbe eines Elements auf rgba(0,0,0,0) (transparent) gesetzt werden. Zu diesem Zeitpunkt ist das Element unsichtbar (weil es transparent ist), befindet sich aber noch im Zugänglichkeitsbaum und registrierte Klickereignisse sind gültig.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <Titel>rgba(0,0,0,0)</Titel>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Farbe: rgba(0,0,0,0);
                Hintergrundfarbe: rgba(0,0,0,0);
                Rahmenfarbe: rgba(0,0,0,0);
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

Bei rgba muss der vierte Parameter nur 0 sein, um das Element auszublenden.

hsla(0,0%,0%,0)

Der von hsla verwendete Mechanismus zum Ausblenden von Elementen stimmt mit rgba überein, das durch den vierten Parameter Alpha gesteuert wird. Die Hintergrundfarbe, Farbe und Rahmenfarbe des Elements werden auf hsla (0, 0 %, 0 %, 0) eingestellt. Zu diesem Zeitpunkt ist das Element unsichtbar (weil es transparent ist), befindet sich jedoch immer noch im Zugänglichkeitsbaum und das registrierte Klickereignis ist gültig.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <Titel>hsla(0,0%,0%,0)</Titel>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Farbe: hsla (0,0 %, 0 %, 0);
                Hintergrundfarbe: hsla (0,0 %, 0 %, 0);
                Rahmenfarbe: hsla (0,0 %, 0 %, 0);
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

hsla und rgba sind identisch, und nur der vierte Parameter muss 0 sein, um den Effekt des Ausblendens des Elements zu erzielen.

filter: opacity(0%)

Der Filter „Deckkraft (0 % ~ 100 %)“ konvertiert die Transparenz des Bildes, wobei der Wertebereich bei 0 % (vollständig transparent) ~ 100 % (vollständig undurchsichtig) liegt. Stellen Sie den Filter des Elements auf Deckkraft (0 %) ein. Das Element ist nun unsichtbar (weil es transparent ist), befindet sich aber noch immer im Zugänglichkeitsbaum und das registrierte Klickereignis ist gültig.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Filter: Deckkraft (0%)</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Filter: Deckkraft (0 %);
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

Viertens: Zoom

transform: scale(0, 0)

Wenn Sie transform auf scale(0, 0) setzen, wird das Element auf der x- und der y-Achse auf 0 Pixel skaliert. Das Element wird angezeigt und nimmt eine Position ein, aber da es auf 0 % skaliert wurde, beträgt das Pixelverhältnis, das das Element und sein Inhalt einnehmen, 0*0, sodass das Element und sein Inhalt nicht sichtbar und nicht anklickbar sind.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Transformation: Skalierung(0, 0)</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                transformieren: Skalierung(0,0);
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

width: 0;height: 0;overflow: hidden

Wenn Sie sowohl die Breite als auch die Höhe auf 0 setzen, nimmt das Element ein Pixelverhältnis von 0*0 ein. Dabei treten jedoch zwei Situationen auf:
Wenn die Anzeigeeigenschaft eines Elements inline ist, erweitert der Elementinhalt die Breite und Höhe des Elements.
Wenn das Anzeigeattribut eines Elements Block oder Inline-Block ist, sind die Breite und Höhe des Elements 0, aber der Elementinhalt wird trotzdem normal angezeigt. Zu diesem Zeitpunkt kann durch Hinzufügen von overflow:hidden; der Elementinhalt außerhalb des Elements abgeschnitten werden.

Der Unterschied zwischen dieser Methode und transform: scale(0,0) besteht darin, dass transform: scale(0,0) sowohl das Element als auch seinen Inhalt skaliert, während diese Methode das Element auf 0 Pixel skaliert und dann den Inhalt außerhalb des Elements abschneidet.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Breite: 0;Höhe: 0;Überlauf: versteckt</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Breite: 0;
                Höhe: 0;
                Überlauf: versteckt;
                Rahmenbreite: 0;/* Rahmenbreite: 2px im Benutzeragent-Stylesheet; */
                Polsterung: 0;/* Polsterung des Benutzeragent-Stylesheets: 1px 6px; */
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

Fünftens: Rotation

transform: rotateX(90deg)

Drehen Sie das Element um 90 Grad im Uhrzeigersinn entlang der X-Achse, um das Element auszublenden.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Transformation: RotiereX(90 Grad)</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                transformieren: rotierenX(90 Grad);
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

transform: rotateY(90deg)

Drehen Sie das Element um 90 Grad im Uhrzeigersinn entlang der Y-Achse, um das Element auszublenden.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Transformation: Y-Drehung(90 Grad)</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                transformieren: Y-Drehung (90 Grad);
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

Der sechste Typ: Off-Screen-Anzeigeposition

Das Element kann auch unsichtbar gemacht werden, indem man es aus dem Bildschirm verschiebt, aber es gibt zu viele CSS-Stile, um diesen Effekt zu erzielen. Hier geben wir nur ein Beispiel.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Anzeigeposition außerhalb des Bildschirms</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                Position: fest;
                oben: -100px;
                links: -100px;
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div>
            <button id="bt">Schaltfläche</button>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

Siebtens: Cover

Sie können Elemente auch unsichtbar machen, indem Sie Elementmaskierung verwenden. Da es viele CSS-Stile gibt, um diesen Effekt zu erzielen, geben wir hier nur ein Beispiel.

Code:

<!DOCTYPE html>
<html>
    <Kopf>
        <meta name="Zeichensatz" Inhalt="utf-8"/>
        <title>Titelbild</title>
        <style type="text/css">
            div {
                Hintergrundfarbe: rot;
                Breite: 100px;
                Höhe: 100px;
                Zeilenhöhe: 100px;
                Textausrichtung: zentriert;
                Rand oben: 24px;
            }
            Taste {
                Hintergrundfarbe: schwarz;
                Farbe: weiß;
            }
            #bt {
                z-Index: -1;
                Position: absolut;
                oben: 50 %;
                links: 50%;
                transformieren: übersetzen(-50 %,-50 %);
            }
            #Abdeckung {
                Z-Index: 1;
                Position: absolut;
                oben: 0;
                links: 0;
                Rand: 0;
            }
        </Stil>
    </Kopf>
    <Text>
        <div>
            <button id="normal">Schaltfläche</button>
        </div>
        <div style="position: relativ;Zeilenhöhe: normal;">
            <button id="bt">Schaltfläche</button>
            <div id="Abdeckung"></div>
        </div>

        <Skripttyp="text/javascript">
            let normal = document.getElementById('normal');
            let bt = document.getElementById('bt');
            normal.addEventListener('klicken',Funktion(){
                Warnung (,,normal klicken‘);   
            })
            bt.addEventListener('klicken',Funktion(){
                Warnung (,,Klick bt');   
            })
        </Skript>
    </body>
</html>

siehe

  • [1] Anzeige | MDN
  • [2] Sichtbarkeit | MDN
  • [3] Opazität | MDN
  • [4] transformieren | MDN
  • [5] Überlauf | MDN
  • [6] Farbe | MDN
  • [7] transformieren | MDN
  • [8] z-index | MDN
  • [9] CSS3 Farbwert RGBA Darstellung
  • [10] Eine vielleicht dumme Frage: Was genau ist Alpha in der Bildverarbeitung?

Damit ist dieser Artikel über 7 interessante Möglichkeiten zur Implementierung versteckter Elemente in CSS abgeschlossen. Weitere relevante Inhalte zu versteckten CSS-Elementen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

<<:  Beheben Sie den Nginx-Fehler „504 Gateway Time-out“

>>:  Mehrere Möglichkeiten zum Löschen von Arrays in Vue (Zusammenfassung)

Artikel empfehlen

Eine kurze Einführung in die Abfrageeffizienz von MySQL-Speicherfeldtypen

Die Suchleistung von der schnellsten bis zur lang...

Schritte zur Lösung des Zeitzonenproblems in MySQL 8.0

Softwareversion Windows: Windows 10 MySQL: mysql-...

Die Fallstricke bei der Bereitstellung von Angular-Projekten in Nginx

Wenn man online nach Methoden sucht, um Angular -...

Installationsschritte der Ubuntu 20.04-Doppelpinyin-Eingabemethode

1. Chinesische Eingabemethode einrichten 2. Stell...

vue + springboot realisiert den Login-Bestätigungscode

In diesem Artikelbeispiel wird der spezifische Co...

Prinzipien der MySQL-Datentypoptimierung

MySQL unterstützt viele Datentypen und die Auswah...

MySQL-Platzhalter (erweiterte SQL-Filterung)

Inhaltsverzeichnis Lassen Sie uns zunächst kurz P...

Detaillierte Erklärung dieses Zeigeproblems in JavaScript

Vorwort Der This-Zeiger in JS hat Anfängern schon...

Zeichnen Sie ein iPhone basierend auf CSS3

Ergebnis:Implementierungscode html <div Klasse...

So steuern Sie die Startreihenfolge von Docker Compose-Diensten

Zusammenfassung Docker-Compose kann problemlos me...

Detaillierte Schritte zur Dateisteuerungsverwaltung für Linux-Konten

Im Linux-System gibt es neben den verschiedenen, ...

Vue imitiert den Formularbeispielcode von ElementUI

Implementierungsanforderungen Das ElementUI imiti...