Merhaba,...
Css ile sayfa içindeki blok elemanlara TRANSFORM özelliği ile farklı şekillerde dönüşüm uygulayabiliyoruz.. Scale , Rotate, Translate, Skew vs gibi..
Transform dönüşüm anlamına gelir. Blok elemanların, görünüm oranları, eğimleri , açısal dönüşilerini vs değiştirebilir..
Blok elemanları döndürmek için kullanılır.. Döndürme için derece cinsinden (deg) değer verilir. Elemanlar pozitif değerlerde saat yönünde negatif (-) değerlerde yönünün tersinde döner..
div{
float:left;
margin:2rem;
width:50px;
height:50px;
color:#fff;
padding:1rem;
}
.div1 { transform:rotate(30deg);background-color:#f00;}
.div2 { transform:rotate(45deg);background-color:#0f0;}
.div3 { transform:rotate(60deg);background-color:#00f;}
<div class="div1"> DIV 1 30deg</div>
<div class="div2"> DIV 2 45deg </div>
<div class="div3"> DIV 3 60deg </div>
Yukarıda Kırmızı div saat yönünde 30 derece dönerken , yeşil div 30 derece, mavi div ise 60 derece döner..
Skew özelliği ile blok elemanlara eğim verebiliyoruz..
Eğim değerleri derece (deg) ile belirtilir!
div{
float:left;
margin:2rem;
width:80px;
height:50px;
color:#fff;
padding:1rem;
background-color:#00f;
}
.durum1 { transform:skew(0);background-color:red }
.durum2 { transform:skew(15deg); }
.durum3 { transform:skew(0,15deg); }
<div class="durum1"> Durum 1 skew(0)<br>orjinal</div>
<div class="durum2"> Durum 2 skew(15deg)</div>
<div class="durum3"> Durum 3 skew(0,15deg)</div>
Yukarıda,
SKEWX() ve SKEW(Y)
Eğimleri farklı eksenlerde ayrı ayrı vermek için skewX() ve skewY() fonksiyonları kullanılır...
div{
float:left;
margin:2rem;
width:80px;
height:50px;
color:#fff;
padding:1rem;
background-color:#00f;
}
.durum1 { transform:skew(0);background-color:red }
.durum2 { transform:skewX(30deg); }
.durum3 { transform:skewY(30deg); }
<div class="durum1"> Durum 1 skew(0)<br>orjinal</div>
<div class="durum2"> Durum 2 skewX(30deg)</div>
<div class="durum3"> Durum 3 skewY(30deg)</div>
Yukarıda,
Translate özelliği ile blok elemanların X ve Y konumlarını belirleyebiliyoruz. Yatay ve Dİkeyde aldıkları konumlar , relative konumlandırma'daki gibi diğer elemanların yerleşimlerini etkilemez..
Translate değerleri css birimleri ile (px , % , rem vs) belirtilir! Değerler pozitif olduğunda konumlandırma yatayda sağa ve dikeyde aşağı doğru olurken, negatif değerlerde tersi yönde konumlandırılma gerçekleşir...
div{
margin:1rem;
width:150px;
height:50px;
color:#fff;
padding:1rem;
background-color:#00f;
}
.durum1 { transform:translate(0);background-color:red }
.durum2 { transform:translate(50px); }
.durum3 { transform:translate(100px,50px); }
<div class="durum1"> Durum 1 translate(0)<br>orjinal</div>
<div class="durum2"> Durum 2 translate(50px)</div>
<div class="durum3"> Durum 3 translate(100px,50px)</div>
Yukarıda,
TRANSLATEX() ve TRANSLATEY()
Konumlandırmaları farklı eksenlerde ayrı ayrı uygulamak için translate() ve translate() fonksiyonları kullanılır...
div{
float:left;
margin:2rem;
width:80px;
height:50px;
color:#fff;
padding:1rem;
background-color:#00f;
}
.durum1 { transform:translate(0);background-color:red }
.durum2 { transform:translateX(150px); }
.durum3 { transform:translateY(-40px); }
<div class="durum1"> Durum 1 translate(0)<br>orjinal</div>
<div class="durum2"> Durum 2 translate(50px)</div>
<div class="durum3"> Durum 3 translate(100px,50px)</div>
Yukarıda,
Blok elemanların boyut ölçeğini (en/boy oranları) değiştirmek için kullanılır..
Scale değerleri rakamla yada yüzde ile belirtilebilir.
scale() özelliğinde, parantez içinde tek değer yazılırsa , hem en hem boy oranı aynı miktarda artar yada azalır. Ancak aralarına virgül konularak 2 değer yazılrısa, ilk değer en oranını , ikinci değer boy oranını değiştirir. Orjinal en/boy oranının korunması isteniyorsa tek değer kullanılmalıdır.
div{
float:left;
margin:2rem;
width:80px;
height:50px;
color:#fff;
padding:1rem;
background-color:#00f;
}
.durum1 { transform:scale(1);background-color:red }
.durum2 { transform:scale(80%); }
.durum3 { transform:scale(1.5); }
<div class="durum1"> Durum 1 scale(1)<br>orjinal</div>
<div class="durum2"> Durum 2 scale(80%)</div>
<div class="durum3"> Durum 3 scale(1.5)</div>
Yukarıda,
SCALE İLE FARKLI EN/BOY ORANLARI UYGULAMAK
Blok elemanlara scale() ile hem en hem boy oranlarını eşit miktarda arttırıp azalttık. Ancak dilersek , en ve boy oranlarını ayrı ayrı da değiştirebiliriz. Bunun için 2 değerli scale(X,Y) kullanabileceğimiz gibi , sadece en oranını belirlemek için scaleX() ve sadece boy oranını belirlemek için ise scaleY() özelliklerinin kullanabiliriz...
div{
float:left;
margin:2rem;
width:80px;
height:50px;
color:#fff;
padding:1rem;
background-color:#00f;
}
.durum1 { transform:scale(1);background-color:red }
.durum2 { transform:scale(80%,1.5); }
.durum3 { transform:scaleX(1.5); }
.durum4 { transform:scaleY(150%); }
<div class="durum1"> Durum 1 scale(1)<br>orjinal</div>
<div class="durum2"> Durum 2 scale(80% , 1.5)</div>
<div class="durum3"> Durum 3 scaleX(1.5)</div>
<div class="durum4"> Durum 4 scaleY(150%)</div>
Yukarıda,
En ve Boy oranları farklı miktarlarda arttırılıp azaltılırsa, eleman içindeki nesnelerde yada yazılrda bozulmalar olacaktır...
BİR elemana birdenfazla transform özelliği uyugulamak için , aralarına boşluk bırakılarak istenilen transform özellikleri yazılır. Örneğin bir div'e hem rotate hemde scale uygulayalım..
div{
float:left;
margin:2rem;
width:150px;
height:50px;
color:#fff;
padding:1rem;
background-color:#00f;
}
.durum1 { transform:scale(1);background-color:red }
.durum2 { transform: scale(1.5) rotate(45deg); }
<div class="durum1"> Durum 1 scale(1)<br>orjinal</div>
<div class="durum2"> Durum 2 scale(1.5) rotate(45deg);</div>
Yukarıda kırmzıı div normal görünümdeyken , durum 2 ile belirtilen mavi div hem 1.k katı oranında büyümüş hemde 15derece dönmüş olur..
Bu şekilde istenildiği kadar transform özelliği aynı anda uygulanabilir..
Görüşmek üzere...
Toplam 30 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.