Sök…


Syntax

  • Rotera omformning
  • transform: rotera (<angle>)
  • Översätt Transform
  • transform: translate (<length-or-percentage> [, <length-or-percentage>]?)
  • transform: translateX (<length-or-percentage>)
  • transform: translateY (<length-or-percentage>)
  • Skew Transform
  • transform: skew (<angle> [, <angle>]?)
  • transform: skewX (<angle>)
  • transform: skewY (<angle>)
  • Skala Transform
  • transform: skala (<skala-faktor> [, <skala-faktor>]?)
  • transform: skalaX (<skala-faktor>)
  • transform: skalaY (<skala-faktor>)
  • Matrix Transform
  • transform: matris (<nummer> [, <nummer>] {5,5})

parametrar

Funktion / parameter detaljer
rotate(x) Definierar en transformation som rör elementet runt en fast punkt på Z-axeln
translate(x,y) Flyttar elementets position på X- och Y-axeln
translateX(x) Flyttar elementets position på X-axeln
translateY(y) Flyttar positionen för elementet på Y-axeln
scale(x,y) Ändrar storleken på elementet på X- och Y-axeln
scaleX(x) Ändrar storleken på elementet på X-axeln
scaleY(y) Ändrar storleken på elementet på Y-axeln
skew(x,y) Skjuvmappning eller transvektion, förvrängning av varje punkt i ett element med en viss vinkel i varje riktning
skewX(x) Horisontell skjuvningskartläggning som snedvrider varje punkt i ett element med en viss vinkel i horisontell riktning
skewY(y) Vertikal skjuvningskartläggning som snedvrider varje punkt i ett element med en viss vinkel i vertikal riktning
matrix() Definierar en 2D-transformation i form av en transformationsmatris.
vinkel Vinkeln med vilken elementet ska roteras eller skevas (beroende på vilken funktion det används). Vinkel kan tillhandahållas i grader ( deg ), gradier ( grad ), radianer ( rad ) eller svängar ( turn ). I funktionen skew() är den andra vinkeln valfri. Om det inte tillhandahålls kommer det inte att ske (0) skev i Y-axeln.
längd-eller-procentandel Avståndet uttryckt som en längd eller en procentandel med vilken elementet ska översättas. I funktionen translate() är den andra längden eller procenten valfri. Om det inte tillhandahålls skulle det inte finnas någon (0) översättning i Y-axeln.
skalfaktor Ett nummer som definierar hur många gånger elementet ska skalas i den angivna axeln. I funktionen scale() är den andra skalfaktorn valfri. Om den inte tillhandahålls kommer den första skalfaktorn att tillämpas även för Y-axeln.

Anmärkningar

2D-koordiantsystem

Transformationer görs enligt ett 2D X / Y-koordinatsystem. X-axeln går från höger till vänster och Y-axeln går nedåt som visas i följande bild:

2D CSS-koordinatsystem

Så en positiv translateY() går nedåt och en positiv translateX() går rätt.

Webbläsarsupport och prefix

  • IE stöder den här egenskapen eftersom IE9 med -ms- prefixet. Äldre versioner och Edge behöver inte prefixet
  • Firefox stöder den sedan version 3.5 och behöver prefixet -moz- tills version 15
  • Chrome sedan version 4 och tills version 34 behöver -webkit- prefixet
  • Safari behöver -webkit- prefixet tills version 8
  • Opera behöver -o- prefixet för version 11.5 och -webkit- prefixet från version 15 till 22
  • Android behöver -webkit- prefixet från version 2.1 till 4.4.4

Exempel på prefixad transform:

-webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
        transform: rotate(45deg);

Rotera

html

<div class="rotate"></div>

CSS

.rotate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: rotate(45deg);
}

Detta exempel roterar div med 45 grader medurs. Rotationscentret är i mitten av div, 50% från vänster och 50% från toppen. Du kan ändra rotationscentrumet genom att ställa in egenskapen för transform-origin .

transform-origin: 100% 50%;

Exemplet ovan kommer att ställa in rotationscentret på mitten av höger sida.

Skala

html

<div class="scale"></div>

CSS

.scale {
    width: 100px;
    height: 100px;
    background: teal;
    transform: scale(0.5, 1.3);
}

Detta exempel 100px * 0.5 = 50px div till 100px * 0.5 = 50px på X-axeln och till 100px * 1.3 = 130px på Y-axeln.

Transformans centrum är i divets centrum, 50% från vänster och 50% från toppen.

Översätt

html

<div class="translate"></div>

CSS

.translate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: translate(200px, 50%);
}

Detta exempel kommer att flytta div med 200px på X-axeln och med 100px * 50% = 50px på Y-axeln.

Du kan också ange översättningar på en enda axel.

På X-axeln:

.translate {
    transform: translateX(200px);
}

På Y-axeln:

.translate {
    transform: translateY(50%);
}

Skev

html

<div class="skew"></div>

CSS

.skew {
    width: 100px;
    height: 100px;
    background: teal;
    transform: skew(20deg, -30deg);
}

Detta exempel kommer att skeva div med 20 grader på X-axeln och med - 30 grader på Y-axeln.
Transformans centrum är i divets centrum, 50% från vänster och 50% från toppen.

Se resultatet här .

Flera omvandlingar

Flera omvandlingar kan tillämpas på ett element i en egenskap som denna:

transform: rotate(15deg) translateX(200px);

Detta roterar elementet 15 grader medurs och översätter det sedan 200px till höger.

I kedjade transformationer rör sig koordinatsystemet med elementet . Detta betyder att översättningen inte kommer att vara horisontell men på en axel rotera 15 grader medsols som visas i följande bild:

Flera transformationer roterar och översätt sedan

Om du ändrar ordningen på transformerna ändras utgången. Det första exemplet kommer att vara annorlunda än

transform: translateX(200px) rotate(15deg);
<div class="transform"></div>
.transform {
  transform: rotate(15deg) translateX(200px);
}

Som visas på denna bild:

Flera transformationer översätta sedan rotera

Transform Origin

Transformationer görs med avseende på en punkt som definieras av egenskapen transform-origin .

Egenskapen har två värden: transform-origin: XY;

I följande exempel roterar den första div ( .tl ) runt det övre vänstra hörnet med transform-origin: 0 0; och den andra ( .tr ) transformeras runt det övre högra hörnet med transform-origin: 100% 0 . Rotationen tillämpas på svävaren :

HTML:

<div class="transform originl"></div>
<div class="transform origin2"></div>

CSS:

.transform {
    display: inline-block;
    width: 200px;
    height: 100px;
    background: teal;
    transition: transform 1s;
}

.origin1 {
    transform-origin: 0 0;
}

.origin2 {
    transform-origin: 100% 0;
}

.transform:hover {
    transform: rotate(30deg);
}

Standardvärdet för egenskapen transform-origin är 50% 50% vilket är elementet i mitten.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow