Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Warum schlägt CSS „visibility:hidden' bei Hover-Effekten fehl?

Mary-Kate Olsen
Freigeben: 2024-11-18 22:01:02
Original
130 Leute haben es durchsucht

Why Does CSS `visibility: hidden` Fail for Hover Effects?

Das Geheimnis lüften: Warum die CSS-Sichtbarkeit bei Hover fehlschlägt

CSS-Sichtbarkeit bietet eine bequeme Möglichkeit, die Sichtbarkeit von Elementen zu manipulieren, aber manchmal stolpert man darüber unerwartete Hindernisse. Stellen Sie sich ein Szenario vor, in dem Sie eine „Spoiler“-Klasse definiert haben, um Text zunächst unsichtbar zu machen und ihn beim Bewegen der Maus anzuzeigen. Entgegen Ihren Erwartungen verharrt der Text hartnäckig in seinem verborgenen Zustand und trotzt Ihren Schwebebemühungen.

Eintauchen in die Sache

Der Schuldige hinter diesem verwirrenden Verhalten liegt in der Natur von verborgenen Elementen. Wenn ein Element mit „visibility:hidden“ ausgeblendet wird, wird es praktisch unsichtbar und belegt keinen Platz im Seitenlayout. Das bedeutet, dass der Versuch, darüber zu schweben, im Wesentlichen dem Versuch gleicht, mit der Leere zu interagieren. Das Element registriert die Schwebeaktion einfach nicht.

Das Sichtbarkeitsdilemma lösen

Um diese Hürde zu überwinden, müssen Sie dem Element eine Möglichkeit geben, sichtbar zu bleiben auch wenn der Inhalt verborgen ist. Ein Ansatz besteht darin, das Element in einem anderen Container zu verschachteln, der das Hover-Ereignis empfangen kann. So können Sie dies erreichen:

CSS:

.spoiler span {
    visibility: hidden;
}

.spoiler:hover span {
    visibility: visible;
}
Nach dem Login kopieren

HTML:

Spoiler: <span class="spoiler"><span>E.T. phones home.</span></span>
Nach dem Login kopieren

Erläuterung:

Durch die Verschachtelung des ausgeblendeten Texts in einem Span-Element stellen Sie sicher, dass das äußere Spoilerelement sichtbar bleibt, sodass es das Hover-Ereignis erfassen kann. Wenn der Hover ausgeführt wird, wird das innere Span-Element sichtbar und der Spoilertext wird angezeigt.

Zusätzliche Überlegungen

In bestimmten Browsern wie Chrome kann ein kleines Problem auftreten Das versteckte Spoilerelement ist mit der Maus immer noch leicht auswählbar. Um dies zu beheben, können Sie dem Spoiler-Element einen Umriss hinzufügen:

.spoiler {
    outline: 1px solid transparent;
}
Nach dem Login kopieren

Dieser transparente Umriss stellt sicher, dass das Spoiler-Element ausreichend groß ist, um das Hover-Ereignis zu empfangen, ohne die Gesamtsichtbarkeit des Textes zu beeinträchtigen.

Mit diesen Anpassungen funktioniert Ihre Spoiler-Klasse einwandfrei, wobei die Unsichtbarkeit des verborgenen Textes erhalten bleibt und ein nahtloses Schwebeerlebnis geboten wird.

Das obige ist der detaillierte Inhalt vonWarum schlägt CSS „visibility:hidden' bei Hover-Effekten fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage