Tipps zum Implementieren mehrerer Rahmen in CSS

Tipps zum Implementieren mehrerer Rahmen in CSS

1. Mehrere Grenzen[1]

Hintergrund: Box-Shadow, Umriss
Angesichts der Vielfalt der Verwendungsszenarien gibt es immer mehr Designs mit mehreren Rändern. Früher konnten wir die Eigenschaft border-image verwenden, um damit umzugehen, aber dies ist auf CSS-Codeebene nicht sehr flexibel. Jetzt verwenden wir die Eigenschaften „Boxschatten“ und „Umriss“, um jeweils mehrere Ränder zu implementieren.

1. Box-Shadow-Lösung

Idee: Verwenden Sie die Größe des vierten Parameters (Ausdehnungsradius) von Box-Shadow, Codebeispiel für Mehrfachprojektion:

  <div Klasse="border-multiple">
        Implementierungslösung 1 für mehrere Rahmen: Box-Shadow
    </div>

    .border-mehrere {
        Rand: 50px automatisch;
        Polsterung: 20px;
        Breite: 600px; 
        Hintergrundfarbe: #fff; 
        Kastenschatten: 0 0 0 10px #f0f,
                    0 0 0 15px #00f,
                    0 2px 15px 15px rgba( 0, 0, 0, .8);
    } 

Bildbeschreibung hier einfügen

Mehrere Ränder - Box-Shadow

Zusammenfassung:

1. Schatten haben keinen Einfluss auf das Layout und werden nicht von der Box-Größe beeinflusst
2. Unterstützt kommagetrennte Syntax, Sie können beliebig viele Projektionen erstellen
3. Nachteile: Es können nur feste Ränder realisiert werden, andere Randarten können nicht realisiert werden

2. Lösung skizzieren

Codebeispiel:

  <div Klasse="border-outline">
        Lösung 2 zur Implementierung mehrerer Grenzen: Überblick
    </div>
    .border-outline {
        Rand: 200px automatisch;
        Polsterung: 20px;
        Breite: 600px;
        Hintergrundfarbe: #ff0;
        Umriss: 3px gestrichelt #0f0;
        Umriss-Offset: -10px;
    } 

Bildbeschreibung hier einfügen

Mehrere Ränder – Umriss

Zusammenfassung:

1. Die Prämisse besteht darin, zwei Grenzebenen zu erreichen
2. Der Attributwert für den Umrissversatz kann erforderlich sein
3. Der Standardstrich der Kontur ist ein Rechteck. Wenn eine abgerundete Ecke vorhanden ist, wird dies als Fehler betrachtet und kann nicht an die abgerundete Ecke angepasst werden.
4. Die Kommasyntax wird nicht unterstützt

2. Abgerundete Ecken der Ränder[2]

Hintergrund: Box-Shadow, Umriss
Um den Fehler im obigen Beispiel 3 zu beheben, können Sie den Box-Shadow-Erweiterungsradius verwenden, um die Lücke zwischen den abgerundeten Ecken und dem Umriss zu füllen.
Codebeispiel:

  <div Klasse="Innenrundung">
         Um dies zu erreichen, müssen Box-Shadow, Umrisse und „mehrere Ränder“ verwendet werden. Hinweis: Der Erweiterungsradius von Box-Shadow sollte das 0,5-fache des Radius der Ecke betragen.</div> 
    .innere Rundung {
        Hintergrundfarbe: #ccc;
        Rand: 50px automatisch;
        Polsterung: 20px;
        Breite: 600px; 
        Polsterung: 20px;
        Rahmenradius: 20px;
        Kastenschatten: 0 0 0 10px #f00;
        Umriss: 10px durchgezogen #f00;
    }

Hinweis: Der Erweiterungsradius des Boxschattens sollte das 0,5-fache des Radius der Ecken betragen. Genau genommen sollte er das (√2 ​​- 1)-fache betragen. Zur besseren Berechnung wird hier 0,5 verwendet.

Bildbeschreibung hier einfügen

Umrandung Innenecken

3. Durchscheinender Rand[3]

Hintergrundwissen: RGBA- oder HSLA-Farbattribute, Hintergrundclip
Idee: Lassen Sie den Rahmen in der Padding-Box des abgeschnittenen Hintergrunds erscheinen. Codebeispiel:

   <div Klasse="border-opacity">
         Implementierung eines halbtransparenten Rahmens</div>
    .border-opacity {
        Rand: 50px automatisch;
        Polsterung: 20px;
        Breite: 600px;
        Rand: 10px durchgezogener hsla (0, 0 %, 100 %, 0,5);
        Hintergrundfarbe: #fff;
        Hintergrundclip: Polsterbox;
    }

Zusammenfassung:

Die Implementierung des halbtransparenten Rahmens erfordert die Verwendung der background-clip-Eigenschaft von CSS3
Der Hintergrundclip hat drei Eigenschaften:
1. border-box: Der Hintergrund wird auf die Border-Box zugeschnitten (der Rand ist nicht sichtbar)
2. padding-box: Der Hintergrund wird auf die padding-box zugeschnitten (der Rand ist sichtbar)
3. Inhaltsbox: Der Hintergrund wird auf die Inhaltsbox zugeschnitten (der Rand liegt nah am Inhalt)

Bildbeschreibung hier einfügen

Diagramm mit durchscheinendem Randeffekt

4. Durchgehende Bildränder[4]

Hintergrundwissen: CSS-Farbverlauf, grundlegendes Rahmenbild, Hintergrundclip
Schauen wir uns zunächst an, wie border-image den Bildrand implementiert:
Das Implementierungsprinzip von border-image ist die Neun-Raster-Erweiterungsmethode: Schneiden Sie das Bild in neun Teile und wenden Sie diese dann auf die entsprechenden Kanten und Ecken des Elementrahmens an.
Codebeispiel:

   <p class="border-image">Das Implementierungsprinzip von border-image ist die Neun-Raster-Erweiterungsmethode: Schneiden Sie das Bild in neun Teile und wenden Sie diese dann auf die entsprechenden Kanten und Ecken des Elementrahmens an. </p>
        <p class="border-image">Wir möchten nicht, dass ein bestimmter Teil des Bildes an der Ecke fixiert ist. Stattdessen soll sich der an der Ecke angezeigte Bildbereich ändern, wenn sich Breite, Höhe und Rahmenstärke des Elements ändern. </p>
        .Rahmenbild {
            Rand: 40px durchgehend transparent;
            Rahmenbild: 33,334 % URL („http://csssecrets.io/images/stone-art.jpg“);
            Polsterung: 1em;
            maximale Breite: 20em;
            Schriftart: 130 %/1,6 Baskerville, Palatino, Serifen;
        }
        .border-image:nth-child(2) {
            Rand oben: 1em;
            Rahmenbild-Wiederholung: rund;
        } 

Bildbeschreibung hier einfügen

Randbild-Effektdiagramm

Nachteile: Wir möchten nicht, dass ein bestimmter Bildteil an der Ecke fixiert ist, sondern dass sich der Bildbereich, der an der Ecke erscheint, mit der Breite, Höhe und Rahmenstärke des Elements verändert.
Wie kann man das Problem lösen?
Umsetzungsideen:
1. Verwenden Sie CSS-Farbverlaufs- und Hintergrunderweiterungen
2. Überlagern Sie auf dem Hintergrundbild eine Ebene mit reinweißem Volltonhintergrund
3. Damit der Hintergrund der unteren Ebene durch den Randbereich hindurch sichtbar wird, müssen Sie für die beiden Hintergrundebenen unterschiedliche Hintergrund-Clip-Werte angeben.
4. Legen Sie die Hintergrundfarbe unten für die verschiedenen Hintergründe fest. Verwenden Sie einen CSS-Farbverlauf von Weiß zu Weiß, um den Effekt eines rein weißen, einfarbigen Hintergrunds zu simulieren.

Codebeispiel:

 <p class="contituous-images">Ideen zur Umsetzung:
            1. Verwenden Sie CSS-Farbverläufe und Hintergrunderweiterungen. 2. Legen Sie einen rein weißen, einfarbigen Hintergrund über das Hintergrundbild. 3. Damit der untere Hintergrund durch den Randbereich hindurch sichtbar ist, müssen Sie für die beiden Hintergründe unterschiedliche Hintergrund-Clip-Werte angeben. 4. Legen Sie die Hintergrundfarbe unten für die mehreren Hintergründe fest. Sie müssen einen CSS-Farbverlauf von Weiß nach Weiß verwenden, um den Effekt eines rein weißen, einfarbigen Hintergrunds zu simulieren.</p>
        .kontinuierliche-Bilder {
            Polsterung: 1em;
            Rand: 1em durchgehend transparent;
            /* Hintergrund: linearer Farbverlauf (weiß, weiß),
                            URL (http://csssecrets.io/images/stone-art.jpg);
            Hintergrundgröße: Abdeckung;
            Hintergrund-Clip: Polsterbox, Rahmenbox;
            Hintergrundherkunft: Rahmenbox; */

            /* Hintergrund kann auch wie folgt abgekürzt werden*/
            Hintergrund: linearer Farbverlauf (weiß, weiß) Polsterbox,
            URL (http://csssecrets.io/images/stone-art.jpg) Rahmenbox 0 / Cover;

            Breite: 21em;
            Polsterung: 1em;
            Überlauf: versteckt;
            /*Rand kann gezogen werden*/
            Größe ändern: beides;
            Schriftart: 100 %/1,6 Baskerville, Palatino, Serifen;
        } 

Bildbeschreibung hier einfügen
Durchgehender Bildrand

Sie können auch Verlaufsmuster verwenden, um Codebeispiele im Umschlagstil zu erzielen

Sie können auch Verlaufsmuster verwenden, um Umschlag-ähnliche Ränder zu erstellen

<p class="envelope-border">Sie können auch Verlaufsmuster verwenden, um Umschlag-ähnliche Ränder zu erstellen</p>
.Umschlagrand {
    Polsterung: 1em;
    Rand: 0,5em durchgehend transparent;
    Hintergrund: linearer Farbverlauf (weiß, weiß) Polsterbox, sich wiederholender linearer Farbverlauf (-45 Grad, rot 0, rot 12,5 %, transparent 0, transparent 25 %, #58a 0, #58a 37,5 %, transparent 0, transparent 50 %) 0/3em 3em;
    maximale Breite: 20em;
    Schriftart: 100 %/1,6 Baskerville, Palatino, Serifen;} 

Bildbeschreibung hier einfügen

Hüllkurvenrand-Effektdiagramm

Dies ist das Ende dieses Artikels mit Tipps zur Implementierung verschiedener Rahmen in CSS. Weitere relevante CSS-Rahmeninhalte finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  So ändern Sie den Benutzer und die Gruppe einer Datei in Linux

>>:  Lösung für das Problem, dass Elemente mit negativem Z-Index nicht angeklickt werden können

Artikel empfehlen

Detaillierte Erläuterung der benutzerdefinierten Vue-Anweisungen

Inhaltsverzeichnis Benutzerdefinierte Vue-Direkti...

Konfigurieren Sie VIM als C++-Entwicklungseditor in Ubuntu

1. Kopieren Sie die Konfigurationsdatei in die Be...

Ausführliche Erläuterung zum MySQL-Lernen einer Datenbanksicherung

Inhaltsverzeichnis 1.DB, DBMS, SQL 2. Eigenschaft...

Aktivieren oder Deaktivieren des GTID-Modus in MySQL online

Inhaltsverzeichnis Grundlegende Übersicht GTID on...

Eine detaillierte Einführung in die Linux-Verzeichnisstruktur

Wenn Sie mit dem Erlernen von Linux beginnen, müs...

Beispielcode zur Realisierung eines Buchseitenumblättereffekts mit CSS3

Wichtige Erkenntnisse: 1. Beherrschung der CSS3-3...

HTML+CSS zum Erstellen einer Schaltfläche im Cyberpunk-Stil

Erster Blick auf die Wirkung: Vorwort: Auf diese ...

Vollbild-Drag-Upload-Komponente basierend auf Vue3

In diesem Artikel wird hauptsächlich die Vollbild...

Detaillierte Erklärung des TIMESTAMPDIFF-Falls in MySQL

1. Syntax TIMESTAMPDIFF(Einheit, Beginn, Ende); G...

Implementierung eines einfachen Chatroom-Dialogs basierend auf WebSocket

In diesem Artikel finden Sie den spezifischen Cod...