İnsanların ekrandaki değişim ve hareket beklentisine rağmen, CSS ve HTML , etkileşimi tasarlamanıza olanak tanıyan birkaç denetime sahiptir ve var olanlar ikilidir.
Bir bağlantı ya bir renk ya da başka bir şeydir. Bir metin alanı ya bir boyut ya da diğeridir. Bir fotoğraf şeffaf veya opaktır. Bir eyaletten diğerine bahis yok. Geçiş yok .
Bu, web sayfalarının çoğunun aniden değişmesine ve öğelerin değişmeden ve değişmeden değişmesine neden oldu.
Evet, DHTML'yi kullanabilir ve geçişler için jQuery kitaplığından yararlanabiliriz, ancak bu çok basit olması gereken bir şey için çok fazla kod gerektirir.
İhtiyacımız olan şey, sayfaya basit geçişler eklemenin hızlı ve kolay bir yoludur ve bu makalede CSS geçişleri ve bunların nasıl kullanılacağı hakkında yararlı bilgiler bulacaksınız.
Birkaç ay sonra, ayağımı ağzımda sıkıştırarak tasarımcıların yeni CSS 3 tekniklerini kullanmaya başlaması gerektiğini öneren Bu onların, yalvarıyor oldukları temel stillerden bazılarını yapmalarına izin veriyor. Tek sorun: bunların hiçbiri Internet Explorer'da çalışmadı. Hayır, hatta IE8 değil.
Bazı okuyucular, izleyicilerin yaklaşık% 75'inin göremeyeceği teknikler önermenin sakıncalı olduğunu düşünüyordu.
Bu okuyucular için 'Şapkalarınızı tutun' dediğim için, size sadece bir çift kod satırıyla herhangi bir öğeye geçiş eklemenizi sağlayan yeni bir CSS özelliğiyle tanışacağım.
CSS geçişleri şu anda CSS Düzey 3'te tanıtılmakta, ancak Webkit'e bir uzantı olarak eklenmiştir. Şu anda bu, yalnızca Apple Safari ve Google Chrome gibi Webkit'i temel alan tarayıcılarda çalıştıkları anlamına geliyor.
Geçişler bir süredir Webkit'in bir parçası olmuştur ve Safari UI'nin diğer tarayıcıların yapamayacağı pek çok harika şeyin temelini oluşturuyor.
Fakat W3C CSS Çalışma Grubu, resmi özelliklerine geçişlerin eklenmesine direndi, bazı üyeler geçişlerin stil özellikleri olmadığını ve bir betik dili tarafından daha iyi ele alınacağını savunuyorlardı.
Ancak, kendim de dahil olmak üzere birçok tasarımcı ve geliştirici, bunların aslında birçoğumuzun alışkın olduğu geleneksel statik stillerden ziyade, yalnızca stillerden ibaret olduğunu söylüyor.
Neyse ki, dinamik stiller için argüman gün düzenledi. Geçen Mart ayında, Apple ve Mozilla temsilcileri yeni CSS Geçiş Modülü, CSS Seviye 3 şartnamesine , Apple’ın Webkit’e daha önce eklediği modele yakından benzetildi.
Devam etmeden önce, bir noktaya vurgu yapmama izin verin: stiller tarayıcıda birlikte çalışamazsa (ör. Tüm yaygın tarayıcılarda kullanılabilir) web sitesi işlevselliği için hiçbir zaman tarzlara güvenmeyin.
Bunu özleyenler için bir kez daha: stilleri tarayıcıda birlikte çalışamazsa, web sitesi işlevselliği için stillere güvenmeyin .
Bununla birlikte, geçişleri gibi stilleri, kullanıcı deneyimini iyileştirmek için tasarım geliştirmeleri olarak, onları göremeyenler için kullanılabilirlikten ödün vermeden kullanabilirsiniz. Bu, geçişler olmadan yaşayabildiğiniz sürece ve kullanıcılar görevlerini tamamlayabildikleri sürece tamamdır.
CSS geçişleri, DHTML'nin tüm kullanımlarının yerini almayacaktır, ancak burada, kitlenizin geri kalanına zarar vermeden, geçişleri destekleyen tarayıcılarda tasarımınızı geliştirmenin birkaç yolu vardır.
Bu sayfayı şu sayfada görüntülemeniz gerekecek Apple Safari 3+ veya Google Chrome Bu geçişleri görmek için çalışır. Her iki tarayıcı da Mac ve PC lezzetlerinde mevcuttur.
Geçişler için en belirgin kullanım, kullanıcının faresi üzerlerinde gezinirken öğeleri (linkler, tablolar, form alanları, düğmeler veya başka bir şey) vurgulamaktır. Geçişler, sayfaya daha yumuşak bir görünüm vermek için harika bir yoldur.
Örnek 1
Saf CSS menülerinin başarısı kolaydır ve geçişler menülere kaydırma ve vurgulama efektleri vermenizi sağlar.
Örnek 2
Bir nesneyi sayfada iki nokta arasında taşıyabilir ve hareketini canlandırmak için geçişleri kullanabilirsiniz.
Örnek 3
Tıkla ve Tıkla!
Ama orada bir dakika bekle, Tex. Geçişlere dalmadan önce, bir elementin geçebileceği çeşitli durumları anlamalıyız.
Devletler, belirli bir öğenin, kullanıcı veya sayfa ile nasıl etkileşimde bulunduğunu tanımlar ve sözde sınıfları kullanarak CSS'de belirtilir. Örneğin, kullanıcı bir elemanın üzerine geldiğinde, bu eleman hover
sözde sınıfı.
Dinamik Sözde Sınıf | Etkilenen Eleman | Açıklama |
: bağlantı | Sadece bağlantılar | Öngörülen bağlantılar |
:ziyaret | Sadece bağlantılar | Ziyaret edilen bağlantılar |
: hover | Tüm elemanları | Fare imleci öğenin üzerine |
:aktif | Tüm elemanları | Fare tıklaması öğesi |
: odak | Tüm elemanlar seçilebilir | Öğe seçildi |
Yok | Tüm elemanları | Tüm elemanların varsayılan durumu |
Geçişler, farklı eleman durumları arasındaki bir süre boyunca bir stili değiştirerek çalışır. Örneğin, bir öğenin varsayılan durumunun renk değeri, vurgulu durum için renk değeri olarak görünmeden önce spektrumdaki ara renklerden geçecektir.
Kullanıcı bir bağlantı üzerinde gezinirken bir renkten diğerine basit bir geçişi düşünelim. Diğer CSS özelliklerinde olduğu gibi, geçişler doğrudan uygulanacağı seçiciye eklenir. Özellik, daha sonra aşağıdaki dört değerden birini alabilir.
CSS özelliği
Değiştirilecek özellik (örneğin, renk). Değiştirilebilen tüm CSS özelliklerinin listesi için aşağıdaki tabloya bakın.
süre
Geçiş genellikle saniye cinsinden ne kadar sürecek (örneğin, .25s
).
Zamanlama fonksiyonu
Sürenin nasıl zamanlandığını kontrol etmenizi sağlar. Basit bir doğrusal sayı kullanmak yerine, geçişi hızlandırabilir veya yavaşlatabilir veya hatta bir vuruşu veya sayımı belirtebilirsiniz (örneğin, linear
). Daha sonra bu makalede daha fazla.
gecikme
Genellikle saniye cinsinden ifade edilen geçiş ile geçişin başlangıcı arasında ne kadar süre beklenir? .1s
). Gecikme istemiyorsanız bu değer ihmal edilebilir.
Geçiş özelliği bir Webkit uzantısı olarak başlatıldığından, her ikisini de transition
ve -webkit-transition
geriye dönük uyumluluk özellikleri.
Önce bu özelliklerin her ikisini de ekleyelim :hover
Sözde sınıf:
[CSS]
a: hover {
kırmızı renk;
-webkit geçiş: renk .25s doğrusal;
geçiş: renk .25s doğrusal;
}
[/ CSS]
Şimdi, bir bağlantı üzerinde durulduğunda, maviden kırmızıya atlamak yerine, ara renklerle saniyenin dörtte biri için geçiş yapılacaktır.
Elbette, varsayılan bağlantı rengine de geçiş yapmak istiyoruz. Bu nedenle, :link
(ve muhtemelen :visited
) yalancı sınıflar, sadece çok kısa bir gecikmeyle (saniyenin onda biri) kaybolmadan önce:
[CSS]
a: bağlantı, a: ziyaret edilenler {
renk: mavi;
-webkit-geçişi: renk .25s doğrusal .1s;
geçiş: renk .25s doğrusal .1s;
}
[/ CSS]
Geçiş bir CSS özelliği olduğundan, geçiş kuralının aynı kuralda birden fazla örneğini eklerseniz, sonuncusu bunlara eklemekten ziyade öncekileri geçersiz kılar. Dolayısıyla, aşağıdaki kuralda, tek geçiş arka plan rengi olacaktır:
[CSS]
a: hover {
kırmızı renk;
arkaplan rengi: rgb (235,235,185);
-webkit geçiş: renk .25s doğrusal;
geçiş: renk .25s doğrusal;
geçiş: arka plan rengi .15s doğrusal .1;
}
[/ CSS]
Birden çok geçiş, aynı geçiş özelliği tanımında virgülle ayrılmış bir liste olarak eklenir:
[CSS]
a: hover {
kırmızı renk;
arkaplan rengi: rgb (235,235,185);
-webkit-geçişi: renk .25s doğrusal, arka plan rengi. 15s doğrusal .1s;
geçiş: renk .25s doğrusal, arka plan rengi. 15s doğrusal .1s;
}
[/ CSS]
Bu, hem renk hem de arka plan rengi geçişi oluşturacaktır.
Yeni CSS 3 özelliklerinin çoğunu içeren bir renk, uzunluk veya konum bileşenine sahip hemen hemen tüm CSS özelliklerine bir geçiş yapılabilir. Göze çarpan bir istisna kutu gölgesi gibi görünüyor.
W3C'nin Geçişler özelliğinden yola çıkarak, dönüştürülmüş yönleriyle birlikte bir geçiş verilebilecek CSS özelliklerinin listesi. Daha kullanışlı özelliklerden birkaçını vurguladım.
CSS Mülkü | Hangi değişiklikler |
arka plan rengi | Renk |
arka plan görüntüsü | Sadece degradeler |
Arka plan konumlu | Yüzde, uzunluk |
border-bottom-color | Renk |
Çerçeve-alt-genişliği | uzunluk |
sınır rengi | Renk |
border-left-color | Renk |
Çerçeve-sol-genişliği | uzunluk |
border-right-color | Renk |
border-right-width | uzunluk |
Çerçeve-aralığı | uzunluk |
border-top-color | Renk |
Çerçeve-en-genişliği | uzunluk |
Çerçeve genişliği | uzunluk |
alt | Uzunluk, yüzde |
renk | Renk |
ekin | Dikdörtgen |
yazı Boyutu | Uzunluk, yüzde |
yazı ağırlıklı | Numara |
Kafes-* | Çeşitli |
yükseklik | Uzunluk, yüzde |
ayrıldı | Uzunluk, yüzde |
harf boşluğu | uzunluk |
satır yüksekliği | Sayı, uzunluk, yüzde |
kenar dipli | uzunluk |
margin-left | uzunluk |
margin-right | uzunluk |
margin-top | uzunluk |
maksimum yükseklik | Uzunluk, yüzde |
maksimum genişlik | Uzunluk, yüzde |
Min yükseklikte | Uzunluk, yüzde |
Min genişlikte | Uzunluk, yüzde |
opaklık | Numara |
anahat renkli | Renk |
-Özetlemektedir ofset | tamsayı |
anahat genişlikli | uzunluk |
dolgu dipli | uzunluk |
padding-left | uzunluk |
padding-right | uzunluk |
padding-top | uzunluk |
sağ | Uzunluk, yüzde |
text-indent | Uzunluk, yüzde |
Metin gölgesi | Gölge |
üst | Uzunluk, yüzde |
dikey hizalama | Anahtar kelimeler, uzunluk, yüzde |
görünürlük | görünürlük |
Genişlik | Uzunluk, yüzde |
kelime aralığı | Uzunluk, yüzde |
Z-endeksi | tamsayı |
yakınlaştırma | Numara |
Geçişler ile sayım oranını değiştirebilir, başlangıçta daha yavaş saymayı ve sonunda hızlandırabilir, bunun tersini veya aradaki herhangi bir şeyi değiştirebilirsiniz. CSS geçişleri geçiş zamanlaması için beş anahtar kelime ile gelir ve kendi zamanlama eğrinize ait değerleri belirtmenize izin verir.
isim | Nasıl çalışır |
kübik bezier (x1, y1, x2, y2) | X ve Y değerleri, zamanlama fonksiyonu için kullanılan bir bezier eğrisinin şeklini tanımlamak için 0 ile 1 arasındadır. |
doğrusal | Sabit hız |
kolaylaştırmak | Kademeli yavaşlama |
yumuşak giriş | Hızlandırmak |
yumuşak çıkış | Yavaşla |
yumuşak giriş-out | Hızlan ve sonra yavaşla |
Geçişler, tüm web siteleri için hızlı bir şekilde standart işletim prosedürü haline gelecek ve kullanıcı arayüzü geri bildirimlerini geliştirecektir.
Tüm web sitenizde çok çeşitli geçişler eklemek için, bir seçenek, CSS sıfırlamaya benzer şekilde evrensel seçiciye bir geçiş eklemektir. Bu, sayfadaki tüm öğelere varsayılan geçişi uygulayarak tutarlı bir geçişi sürdürmenize olanak tanır:
[CSS]
*: bağlantı, *: ziyaret edilen, *: vurgulu, *: etkin, *: odaklanma {
-webkit-geçişi:
renk .25s doğrusal,
arka plan rengi .25s doğrusal,
kenarlık rengi .25s doğrusal;
geçiş:
renk .25s doğrusal,
arka plan rengi .25s doğrusal,
kenarlık rengi .25s doğrusal;
}
[/ CSS]
Evrensel geçişe karşı bir argüman ve genel olarak CSS sıfırlamaları için genel seçiciyi kullanmaya karşı argüman, sayfadaki her öğeye stil uygulamak sayfa oluşturmayı yavaşlatabilir. Ancak, bunun böyle olduğuna dair hiçbir kanıt bulamadım. Herkes farklı biliyor mu?
Jason Cranford Teague dijital medyada 13'ten fazla kitabın yazarıdır. Stillerde Konuşma: Web Tasarımcıları için CSS'nin Temelleri . CSS ve web tipografi hakkında daha fazla bilgi için, Jason'ın yeni kitabına bakın, Sıvı Web Tipografi . Jason'ı takip edin: @jasonspeaking .