// rotates an element vertically using a css3 transform
|
@mixin rotate-element(
|
$angle, // angle of rotation (90, 180, or 270)
|
$include-ie: $include-ie,
|
$background-color: null // bg color to use for ms chroma filter
|
) {
|
$rotation-origin: null;
|
$rotation: rotate(#{$angle}deg);
|
$ie-rotation: null;
|
@if $angle == 90 {
|
$ie-rotation: 1;
|
$rotation-origin: 0 0;
|
} @else if $angle == 180 {
|
$rotation-origin: 50% 50%;
|
$ie-rotation: 2;
|
} @else if $angle == 270 {
|
$ie-rotation: 3;
|
$rotation-origin: 100% 0;
|
}
|
|
-webkit-transform: $rotation;
|
-webkit-transform-origin: $rotation-origin;
|
-moz-transform: $rotation;
|
-moz-transform-origin: $rotation-origin;
|
-o-transform: $rotation;
|
-o-transform-origin: $rotation-origin;
|
transform: $rotation;
|
transform-origin: $rotation-origin;
|
|
@if $include-ie {
|
// In IE9 and below we have to use a BasicImage filter to achieve 90 or 270 degree
|
// rotation of the text container. Text rotated using this methodology does
|
// not display using ClearType font unless the element has a background. To
|
// work around this, we apply a background color to the text container element
|
// and then use a Chroma filter to display all pixels of that color as transparent.
|
.#{$prefix}ie9m & {
|
@if $background-color != null {
|
background-color: $background-color;
|
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$ie-rotation}),
|
progid:DXImageTransform.Microsoft.Chroma(color=#{$background-color});
|
} @else {
|
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$ie-rotation});
|
}
|
}
|
}
|
}
|
|
@mixin unrotate-element() {
|
-webkit-transform: none;
|
-moz-transform: none;
|
-o-transform: none;
|
transform: none;
|
@if $include-ie {
|
background-color: transparent;
|
filter: none;
|
}
|
}
|