CSS
2D-transformaties
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:
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:
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:
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.