Bir elementi döndür
İki yol, aynı sonuç: transform içindeki rotate() fonksiyonu ya da tek başına rotate özelliği. Pozitif açılar saat yönünde döndürür:
Mavi ve yeşil kutular tam olarak aynı şekilde, merkezleri etrafında saat yönünde 45 derece döndürülmüş. Kehribar rengi kutunun açısı negatif, bu yüzden saat yönünün tersine eğiliyor. Döndürme düzeni asla kaydırmaz: her kutu hâlâ orijinal 90'a 60'lık yuvasını kaplıyor; döndürülmüş elementlerin komşularıyla çakışabilmesinin nedeni budur.
Açı birimleri
| Birim | Tam daire | 90 derece |
|---|---|---|
deg | 360deg | 90deg |
turn | 1turn | 0.25turn |
rad | 6.2832rad | 1.5708rad |
grad | 400grad | 100grad |
Olağan seçim deg'dir; dönme için turn iyi okunur (rotate: 1turn). 360'ın üzerindeki açılara izin verilir ve animasyonlarda önemlidir: bir keyframe'deki rotate(720deg) iki tur döner. Birimi her zaman yaz: rotate(45) geçersizdir ve yok sayılır.
Bir açıyı her birimde görmek için kaydırıcıyı sürükle:
Bir köşe etrafında döndürmek: transform-origin
Bir element varsayılan olarak merkezi etrafında döner. transform-origin pivot noktasını taşır. Bir saat kolu ortası üzerinde değil, ucu üzerinde döner:
Kolun alt ucu kadranın merkezindeki kehribar rengi pimin üzerinde duruyor ve rotate: 120deg onu saat dörde çeviriyor. transform-origin satırını kaldır, kol bunun yerine pimin dışında kendi ortası etrafında döner.
Metin döndürme ve dikey etiketler
rotate ile küçük bir eğim bir rozet ya da çıkartma için uygundur. Gerçekten dikey bir etiket için writing-mode daha iyidir, çünkü düzeni değiştirir: element yanındakiyle çakışmak yerine uzun ve dar olur.
Gösterge her etiketin düzen boyutunu gösteriyor. Döndürülmüş olan hâlâ orijinal geniş, kısa kutusunu kaplıyor: yanında boş bir aralık bırakıyor ve satırının üstünden ve altından, orada ne varsa onun içine taşıyor. writing-mode olan ise uzun, dar bir kutu kaplıyor. rotate: 180deg eklemek onu aşağıdan yukarı okunur yapar; dikey bir etiket için olağan yön budur.
Tıklamada ya da hover'da bir ikonu döndür
Bir oku 180 derece çevirmek, bir bölümün açık olduğunu göstermenin standart yoludur. rotate'i bir transition ile birleştir:
Ok, aşağıyı göstersin diye 45 derece döndürülmüş, iki kenarlığı olan bir karedir. Buton genişletildiğinde 225 dereceye gider, yukarıyı gösterir ve transition yarım turu canlandırır. Stili aria-expanded özniteliği yönettiği için görsel durum ile ekran okuyucuların duyurduğu durum asla çelişemez.
Dönen bir yükleme göstergesi
Dönme, hız hiç değişmesin diye linear zamanlamayla tekrarlanan 0'dan 360 dereceye bir döndürmedir:
Yalnızca bir to keyframe'iyle animasyon elementin kendi döndürmesinden (yok) başlar ve 360deg'de biter; infinite onu atlama olmadan tekrarlar, çünkü 360deg 0 ile aynı görünür. Sistemlerinden azaltılmış hareket isteyen insanlar için gösterge üç kat daha yavaş döner. Keyframe'ler hakkında daha fazlası animasyon sayfasında.
3B döndürme: rotateX, rotateY
rotateX() bir elementi yatay eksen etrafında geriye yatırır, rotateY() ise onu bir kapı gibi dikey eksen etrafında çevirir. Perspektif olmadan yalnızca basık görünürler; ebeveyndeki perspective derinlik ekler:
.scene { perspective: 600px; }
.card { transform: rotateY(35deg); }
.flip { transform: rotateY(180deg); backface-visibility: hidden; } /* card flip */
Bir elementi döndürmek yerine aynalamak için scale: -1 1 (yatay çevirme) kullan. 180 derecelik bir döndürme onu baş aşağı çevirir; bu aynı şey değildir.
Sık yapılan hatalar
- Yerinde kalan bir
<span>ya da<a>döndürmek. Düz satır içi elementler transform'ları yok sayar.display: inline-blockekle. - Hover'da kaybolan bir döndürme.
transform: scale(1.1)içeren bir hover kuralıtransform: rotate(...)'in yerini alır. Ayrırotatevescaleözelliklerini kullan ya da iki fonksiyonu birlikte listele. - Düzenin yer açmasını beklemek. Döndürülmüş bir resim döndürülmemiş kutusunu korur ve komşularıyla çakışır. Kapsayıcıya döndürülmüş boyutu ver ya da metin için
writing-modekullan. easeile dönen göstergeler. Varsayılan zamanlama her turda hızlanıp yavaşlar.linearkullan.- Yanlış nokta etrafında döndürmek. Açıyı ayarlamadan önce
transform-origin'i ayarla.
Sıkça Sorulan Sorular
CSS'te bir element nasıl döndürülür?
transform: rotate(45deg); ya da ayrı özellik olan rotate: 45deg; kullan. Pozitif açılar saat yönünde, negatif açılar saat yönünün tersine döndürür; transform-origin'i değiştirmedikçe elementin merkezi etrafında.
transform: rotate() ile rotate özelliği arasındaki fark nedir?
Aynı sonucu çizerler. rotate özelliği transform'dan bağımsızdır, bu yüzden bir hover kuralı döndürmeyi kaldırmadan scale ya da translate'i değiştirebilir ve her birinin kendi transition'ı olabilir. Birlikte, hangi sırada bildirirsen bildir transform: translate() rotate() scale() gibi davranırlar.
CSS'te bir resim 90 derece nasıl döndürülür?
img'ye transform: rotate(90deg); (ya da rotate: 90deg;) ekle. Resim düzendeki orijinal yerini korur, bu yüzden yatay hale döndürülmüş uzun bir resim komşularıyla çakışabilir; kapsayıcısına döndürülmüş boyut için yer ver.
CSS'te bir element nasıl döndürülerek sürekli çevrilir?
@keyframes spin { to { rotate: 360deg; } } tanımla ve animation: spin 1s linear infinite; uygula. Hız sabit kalsın diye linear kullan ve prefers-reduced-motion: reduce altında yavaşlat ya da durdur.
CSS'te metin dikey olarak nasıl döndürülür?
Dikey bir etiket için writing-mode: vertical-rl genellikle rotate(90deg)'den daha iyidir, çünkü düzeni de değiştirir: element çakışmak yerine dikey alan kaplar. Küçük dekoratif eğimler için rotate kullan.