Sådan viser du tekst på billede med CSS3 mix-mix-mode
Billed baggrunde se godt ud efter store displaytekster. Men dens CSS implementering er ikke så ligetil. Vi kan bruge baggrundsklip: tekst;
ejendom, men det er stadig en eksperimentel funktion uden tilstrækkelig browser support.
CSS-alternativet til at vise en billedbakgrund bag en tekst er bruger mix-blend-mode
ejendom. Blend modes for HTML elementer understøttes ret på tværs af alle moderne desktop- og mobilbrowsere med undtagelse af nogle få, f.eks. Internet Explorer.
I dette indlæg skal vi se hvordan mix-blend-mode
(to af dens tilstande specifikt) virker, og hvordan du kan bruge det til Vis en tekst med billedbakgrund i to brugssager:
- når baggrundsbilledet kan ses gennem teksten
- når baggrundsbilledet løber rundt teksten
Se nogle eksempler i demoen nedenfor (billeder er fra unsplash.com).
Det mix-blend-mode
CSS-egenskaben definerer, hvordan indhold og kulisse af et HTML-element skal blandes farvevis.
Se på listen over blandingsformer, hvoraf vi vil bruge formere sig
og skærm
i dette indlæg.
Lad os først se på, hvordan disse to specifikke blandingstilstande fungerer.
Hvordan formere sig
& skærm
blandingsfunktioner arbejde
Blandingstilstande er teknisk funktionalitet beregne en endelig farveværdi ved hjælp af farvekomponenterne i et element og dets baggrund.
Det formere sig
blandingstilstand
I formere sig
blandingstilstand, de enkelte farver af elementerne og deres baggrund er ganget, og den resulterende farve påføres den endelige blended version.
Det formere sig
blandingstilstand beregnes i henhold til følgende formel:
B (Cb, Cs) = Cb × Cs
hvor:Cb
- Farve komponent i baggrundenCs
- Farvekomponent i kildeelementetB
- Blending funktion
Hvornår Cb
og Cs
multipliceres, den resulterende farve er en blanding af disse to farvekomponenter og er så mørk som den mørkeste af de to farver.
For at skabe vores tekst billed baggrund, skal vi fokusere på sagen når Cs
(farvekomponenten i kildeelementet) er enten sort eller hvid.
Hvis Cs
er sort dens værdi er 0
, Outputfarven vil også være sort, fordi Cb × 0 = 0
. Så, når elementet er farvet sort, det ligegyldigt hvilken farve baggrunden er, alt vi kan se efter blanding er sort.
Hvis Cs
er hvid dens værdi er 1
, outputfarven er uanset Cb
er fordiCb × 1 = Cb
. Så i dette tilfælde ser vi baggrunden direkte Som det er.
Det skærm
blandingstilstand
Det skærm
blend mode fungerer på samme måde som formere sig
blandingstilstand, men med det modsatte resultat. Så, a sort forgrundsgrundlag viser baggrunden Som det er, og a hvid forgrundsviden viser hvid uanset baggrund.
Lad os hurtigt se sin formel:
B (Cb, Cs) = Cb + Cs - (Cb × Cs)
Hvornår Cs
er sort (0), vil baggrundsfarven blive vist efter blandingen som:
Cb + 0 - (Cb × 0) = Cb + 0 - 0 = Cb
Hvornår Cs
er hvid (1) resultatet vil være hvidt med enhver baggrund, som:
Cb + 1 - (Cb × 1) = Cb + 1 - Cb = 1
1. Billede vist gennem tekst
For at vise tekst, der viser gennem sit baggrundsbillede, bruger vi skærm
blandingstilstand med sort tekst og hvidt omkringliggende rum.
Vand
.baggrund bredde: 600px; højde: 210px; baggrundsbillede: url (someimage.jpg); baggrundsstørrelse: 100%; margen: auto; .text farve: sort; baggrundsfarve: hvid; mix-blend-mode: skærm; bredde: 100%; højde: 100%; skrifttypestørrelse: 160pt; font-weight: bolder; tekst-align: center; linjens højde: 210px; margen: 0;
I øjeblikket ser vores tekst ud nedenfor, i næste trin tilføjer vi tilpasset farve til baggrunden.
Tilføjelse af farve
Som du måske har gættet i øjeblikket, skal du ved hjælp af blandingstilstande kun give to farvevalg for det område, der omgiver teksten - sort eller hvid. Imidlertid med hvidt, det er muligt at tilføje noget farve til det ved hjælp af en overlay, hvis overlejringsfarven matcher pænt med det anvendte billede.
For at tilføje farve til det omkringliggende område skal du tilføje en Vand Med denne teknik kunne vi farve det omkringliggende område omkring teksten med billedets baggrund: Bemærk at teknikken kun fungerer godt med subtile transparente farver. Hvis du bruger en fuldstændig uigennemsigtig farve eller en farve, der ikke stemmer overens med billedet, vil billedet, der vises inde i teksten, have en meget synlig farvefarve af den anvendte farve, så medmindre det er et udseende, du går efter, undgå uigennemsigtige farver. Selvom en normal tekstplacering over en billedbakgrund kræver den samme teknik, Jeg vil vise dig et eksempel på hvordan den ovenstående demo ligner, når effekten er omvendt, dvs. når tekstfarven er hvid, og baggrunden er sort. Du kan bruge samme overlejring for at tilføje lidt farve til teksten, medmindre du vil beholde den hvid. Og nedenfor kan du se, hvordan den omvendte sag ser ud: Bemærk, at i Internet Explorer eller en anden browser, der ikke understøtter mix-mix-mode: multiplicere
ejendom til overlejringen, da det hjælper baggrundsfarven på overlejret til blande lidt bedre med billedet der vises inden for tekst.
.overlay baggrundsfarve: rgba (0,255,255, .1); mix-mix-mode: multiplicere; bredde: 100%; højde: 100%; position: absolut; top: 0;
2. Tekst omgivet af billedbakgrund
.tekst farve: hvid; baggrundsfarve: sort; mix-blend-mode: skærm; bredde: 100%; højde: 100%; skrifttypestørrelse: 160pt; font-weight: bolder; tekst-align: center; linjens højde: 210px; margen: 0;
.overlay baggrundsfarve: rgba (0,255,255, .1); mix-mix-mode: multiplicere; bredde: 100%; højde: 100%; position: absolut; top: 0;
mix-blend-mode
Egenskaben, billedbakgrunden vises ikke, og teksten forbliver sort (eller hvid).