Saydam Kenarlıklar ile Yalnızca CSS Yalnızca Resim Gösterme Efekti Oluşturma
bir Yalnızca CSS görüntüsü efekti ortaya çıkarır farklı şekillerde çözülebilir. Aslında bir tasarımı kodlamak oldukça kolaydır. görüntü öne çıkıyor (tarafından taşan) sağlam arka planı -Sen sadece görüntü yerleştir sağlam bir arka plana sahip daha küçük bir öğenin üzerinde.
Kullanırsanız aynı sonucu alabilirsiniz şeffaf kenarlıklar, nerede kalıyorsun arka plan öğesinin boyutu aynı ön plandaki gibi ve boş bir alan yarat ön planın taşması.
Var İkinci yöntem kullanmanın bazı avantajları. Ön planın taşabileceği alanı sağlayan şeffaf sınırlar olduğundan, taşma yönünü kontrol etmek Sol, sağ, üst ve alt sınırlar arasında. Ayrıca, hem ön hem de arka plan için aynı boyuta sahip olmak her iki elemanı aynı anda hareket ettirmeyi kolaylaştırır sayfa boyunca.
Özetle, nasıl yapacağımızı göreceğiz Sadece CSS ile resim oluştur kullanarak daha küçük katı arka plan Birlikte saydam sınırları olan ön plan görüntüsü. Kontrol edebilirsiniz son demo altında.
1. İlk kodu oluşturun
HTML bilge, sadece bir CSS’de iki CSS değişkeni, Biz de ekleriz Biz boş ekle Resmi ekleriz Üzerinde aşağıdaki ekran görüntüsü Şimdiye kadar neye sahip olduğumuzu görebilirsiniz ( Eklemek için Resmin arkasında daha küçük (dışarı kayan) arka plan, diğer sözde elemanı kullanacağız, Başka bir CSS değişkeni yaratıyoruz, Genişlik olarak hesaplanır yükseklik olarak hesaplanır İle Bir CSS filtresi Burada demo ekran görüntüsü şu ana kadar işlendi (birlikte Biz ekle Bizim gibi zaten ekledi Aşağıda, görebilirsiniz son demo. Eğer görüntülersen
--bgc
ve --karartmak
için Arka plan rengi ve boyutlar arasında .foo
sırasıyla Örnekte, ben kullandım aynı değer kare şeklinde bir kutu almak için genişlik ve yükseklik için ayrı değişkenler Dikdörtgen istiyorsanız, yükseklik ve genişlik için.konum: göreceli
hükmetmek .foo
, Böylece onun sahte elemanları, kullanacağımız görüntüyü ortaya çıkarmak, olabilir kesinlikle konumlandırılmış (aşağıya bakınız), ve böylece üst üste yığılmış. .foo --bgc: # FFCC03; -dim: 300px; genişlik: var (- dim); yükseklik: var (- dim); arkaplan rengi: var (- bgc); pozisyon: göreceli;
içerik
özellik her iki sözde elemente, .foo :: önce
ve .foo :: sonrası
, onları düzgün şekilde işlemek için. .foo :: before, .foo :: after content: "; position: absolute; left: 0; üst: 0;
.foo
eleman, iki sözde elemanı, .foo :: önce
, .foo :: sonrası
, ve onların : hover
sözde sınıflar bir al geçiş
özellik bu olacak bir kolaylık geçişi ekle Onlara 500 milisaniye (yarım saniye). .foo, .foo: hover, .foo :: önce, .foo :: sonra, .foo: hover :: önce, .foo: hover :: after
2. Resmi ekleyin
.foo :: önce
sözde eleman arka plan resmi olarak, ve Tüm sözde elemanı kapsayacak şekilde boyutlandırmak ile Genişlik
ve yükseklik
özellikleri. Biz tam altına .foo
eleman kullanmak z dizini: -1
kural. .foo :: önce genişlik:% 100; yükseklik:% 100; arkaplan: url (camel.png) merkez / kapak; z-endeksi: -1;
merkez
anahtar kelime görüntüyü ortalar, iken kapak
anahtar kelime resmi tüm öğeyi koru en boy oranını koruyarak. Z-endeksi
-den kaldırıldı .foo :: önce
Böylece görülebilir):3. Kayar arka planı ekleyin
.foo :: sonrası
.--b
, için sınır genişliği. Veririz üç şeffaf kenarlık -e ::sonra
sözde eleman: üst, sağ ve alt. .foo :: sonra --b: 20px; genişlik: hesaplanan (100% - var (- b)); yükseklik: kals (% 100 - kals (var (- b) * 2)); kenarlık: var (- b) katı saydam; sınır-sol: yok; kutu-gölge: iç metin 0 var (- dim) 0 var (- bgc); filtre: parlaklık (.8); z-endeksi: -2;
hesaplanan (% 100 - var - b))
bu döner toplam genişliği .foo
Yatay kenarlıkların toplam genişliği eksi (sadece sağ sınır, çünkü sol sınır yok).hesaplanan (% 100 - hesaplanan (var (- b) * 2))
bu döner toplam yükseklik .foo
dikey kenarlıklarının toplam genişliği eksi (üst ve alt sınırlar).kutu gölge
mülkiyet, biz de yatay bir iç metin gölgesi ekleyin aynı boyutta .foo
(hangisi var (- dim)
).parlaklık (.8)
arka plan rengini koyulaştırır biraz ve nihayet z dizini: -2
kural yerleştirir ::sonra
altında sahte element ::önce
görüntüyü içeren.Z-endeksi
her iki sözde elementten kaldırıldıkları görülebilirler):4. Dönüşümü ekleyin
dönüştürmek
özellik iki sözde öğeye, yani kullanıcı üzerine geldiğinde .foo
, her iki sözde eleman yatay olarak taşındı.geçiş
tüm elemanların mülkü Adım 1'in sonunda görüntünün ve arka planın hareketi ikisi de animasyonlu. .foo: hover :: before, .foo: hover :: after dönüşümü: translateX (100%);
Bonus: İsteğe bağlı marj
.foo
diğer öğelerin yanında Bir sayfada ve diğer öğeleri uzaklaş görüntü ve arka planı kayarken ile aynı genişlikte bir sağ kenar boşluğu ekleyin. .foo
-e .foo: hover
eleman. .foo: vurgulu kenar boşluğu: var (- dim);