Beispielcode zur Implementierung von Hintergrundtransparenz und undurchsichtigem Text mit CSS3

Beispielcode zur Implementierung von Hintergrundtransparenz und undurchsichtigem Text mit CSS3

Kürzlich bin ich auf die Anforderung gestoßen, Text mit einem halbtransparenten Hintergrund auf einem Bild anzuzeigen. Der Effekt ist wie unten dargestellt:

Anforderungen.png

Nachdem diese Anforderung erkannt wurde, besteht die erste Reaktion darin, in CSS3 Opazität zu verwenden, um die Transparenz des Elements festzulegen.

<!DOCTYPE html>
<html lang="de">

<Kopf>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0">
    <meta http-equiv="X-UA-kompatibel" content="ie=edge">
    <title>Transparenter Hintergrund, transparenter Text</title>
    <Stil>
        * {
            Polsterung: 0;
            Rand: 0;
        }

        .container {
            Breite: 600px;
            Höhe: 400px;
            Hintergrund: URL('https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg') keine Wiederholung;
            Hintergrundgröße: Abdeckung;
            -webkit-Hintergrundgröße: Abdeckung;
            -o-Hintergrundgröße: Abdeckung;
            Hintergrundposition: Mitte 0;
        }

        .demo {
            Position: absolut;
            Breite: 260px;
            Höhe: 60px;
            oben: 260px;
            Zeilenhöhe: 60px;
            Textausrichtung: zentriert;
            Hintergrundfarbe: schwarz;
            Deckkraft: 0,5;
        }

        .demo p {
            Farbe: #FFF;
            Schriftgröße: 18px;
            Schriftstärke: 600;
        }
    </Stil>
</Kopf>

<Text>
    <div Klasse="Container">
        <div Klasse="Demo">
            <p>Die Fußballweltmeisterschaft 2018 hat begonnen: 10 Tage</p>
        </div>
    </div>
</body>

</html>

Die Wirkung ist wie folgt:

Der Hintergrund ist transparent, der Text ist auch transparent.png

Dies scheint den Anforderungen zu entsprechen, ist aber nicht perfekt. Nach dem Einstellen der Deckkraft wird das gesamte Element durchscheinend, wodurch der Text verschwommen erscheint. Diese Lösung ist nicht empfehlenswert.

Tatsächlich ist das Festlegen der Deckkraft nicht die einzige Möglichkeit, in CSS Transparenz zu erreichen. Es gibt zwei weitere Typen:

  • CSS3s rgba(rot, grün, blau, alpha), der Alpha-Wert reicht von 0 bis 1, z. B. rgba(255,255,255,0,8)
  • Exklusiver IE-Filter „filter:Alpha(opacity=x), der Wert von x reicht von 0 bis 100, z. B. „filter:Alpha(opacity=80)“

Hier verwende ich die Methode zum Einstellen von RGBA:

<!DOCTYPE html>
<html lang="de">

<Kopf>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0">
    <meta http-equiv="X-UA-kompatibel" content="ie=edge">
    <title>Hintergrund transparent, Text undurchsichtig</title>
    <Stil>
        * {
            Polsterung: 0;
            Rand: 0;
        }

        .container {
            Breite: 600px;
            Höhe: 400px;
            Hintergrund: URL('https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg') keine Wiederholung;
            Hintergrundgröße: Abdeckung;
            -webkit-Hintergrundgröße: Abdeckung;
            -o-Hintergrundgröße: Abdeckung;
            Hintergrundposition: Mitte 0;
        }

        .demo {
            Position: absolut;
            Breite: 260px;
            Höhe: 60px;
            oben: 260px;
            Zeilenhöhe: 60px;
            Textausrichtung: zentriert;
            Hintergrundfarbe: rgba(0,0,0,0,5);
        }

        .demo p {
            Farbe: #FFF;
            Schriftgröße: 18px;
            Schriftstärke: 600;
        }
    </Stil>
</Kopf>

<Text>
    <div Klasse="Container">
        <div Klasse="Demo">
            <p>Die Fußballweltmeisterschaft 2018 hat begonnen: 10 Tage</p>
        </div>
    </div>
</body>
</html>

Die Wirkung ist wie folgt:

Hintergrund transparent, Text undurchsichtig.png

Nach dieser Einstellung erscheint der Text deutlich klarer.

Zusammenfassung

Tatsächlich gibt es nicht nur eine Möglichkeit, diese Anforderung zu erfüllen. Sie können auch zwei DIVs an derselben Position verwenden, eines mit einem halbtransparenten Hintergrund-DIV und das andere mit einem Text-DIV. Dies kann das Problem ebenfalls lösen, erfordert jedoch eine absolute Positionierung oder einen negativen Rand und ein DIV mit leerem Inhalt. Diese Methode kann in einigen Szenarien etwas kompliziert erscheinen, wie im folgenden Beispiel gezeigt, daher müssen spezifische Probleme in tatsächlichen Bedarfsszenarien analysiert werden.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  Docker-Compose-Tutorial: Installation und Schnellstart

>>:  Vollständige Analyse der Webseitenelemente

Artikel empfehlen

So lösen Sie das Zeichensatzproblem bei der Anmeldung bei Linux

Zeichensatzfehler treten immer auf Gebietsschema:...

MySQL-Index-Pushdown in fünf Minuten verstehen

Inhaltsverzeichnis Was ist Index-Pushdown? Das Pr...

ReactJs-Grundlagen-Tutorial - Essential Edition

Inhaltsverzeichnis 1. Einführung in ReactJS 2. Ve...

Schritte eines hervorragenden Registrierungsprozesses

Für eine Website ist dies die grundlegendste Funkt...

Zusammenfassung von 3 Möglichkeiten zum verzögerten Laden eines Vue-Routers

Kein Lazy Loading verwenden importiere Vue von „v...

JavaScript-Canvas zum Erzielen von Regentropfeneffekten

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung der MySQL-Entwicklungsstandards und -Nutzungskenntnisse

1. Namenskonventionen 1. Datenbanknamen, Tabellen...

Mehrere Methoden zur Lösung des Problems des MySQL-Fuzzy-Abfrageindexfehlers

Wenn wir das Platzhalterzeichen „like %“ verwende...

So kompilieren und installieren Sie xdebug in einer Ubuntu-Umgebung

Dieser Artikel beschreibt, wie xdebug in einer Ub...