Så här visar du text på bild med CSS3 mix-mix-läge
Bildbakgrund ser bra ut bakom stora displaytexter. Men dess CSS-genomförande är inte så enkelt. Vi kan använda bakgrundsbilder: text;
egendom, men det är fortfarande en experimentell funktion utan tillräckligt med webbläsarstöd.
CSS-alternativet för att visa en bildbakgrund bakom en text är använda mix-blandning-mode
fast egendom. Blandningslägen för HTML-element stöds rättvist över alla moderna skrivbords- och mobila webbläsare, med undantag för några, till exempel Internet Explorer.
I det här inlägget ska vi se hur mix-blandning-mode
(två av dess lägen specifikt) fungerar, och hur du kan använda den till visa en text med bildbakgrund i två användningsfall:
- när bakgrundsbilden kan ses genom texten
- när bakgrundsbilden går runt texten
Se några exempel i demo nedan (bilder är från unsplash.com).
De mix-blandning-mode
CSS-egenskapen definierar hur innehåll och den bakgrund av ett HTML-element ska blanda ihop färgvis.
Ta en titt på listan över blandningslägen, av vilka vi ska använda multiplicera
och skärm
i det här inlägget.
Låt oss först titta på hur dessa två specifika blandningslägen fungerar.
På vilket sätt multiplicera
& skärm
blandningslägen fungerar
Blandningslägen är tekniskt funktioner som Beräkna ett slutligt färgvärde med hjälp av färgkomponenterna i ett element och dess bakgrund.
De multiplicera
blandningsläge
I multiplicera
blandningsläge, de enskilda färgerna på elementen och deras bakgrunder är multiplicerat, och den resulterande färgen appliceras på den slutliga blandade versionen.
De multiplicera
blandningsläge beräknas enligt följande formel:
B (Cb, Cs) = Cb × Cs
var:Cb
- Färgkomponent i bakgrundencs
- Färgkomponent i källelementetB
- Blandningsfunktion
När Cb
och cs
multipliceras, den resulterande färgen är en blandning av dessa två färgkomponenter, och är lika mörk som den mörkaste av de två färgerna.
För att skapa vår textbildsbakgrund måste vi fokusera på fallet när cs
(färgkomponenten i källelementet) är antingen svart eller vitt.
Om cs
är svart dess värde är 0
, Utgångsfärgen kommer också att vara svart, eftersom Cb × 0 = 0
. Så, när elementet är svart, det spelar ingen roll vilken färg bakgrunden är, allt vi kan se efter blandning är svart.
Om cs
är vit dess värde är 1
, Utgångsfärgen är vad som helst Cb
är för attCb × 1 = Cb
. Så i det här fallet ser vi bakgrunden direkt som det är.
De skärm
blandningsläge
De skärm
blandningsläge fungerar på samma sätt som multiplicera
blandningsläge, men med motsatt resultat. Så, a svart förgrund visar bakgrunden som det är, och a vit förgrund visar vit med vilken bakgrund som helst.
Låt oss snabbt se dess formel:
B (Cb, Cs) = Cb + Cs - (Cb × Cs)
När cs
är svart (0) kommer bakgrundsfärgen att visas efter blandningen, som:
Cb + 0 - (Cb × 0) = Cb + 0 - 0 = Cb
När cs
är vit (1) resultatet blir vit med någon bakgrund, som:
Cb + 1 - (Cb × 1) = Cb + 1 - Cb = 1
1. Bilden visas genom text
För att visa text som visar genom sin bakgrundsbild använder vi skärm
blandningsläge med svart text och vitt omgivande utrymme.
Vatten
.bakgrund bredd: 600px; höjd: 210px; bakgrundsbild: url (someimage.jpg); bakgrundsstorlek: 100%; marginal: auto; .text färg: svart; bakgrundsfärg: vit; mix-mix-mode: skärm; bredd: 100%; höjd: 100%; typsnittstorlek: 160pt; font-weight: bolder; text-align: center; linjehöjd: 210px; marginal: 0;
För närvarande ser vår text ut nedan, i nästa steg lägger vi till anpassad färg i bakgrunden.
Lägger till färg
Som du kanske har gissat nu, använder vi blanda lägen bara två färgval för området som omger texten - svart eller vitt. dock med vit, det är möjligt att lägga till lite färg på den med ett överlag, om överlagringsfärgen matchar snyggt med den använda bilden.
För att lägga till färg i det omgivande området, lägg till en Vatten Med den här tekniken kunde vi färga omgivningen runt texten med bildbakgrunden: Observera att tekniken bara fungerar bra med subtila genomskinliga färger. Om du använder en helt ogenomskinlig färg eller en färg som inte stämmer överens med bilden, kommer bilden som förekommer i texten har en mycket synlig nyans av färg som används, så om det inte är en look som du går för, Undvik ogenomskinliga färger. Även om en vanlig textplacering över en bildbakgrund kräver samma teknik, Jag ska visa dig ett exempel på hur ovanstående demo ser ut när effekten är omvänd, d.v.s. när textfärgen är vit och bakgrunden är svart. Du kan använda samma överlagring För att lägga till lite färg på texten, om du inte vill hålla den vit. Och nedan kan du se hur omvänd fall ser ut som: Observera att i Internet Explorer eller någon annan webbläsare som inte stöder mix-mix-mode: multiplicera
egendom för överlagret, eftersom det hjälper bakgrundsfärgen på överlägget till blanda lite bättre med bilden som visas i texten.
.överlagring bakgrundsfärg: rgba (0,255,255, .1); mix-mix-mode: multiplicera; bredd: 100%; höjd: 100%; position: absolut; topp: 0;
2. Text omgiven av bildbakgrund
.text färg: vit; bakgrundsfärg: svart; mix-mix-mode: skärm; bredd: 100%; höjd: 100%; typsnittstorlek: 160pt; font-weight: bolder; text-align: center; linjehöjd: 210px; marginal: 0;
.överlagring bakgrundsfärg: rgba (0,255,255, .1); mix-mix-mode: multiplicera; bredd: 100%; höjd: 100%; position: absolut; topp: 0;
mix-blandning-mode
egenskapen kommer bildbakgrunden inte att visas och texten blir svart (eller vit).