Zoeken…


Syntaxis

  • Roteer Transformeren
  • transform: rotate (<hoek>)
  • Vertaal Transformeren
  • 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 (<hoek>)
  • transform: skewY (<hoek>)
  • Scale Transform
  • transform: scale (<scale-factor> [, <scale-factor>]?)
  • transform: scaleX (<scale-factor>)
  • transform: scaleY (<scale-factor>)
  • Matrix transformatie
  • transform: matrix (<nummer> [, <nummer>] {5,5})

parameters

Functie / Parameter Details
rotate(x) Definieert een transformatie die het element rond een vast punt op de Z-as verplaatst
translate(x,y) Verplaatst de positie van het element op de X- en Y-as
translateX(x) Verplaatst de positie van het element op de X-as
translateY(y) Verplaatst de positie van het element op de Y-as
scale(x,y) Wijzigt de grootte van het element op de X- en Y-as
scaleX(x) Wijzigt de grootte van het element op de X-as
scaleY(y) Wijzigt de grootte van het element op de Y-as
skew(x,y) Shear mapping, of transvection, vervormt elk punt van een element met een bepaalde hoek in elke richting
skewX(x) Horizontale shear mapping vervormt elk punt van een element met een bepaalde hoek in de horizontale richting
skewY(y) Verticale afschuivingsafbeelding die elk punt van een element vervormt met een bepaalde hoek in de verticale richting
matrix() Definieert een 2D-transformatie in de vorm van een transformatiematrix.
hoek De hoek waarmee het element moet worden gedraaid of scheef (afhankelijk van de functie waarmee het wordt gebruikt). Hoek kan worden geleverd in graden ( deg ), gradiënten ( grad ), radialen ( rad ) of bochten ( turn ). In de functie skew() is de tweede hoek optioneel. Indien niet opgegeven, staat er geen (0) scheefstand op de Y-as.
lengte-of-percentage De afstand uitgedrukt als een lengte of een percentage waarmee het element moet worden vertaald. In de functie translate() is het tweede lengte- of percentage optioneel. Indien niet opgegeven, zou er geen (0) vertaling op de Y-as zijn.
schaal factor Een getal dat bepaalt hoe vaak het element op de opgegeven as moet worden geschaald. In de functie scale() is de tweede schaalfactor optioneel. Indien niet opgegeven, wordt de eerste schaalfactor ook toegepast op de Y-as.

Opmerkingen

2D Coordiante-systeem

Transformaties worden gemaakt volgens een 2D X / Y-coördinatiesysteem. De X-as gaat van rechts naar links en de Y-as gaat naar beneden zoals weergegeven in de volgende afbeelding:

2D CSS coördinatensysteem

Dus een positieve translateY() gaat naar beneden en een positieve translateX() gaat goed.

Browserondersteuning en voorvoegsels

  • IE ondersteunt deze eigenschap sinds IE9 met het voorvoegsel -ms- . Oudere versies en Edge hebben het voorvoegsel niet nodig
  • Firefox ondersteunt het sinds versie 3.5 en heeft het -moz- voorvoegsel nodig tot versie 15
  • Chrome sinds versie 4 en tot versie 34 heeft het voorvoegsel -webkit-
  • Safari heeft het voorvoegsel -webkit- tot versie 8
  • Opera heeft het -o- prefix nodig voor versie 11.5 en het -webkit- prefix van versie 15 tot 22
  • Android heeft het voorvoegsel -webkit- van versie 2.1 tot 4.4.4

Voorbeeld van voorgeconfigureerde transformatie:

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

Draaien

HTML

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

CSS

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

In dit voorbeeld wordt de div 45 graden rechtsom gedraaid. Het rotatiecentrum bevindt zich in het midden van de div, 50% van links en 50% van boven. U kunt het rotatiecentrum wijzigen door de eigenschap transform-origin in te stellen.

transform-origin: 100% 50%;

In het bovenstaande voorbeeld wordt het rotatiecentrum ingesteld op het midden van het rechteruiteinde.

Schaal

HTML

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

CSS

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

In dit voorbeeld wordt de div geschaald naar 100 100px * 0.5 = 50px op de X-as en naar 100 100px * 1.3 = 130px op de Y-as.

Het midden van de transformatie bevindt zich in het midden van de div, 50% van links en 50% van boven.

Vertalen

HTML

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

CSS

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

In dit voorbeeld wordt de div verplaatst met 100px * 50% = 50px op de X-as en met 100 100px * 50% = 50px op de Y-as.

U kunt ook vertalingen op een enkele as opgeven.

Op de X-as:

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

Op de Y-as:

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

scheef

HTML

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

CSS

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

In dit voorbeeld wordt de div scheefgetrokken met 20 graden op de X-as en met - 30 graden op de Y-as.
Het midden van de transformatie bevindt zich in het midden van de div, 50% van links en 50% van boven.

Zie het resultaat hier .

Meerdere transformaties

Meerdere transformaties kunnen worden toegepast op een element in één eigenschap zoals deze:

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

Dit roteert het element 15 graden met de klok mee en vertaalt het 200 px naar rechts.

In geketende transformaties beweegt het coördinatensysteem met het element mee . Dit betekent dat de vertaling niet horizontaal is maar op een as 15 graden rechtsom draait, zoals weergegeven in de volgende afbeelding:

Meerdere transformaties roteren en vervolgens vertalen

Als u de volgorde van de transformaties wijzigt, wordt de uitvoer gewijzigd. Het eerste voorbeeld zal anders zijn dan

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

Zoals getoond in deze afbeelding:

Meerdere transformaties vertalen dan roteren

Transform Origin

Transformaties worden uitgevoerd met betrekking tot een punt dat wordt gedefinieerd door de eigenschap transform-origin .

De eigenschap heeft 2 waarden: transform-origin: XY;

In het volgende voorbeeld roteert de eerste div ( .tl ) rond de linkerbovenhoek met transform-origin: 0 0; en de tweede ( .tr ) wordt om de rechterbovenhoek transform-origin: 100% 0 met transform-origin: 100% 0 . De rotatie wordt toegepast bij zweven :

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);
}

De standaardwaarde voor de eigenschap transform-origin is 50% 50% , het centrum van het element.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow