Arka Plan Kırpmalarını, Maskelerini ve 3D PlatoBlockchain Veri Zekasını Kullanan Harika CSS Vurgu Efektleri. Dikey Arama. Ai.

Arka Plan Kırpma, Maskeler ve 3D Kullanan Harika CSS Vurgulu Efektler

CSS vurgulu efektlerine yönelik ilginç yaklaşımlar hakkında bir dizi gönderiyi inceledik. Bir ile başladık CSS kullanan bir grup örnek background özellikleri, ardından konuya geçti text-shadow mülk nerede teknik olarak hiç gölge kullanmadık. Bunları ayrıca CSS değişkenleriyle birleştirdik ve calc() kodu optimize etmek ve yönetmeyi kolaylaştırmak için.

Bu makalede, daha da karmaşık CSS vurgulu animasyonlar oluşturmak için bu iki makaleyi oluşturacağız. Arka plan kırpma, CSS maskeleri ve hatta 3D perspektiflerle ayaklarımızı ıslatmaktan bahsediyoruz. Başka bir deyişle, bu sefer gelişmiş teknikleri keşfedeceğiz ve CSS'nin fareyle üzerine gelme efektleriyle yapabileceklerinin sınırlarını zorlayacağız!

Harika Hover Efektleri serisi:

  1. Arka Plan Özelliklerini Kullanan Harika Hover Efektleri
  2. CSS Metin Gölgesini Kullanan Harika Vurgu Efektleri
  3. Arka Plan Kırpma, Maske ve 3D Kullanan Harika Vurgu Efektleri (Buradasınız!)

İşte yaptığımız şeyin sadece bir tadı:

CodePen Göm Geri Dönüşü

kullanarak fareyle üzerine gelme efektleri background-clip

Hadi hakkında konuşalım background-clip. Bu CSS özelliği, bir text anahtar kelime değeri gradyanları uygulamamıza izin veren metin gerçek yerine bir öğenin arka fon.

Örneğin, fareyle üzerine gelindiğinde metnin rengini, color özellik, ancak bu şekilde renk değişikliğini canlandırıyoruz:

CodePen Göm Geri Dönüşü

tek yaptığım eklemek oldu background-clip: text elemana ve transition the background-position. Bundan daha karmaşık olmak zorunda değil!

Ancak birden çok degradeyi farklı arka plan kırpma değerleriyle birleştirirsek daha iyisini yapabiliriz.

CodePen Göm Geri Dönüşü

Bu örnekte, iki farklı degrade ve iki değer kullanıyorum. background-clip. İlk arka plan gradyanı metne kırpılır ( text değeri) üzerine gelindiğinde rengi ayarlamak için, ikinci arka plan gradyanı ise alt alt çizgiyi oluşturur ( padding-box değer). Diğer her şey doğrudan kopyalandı ilk makalede yaptığımız çalışma bu serinin.

Çubuğun, metin taranmış ve ardından renklendirilmiş gibi görünecek şekilde yukarıdan aşağıya kaydığı bir fareyle üzerine gelme efektine ne dersiniz:

CodePen Göm Geri Dönüşü

Bu sefer çizgiyi oluşturmak için ilk degradenin boyutunu değiştirdim. Ardından, yanılsamayı yaratmak için metin rengini güncelleyen diğer degradeyle kaydırıyorum! Bu kalemde neler olduğunu görselleştirebilirsiniz:

CodePen Göm Geri Dönüşü

Kendi gücümüzle yapabileceklerimizin sadece yüzeyini kazıdık. background-clipping güçleri! Ancak, Firefox'un bir bildirilen birçok hata ile ilişkili background-clip. Safari'nin de destek sorunları var. Bu, yalnızca Chrome'u bu şeyler için sağlam bir desteğe sahip bırakır, bu yüzden devam ederken belki de açabilirsiniz.

kullanarak başka bir vurgulu efektine geçelim background-clip:

CodePen Göm Geri Dönüşü

Muhtemelen bunun, az önce ele aldıklarımızla karşılaştırıldığında çok kolay göründüğünü düşünüyorsunuz - ve haklısınız, burada süslü bir şey yok. Tek yaptığım bir degradeyi kaydırırken diğerinin boyutunu artırmak.

Ama gelişmiş vurgulu efektlere bakmak için buradayız, değil mi? Fare imleci öğeden ayrıldığında animasyonun farklı olması için biraz değiştirelim. Aynı vurgulu efekt, ancak animasyona farklı bir son:

CodePen Göm Geri Dönüşü

Güzel değil mi? kodu inceleyelim:

.hover { --c: #1095c1; /* the color */ color: #0000; background: linear-gradient(90deg, #fff 50%, var(--c) 0) calc(100% - var(--_p, 0%)) / 200%, linear-gradient(var(--c) 0 0) 0% 100% / var(--_p, 0%) no-repeat, var(--_c, #0000); -webkit-background-clip: text, padding-box, padding-box; background-clip: text, padding-box, padding-box; transition: 0s, color .5s, background-color .5s;
}
.hover:hover { color: #fff; --_c: var(--c); --_p: 100%; transition: 0.5s, color 0s .5s, background-color 0s .5s;
}

Üç arka plan katmanımız var - iki degrade ve background-color kullanılarak tanımlanmış --_c başlangıçta şeffaf olarak ayarlanan değişken (#0000). Fareyle üzerine gelindiğinde, rengi beyaza değiştiririz ve --_c ana renge değişken (--c).

İşte bu konuda neler oluyor transition: Önce her şeye bir geçiş uyguluyoruz ama geçişi erteliyoruz. color ve background-color by 0.5s kayma efekti oluşturmak için. Hemen ardından değiştiriyoruz color ve background-color. Metin zaten beyaz olduğundan (ilk gradyan sayesinde) ve arka plan zaten ana renge ayarlandığından (ikinci gradyan sayesinde) görsel bir değişiklik fark etmeyebilirsiniz.

Ardından, fareyi kaldırdığınızda, her şeye anında bir değişiklik uygularız (dikkat edin 0s gecikme hariç), color ve background-color geçişi olan. Bu, tüm gradyanları ilk durumlarına geri koyduğumuz anlamına gelir. Yine, büyük olasılıkla hiçbir görsel değişiklik görmeyeceksiniz çünkü metin color ve background-color fareyle üzerine gelindiğinde zaten değişti.

Son olarak, soldurmayı renge uygularız ve background-color animasyonun fareyle dışarı atılan kısmını oluşturmak için. Biliyorum, kavraması zor olabilir ama farklı renkler kullanarak hileyi daha iyi görselleştirebilirsiniz:

CodePen Göm Geri Dönüşü

Yukarıdakileri birçok kez gezdirin ve fareyle üzerine gelindiğinde animasyon yapan özellikleri ve fareyle hareket ettirilenleri göreceksiniz. Aynı vurgulu efekt için iki farklı animasyona nasıl ulaştığımızı anlayabilirsiniz.

Unutmayalım kullandığımız KURU anahtarlama tekniği anahtar için yalnızca bir değişken kullanarak kod miktarını azaltmaya yardımcı olmak için bu dizinin önceki makalelerinde:

.hover { --c: 16 149 193; /* the color using the RGB format */ color: rgb(255 255 255 / var(--_i, 0)); background: /* Gradient #1 */ linear-gradient(90deg, #fff 50%, rgb(var(--c)) 0) calc(100% - var(--_i, 0) * 100%) / 200%, /* Gradient #2 */ linear-gradient(rgb(var(--c)) 0 0) 0% 100% / calc(var(--_i, 0) * 100%) no-repeat, /* Background Color */ rgb(var(--c)/ var(--_i, 0)); -webkit-background-clip: text, padding-box, padding-box; background-clip: text, padding-box, padding-box; --_t: calc(var(--_i,0)*.5s); transition: var(--_t), color calc(.5s - var(--_t)) var(--_t), background-color calc(.5s - var(--_t)) var(--_t);
}
.hover:hover { --_i: 1;
}

Ana renk için neden RGB sözdizimine ulaştığımı merak ediyorsanız, bunun nedeni alfa şeffaflığı ile oynamam gerektiğidir. Ben de değişkeni kullanıyorum --_t kullanılan gereksiz hesaplamayı azaltmak için transition özelliği.

Bir sonraki bölüme geçmeden önce, bir süre önce yaptığım vurgulu efektlerin daha fazla örneğini burada bulabilirsiniz. background-clip. Her birini detaylandırmak çok uzun olur ama şu ana kadar öğrendiklerimizle kodu kolayca anlayabilirsiniz. Kodlara bakmadan bazılarını tek başına denemek iyi bir ilham kaynağı olabilir.

CodePen Göm Geri Dönüşü
CodePen Göm Geri Dönüşü
CodePen Göm Geri Dönüşü

Biliyorum biliyorum. Bunlar çılgın ve olağandışı vurgulu etkilerdir ve çoğu durumda çok fazla olduklarının farkındayım. Ancak bu, CSS'yi nasıl uygulayacağınız ve öğreneceğinizdir. Unutma, biz limitleri zorlamak CSS vurgulu efektleri. Fareyle üzerine gelme etkisi bir yenilik olabilir, ancak yol boyunca kesinlikle başka şeyler için kullanılabilecek yeni teknikler öğreniyoruz.

CSS kullanarak fareyle üzerine gelme efektleri mask

Bil bakalım ne oldu? CSS mask özellik degradeleri aynı şekilde kullanır background özelliği yapar, bu yüzden bir sonraki yapacağımız şeyin oldukça basit olduğunu göreceksiniz.

Süslü bir alt çizgi oluşturarak başlayalım.

CodePen Göm Geri Dönüşü

kullanıyorum background bu demoda zikzak bir alt kenarlık oluşturmak için. Bu alt çizgiye bir animasyon uygulamak isteseydim, bunu yalnızca arka plan özelliklerini kullanarak yapmak sıkıcı olurdu.

CSS'yi girin mask.

CodePen Göm Geri Dönüşü

Kod garip görünebilir, ancak mantık hala önceki tüm arka plan animasyonlarında yaptığımızla aynı. bu mask iki degradeden oluşur. İlk degrade, içerik alanını kaplayan opak bir renkle tanımlanır ( content-box değer). Bu ilk degrade, metni görünür kılar ve alt zikzak kenarlığını gizler. content-box olduğunu mask-clip ile aynı şekilde davranan değer background-clip

linear-gradient(#000 0 0) content-box

İkinci eğim tüm alanı kapsayacaktır (teşekkürler padding-box). Bu, kullanılarak tanımlanan bir genişliğe sahiptir. --_p değişkendir ve öğenin sol tarafına yerleştirilecektir.

linear-gradient(#000 0 0) 0 / var(--_p, 0%) padding-box

Şimdi, tek yapmamız gereken değerini değiştirmek. --_p ikinci degrade için kayma efekti oluşturmak ve alt çizgiyi ortaya çıkarmak için üzerine gelin.

.hover:hover { --_p: 100%; color: var(--c);
}

Aşağıdaki demo, gerçekleşen hileyi daha iyi görmek için maske katmanlarını arka plan olarak kullanır. Yeşil ve kırmızı kısımların, elemanın görünen kısımları olduğunu, diğer her şeyin şeffaf olduğunu hayal edin. Onunla aynı gradyanları kullanırsak maskenin yapacağı şey budur.

CodePen Göm Geri Dönüşü

Böyle bir hile ile, basitçe farklı bir gradyan konfigürasyonu kullanarak birçok varyasyonu kolayca oluşturabiliriz. mask özelliği:

CodePen Göm Geri Dönüşü

Bu demodaki her örnek, aşağıdakiler için biraz farklı bir gradyan konfigürasyonu kullanır. mask. Arka plan yapılandırması ile maske yapılandırması arasındaki koddaki ayrıma da dikkat edin. Bağımsız olarak yönetilebilir ve korunabilirler.

Bunun yerine zikzak alt çizgiyi dalgalı bir alt çizgi ile değiştirerek arka plan yapılandırmasını değiştirelim:

CodePen Göm Geri Dönüşü

Vurgulu efektlerin başka bir koleksiyonu! Tüm maske konfigürasyonlarını korudum ve farklı bir şekil oluşturmak için arka planı değiştirdim. Şimdi, nasıl yapabildiğimi anlayabilirsin. 400 vurgulu efekte ulaşmak için sözde öğeler olmadan - ve hala daha fazlasına sahip olabiliriz!

Mesela neden böyle bir şey olmasın:

CodePen Göm Geri Dönüşü

İşte size bir meydan okuma: Bu son demodaki kenarlık, mask onu ortaya çıkaracak özellik. Animasyonun arkasındaki mantığı çözebilir misiniz? İlk bakışta karmaşık görünebilir, ancak degradelere dayanan diğer vurgulu efektlerin çoğu için baktığımız mantığa çok benzer. Açıklamanızı yorumlara yazın!

3D olarak fareyle üzerine gelme efektleri

Tek bir öğeyle (ve sözde öğelere başvurmadan!) bir 3D efekti yaratmanın imkansız olduğunu düşünebilirsiniz, ancak CSS'nin bunu gerçekleştirmenin bir yolu vardır.

CodePen Göm Geri Dönüşü

Orada gördüğünüz şey gerçek bir 3B efekti değil, CSS'yi birleştiren 3B alanda mükemmel bir 2B yanılsaması. background, clip-path, ve transform özellikleri.

CSS vurgulu efektinin dört aşamada dökümü.
İşin püf noktası, bir 3B öğeyle etkileşime giriyormuşuz gibi görünebilir, ancak bir 2B kutu çizmek için yalnızca 3B taktikleri kullanıyoruz.

Yaptığımız ilk şey değişkenlerimizi tanımlamak:

--c: #1095c1; /* color */
--b: .1em; /* border length */
--d: 20px; /* cube depth */

Ardından, yukarıdaki değişkenleri kullanan genişliklere sahip şeffaf bir kenarlık oluştururuz:

--_s: calc(var(--d) + var(--b));
color: var(--c);
border: solid #0000; /* fourth value sets the color's alpha */
border-width: var(--b) var(--b) var(--_s) var(--_s);

Elemanın üst ve sağ taraflarının her ikisinin de eşit olması gerekir. --b alt ve sol tarafların toplamına eşit olması gerekirken değer --b ve --d (hangisi --_s değişken).

Hilenin ikinci kısmı için, daha önce tanımladığımız tüm sınır alanlarını kapsayan bir gradyan tanımlamamız gerekiyor. A conic-gradient bunun için çalışacak:

background: conic-gradient( at left var(--_s) bottom var(--_s), #0000 90deg,var(--c) 0 ) 0 100% / calc(100% - var(--b)) calc(100% - var(--b)) border-box;
Fareyle üzerine gelme efekti için kullanılan boyutlandırma şeması.
Arka Plan Kırpma, Maskeler ve 3D Kullanan Harika CSS Vurgulu Efektler

Hilenin üçüncü kısmı için başka bir degrade ekliyoruz. Bu, ana rengin farklı tonlarını oluşturmak için önceki ilk degradeyle örtüşen iki yarı saydam beyaz renk değerini kullanacak ve bize gölgeleme ve derinlik yanılsaması verecektir.

conic-gradient( at left var(--d) bottom var(--d), #0000 90deg, rgb(255 255 255 / 0.3) 0 225deg, rgb(255 255 255 / 0.6) 0
) border-box
Fareyle üzerine gelme efektini oluşturmak için kullanılan açıları gösterme.
Arka Plan Kırpma, Maskeler ve 3D Kullanan Harika CSS Vurgulu Efektler

Son adım, bir CSS clip-path o uzun gölge sorta hissi için köşeleri kesmek için:

clip-path: polygon( 0% var(--d), var(--d) 0%, 100% 0%, 100% calc(100% - var(--d)), calc(100% - var(--d)) 100%, 0% 100%
)
CSS vurgulu efektinde kullanılan üç boyutlu küpün koordinat noktalarını gösterme.
Arka Plan Kırpma, Maskeler ve 3D Kullanan Harika CSS Vurgulu Efektler

Bu kadar! Sadece iki gradyan ve bir clip-path CSS değişkenlerini kullanarak kolayca ayarlayabileceğimiz. Şimdi, tek yapmamız gereken onu canlandırmak!

Önceki şekildeki (kırmızı ile gösterilen) koordinatlara dikkat edin. Animasyonu oluşturmak için bunları güncelleyelim:

clip-path: polygon( 0% var(--d), /* reverses var(--d) 0% */ var(--d) 0%, 100% 0%, 100% calc(100% - var(--d)), calc(100% - var(--d)) 100%, /* reverses 100% calc(100% - var(--d)) */ 0% 100% /* reverses var(--d) calc(100% - var(--d)) */
)

İşin püf noktası, öğenin alt ve sol kısımlarını gizlemektir, böylece geriye kalan tek şey derinliği olmayan dikdörtgen bir öğedir.

Bu kalem, clip-path ne yaptığını görmek için animasyonun bir kısmı:

CodePen Göm Geri Dönüşü

Son dokunuş, elemanı kullanarak elemanı ters yönde hareket ettirmektir. translate - ve illüzyon mükemmel! İşte değişen derinlikler için farklı özel özellik değerleri kullanan efekt:

CodePen Göm Geri Dönüşü

İkinci vurgulu etkisi aynı yapıyı takip eder. Tek yaptığım, sağ üst hareket yerine sol üst hareket oluşturmak için birkaç değeri güncellemek.

Efektleri birleştirmek!

Ele aldığımız her şeyle ilgili harika olan şey, hepsinin birbirini tamamlaması. İşte ekliyorum bir örnek the text-shadow ikinci maddenin etkisi dizide şuna background ilk makaleden animasyon tekniği az önce ele aldığımız 3D numarasını kullanırken:

CodePen Göm Geri Dönüşü

Gerçek kod ilk başta kafa karıştırıcı olabilir, ancak biraz daha ayrıntılı olarak inceleyin - bunun yalnızca bu üç farklı efektin bir kombinasyonu olduğunu ve hemen hemen birbirine karıştırıldığını fark edeceksiniz.

Bu makaleyi, arka planı, klip yolunu ve bir çizgiyi birleştirdiğim son bir vurgulu efektle bitirmeme izin verin. perspective başka bir 3B efekti simüle etmek için:

CodePen Göm Geri Dönüşü

Aynı efekti görüntülere de uyguladım ve sonuç, tek bir elemanla 3D simülasyonu yapmak için oldukça iyiydi:

CodePen Göm Geri Dönüşü

Bu son demonun nasıl çalıştığına daha yakından bakmak ister misiniz? Üzerine bir şeyler yazdım.

Tamamlayan

Oof, işimiz bitti! Biliyorum, bu çok zor bir CSS ama (1) bu tür şeyler için doğru web sitesindeyiz ve (2) amaç, farklı CSS özelliklerine ilişkin anlayışımızı, farklı CSS özellikleriyle etkileşime girmelerine izin vererek yeni seviyelere taşımaktır. bir başka.

Bu küçük gelişmiş CSS vurgulu efekt serisini kapattığımıza göre, buradan sonraki adımın ne olduğunu soruyor olabilirsiniz. Bir sonraki adımın tüm öğrendiklerimizi alıp bunları düğmeler, menü öğeleri, bağlantılar vb. gibi diğer öğelere uygulamak olduğunu söyleyebilirim. Tam da bu nedenle hilelerimizi bir başlık öğesiyle sınırlayacak kadar basit tuttuk. ; asıl unsur önemli değil. Konseptleri alın ve yeni şeyler yaratmak, denemek ve öğrenmek için onlarla birlikte koşun!


Arka Plan Kırpma, Maskeler ve 3D Kullanan Harika CSS Vurgulu Efektler aslen yayınlandı CSS Hileleri. Malısın bülteni al.

Zaman Damgası:

Den fazla CSS Püf Noktaları