
- CSS - Home
- CSS - Roadmap
- CSS - Introduction
- CSS - Syntax
- CSS - Inclusion
- CSS - Types
- CSS - Measurement Units
- CSS - Selectors
- CSS - Colors
- CSS - Backgrounds
- CSS - Fonts
- CSS - Text
- CSS - Images
- CSS - Links
- CSS - Tables
- CSS - Borders
- CSS - Border Block
- CSS - Border Inline
- CSS - Margins
- CSS - Lists
- CSS - Padding
- CSS - Cursor
- CSS - Outlines
- CSS - Dimension
- CSS - Scrollbars
- CSS - Inline Block
- CSS - Dropdowns
- CSS - Visibility
- CSS - Overflow
- CSS - Clearfix
- CSS - Float
- CSS - Arrows
- CSS - Resize
- CSS - Quotes
- CSS - Order
- CSS - Position
- CSS - Hyphens
- CSS - Hover
- CSS - Display
- CSS - Focus
- CSS - Zoom
- CSS - Translate
- CSS - Height
- CSS - Hyphenate Character
- CSS - Width
- CSS - Opacity
- CSS - Z-Index
- CSS - Bottom
- CSS - Navbar
- CSS - Overlay
- CSS - Forms
- CSS - Align
- CSS - Icons
- CSS - Image Gallery
- CSS - Comments
- CSS - Loaders
- CSS - Attr Selectors
- CSS - Combinators
- CSS - Root
- CSS - Box Model
- CSS - Counters
- CSS - Clip
- CSS - Writing Mode
- CSS - Unicode-bidi
- CSS - min-content
- CSS - All
- CSS - Inset
- CSS - Isolation
- CSS - Overscroll
- CSS - Justify Items
- CSS - Justify Self
- CSS - Tab Size
- CSS - Pointer Events
- CSS - Place Content
- CSS - Place Items
- CSS - Place Self
- CSS - Max Block Size
- CSS - Min Block Size
- CSS - Mix Blend Mode
- CSS - Max Inline Size
- CSS - Min Inline Size
- CSS - Offset
- CSS - Accent Color
- CSS - User Select
- CSS - Cascading
- CSS - Universal Selectors
- CSS - ID Selectors
- CSS - Group Selectors
- CSS - Class Selectors
- CSS - Child Selectors
- CSS - Element Selectors
- CSS - Descendant Selectors
- CSS - General Sibling Selectors
- CSS - Adjacent Sibling Selectors
- CSS Advanced
- CSS - Grid
- CSS - Grid Layout
- CSS - Flexbox
- CSS - Visibility
- CSS - Positioning
- CSS - Layers
- CSS - Pseudo Classes
- CSS - Pseudo Elements
- CSS - @ Rules
- CSS - Text Effects
- CSS - Paged Media
- CSS - Printing
- CSS - Layouts
- CSS - Validations
- CSS - Image Sprites
- CSS - Important
- CSS - Data Types
- CSS3 Advanced Features
- CSS - Rounded Corner
- CSS - Border Images
- CSS - Multi Background
- CSS - Color
- CSS - Gradients
- CSS - Box Shadow
- CSS - Box Decoration Break
- CSS - Caret Color
- CSS - Text Shadow
- CSS - Text
- CSS - 2d transform
- CSS - 3d transform
- CSS - Transition
- CSS - Animation
- CSS - Multi columns
- CSS - Box Sizing
- CSS - Tooltips
- CSS - Buttons
- CSS - Pagination
- CSS - Variables
- CSS - Media Queries
- CSS - Functions
- CSS - Math Functions
- CSS - Masking
- CSS - Shapes
- CSS - Style Images
- CSS - Specificity
- CSS - Custom Properties
- CSS Responsive
- CSS RWD - Introduction
- CSS RWD - Viewport
- CSS RWD - Grid View
- CSS RWD - Media Queries
- CSS RWD - Images
- CSS RWD - Videos
- CSS RWD - Frameworks
- CSS References
- CSS Interview Questions
- CSS Online Quiz
- CSS Online Test
- CSS Mock Test
- CSS - Quick Guide
- CSS - Cheatsheet
- CSS - Properties References
- CSS - Functions References
- CSS - Color References
- CSS - Web Browser References
- CSS - Web Safe Fonts
- CSS - Units
- CSS - Animation
- CSS Resources
- CSS - Useful Resources
- CSS - Discussion
CSS - transform Property
The CSS property transform is useful in rotation, scaling, skewing, or translation of an element. When the value of this property is anything other than none, it acts like a containing block for elements that have position: fixed, or position: absolute as values.
The CSS property transform can be specified as the keyword value none, or as one or more <transform-function> values.
The perspective() function should be listed first, when it is one of the multiple function values.
Possible values
The CSS property transform can have one of the following values:
<transform-function>: One of more of the transform functions to be applied.
none: Specifies no transformation to be applied.
Following section lists all the various <transform-function>s:
1. Matrix transformation
3. Rotation
4. Scaling (resizing)
5. Skewing (distortion)
6. Translation (moving)
Applies to
All the transformable elements.
Syntax
transform = none | <transform-function> +
Following section shows the various ways in which this property can take values:
/* Keyword value */ transform = none; /* Functions as values */ transform = matrix(1, 2, 3, 4, 5, 6); transform = matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform = perspective(200px); transform = rotate(45deg); transform = rotate3d(1, 2, 3, 35deg); transform = rotateX(25deg); transform = rotateY(25deg); transform = rotateZ(25deg); transform = translate(10px, 60%); transform = translate3d(10px, 60%, 2em); transform = translateX(2.5em); transform = translateY(2in); transform = translateZ(2in); transform = scale(2, 0.5); transform = scale3d(2, 1.5, 0.5); transform = scaleX(2); transform = scaleY(1.5); transform = scaleZ(0.5); transform = skew(20deg, 10deg); transform = skewX(20deg); transform = skewY(2rad); /* Multiple function values */ transform = translateX(20px) rotate(20deg) translateY(10px); transform = perspective(200px) translate(20px, 0, 20px) rotateY(5deg);
Accessibility concerns: For accessibility, the scaling and zooming animations are problematic and may be responsible for causing particular types of migraines. In case you need to add such animations on your page, give the user some flexibility to turn off the animations.
You may use the prefers-reduced-motion media feature to write a media query that may turn off the animations, when the user has a reduced animation in their selected system.
CSS transform - Rotating An Element
Following is an example of rotate() functions with various values as parameters, with positive and negative values:
<html> <head> <style> div { width: 100px; height: 100px; background-color: lightblue; margin-bottom: 1em; } .rotate-all-positive { background-color: lightgreen; transform: rotate(45deg); } .rotate-3d { background-color: tomato; transform: rotate3d(-2, -1, -1, 45deg); } .rotate-x { background-color: cyan; transform: rotateX(60deg); } .rotate-y { background-color: lightgoldenrodyellow; transform: rotateY(40deg); } .rotate-z { background-color: pink; transform: rotateZ(60deg); } </style> </head> <body> <div>No function</div> <div class="rotate-all-positive"> rotate </div> <div class="rotate-3d"> rotate3d </div> <div class="rotate-x"> rotateX </div> <div class="rotate-y"> rotateY </div> <div class="rotate-z"> rotateZ </div> </body> </html>
CSS transform - Scaling An Element
Following is an example of scale() functions, showing how various values can be passed to the function:
<html> <head> <style> div { width: 100px; height: 100px; background-color: lightblue; margin-bottom: 1em; } .scale { background-color: lightgreen; transform: scale(0.7, 0.4); } .scale-3d { background-color: tomato; transform: scale3d(1, 1.5, 0.5); } .scale-x { background-color: cyan; transform: scaleX(1.2); } .scale-y { background-color: lightgoldenrodyellow; transform: scaleY(0.5); } .scale-z { background-color: pink; transform: perspective(300px) scaleZ(0.5); } </style> </head> <body> <div>No function</div> <div class="scale"> scale </div> <div class="scale-3d"> scale3d </div> <div class="scale-x"> scaleX </div> <div class="scale-y"> scaleY </div> <div class="scale-z"> scaleZ </div> </body> </html>
CSS transform - Translating An Element
Following is an example of translate() functions with the various ways in which values can be passed to it:
<html> <head> <style> div { width: 100px; height: 100px; background-color: lightblue; margin-bottom: 1em; } .translate { background-color: lightgreen; transform: translate(10px, 50%); } .translate-3d { background-color: tomato; transform: perspective(500px) translate3d(10px, 40%, 1.5em); } .translate-x { background-color: cyan; transform: translateX(50px); } .translate-y { background-color: lightgoldenrodyellow; transform: translateY(30%); } .translate-z { background-color: pink; transform: perspective(500px) translateZ(1in); } </style> </head> <body> <div>No function</div> <div class="translate"> translate </div> <div class="translate-3d"> translate3d </div> <div class="translate-x"> translateX </div> <div class="translate-y"> translateY </div> <div class="translate-z"> translateZ </div> </body> </html>