Menu

CSS Döndürme (rotate): rotate() Fonksiyonu ve Dönen Elementler

Bir elementi transform: rotate(45deg) ya da daha yeni rotate özelliğiyle döndür. Açı birimlerini (deg, turn, rad), transform-origin ile bir köşe etrafında döndürmeyi, metin ve ikon döndürmeyi, dönen bir yükleme göstergesini ve rotateX ile rotateY ile 3B döndürmeyi öğren.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

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

BirimTam daire90 derece
deg360deg90deg
turn1turn0.25turn
rad6.2832rad1.5708rad
grad400grad100grad

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-block ekle.
  • Hover'da kaybolan bir döndürme. transform: scale(1.1) içeren bir hover kuralı transform: rotate(...)'in yerini alır. Ayrı rotate ve scale ö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-mode kullan.
  • ease ile dönen göstergeler. Varsayılan zamanlama her turda hızlanıp yavaşlar. linear kullan.
  • 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.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA