The@viewport
CSS at-rule lets you configure the viewport through which the document is viewed. It's primarily used for mobile devices, but is also used by desktop browsers that support features like "snap to edge" (such as Microsoft Edge).
Lengths specified as percentages are calculated relative to the initial viewport, which is the viewport before any user agent or authored styles have had an opportunity to adjust the viewport. This is typically based on the size of the window on desktop browsers that aren't in full screen mode.
On mobile devices (or desktop devices that are in full screen mode), the initial viewport is usually the portion of a device's screen that is available for application use. This may be either the full screen or the full screen area minus areas controlled by the operating system (such as a taskbar) or the application-available screen area (either the full screen or the screen minus any areas owned by the operating system or other applications).
@viewport { width: device-width; }
The at-rule contains a set of nested descriptors in a CSS block that is delimited by curly braces.
A zoom factor of 1.0
or 100%
corresponds to no zooming. Larger values zoom in. Smaller values zoom out.
Browser support for @viewport
is weak at this time, with support being largely available in Internet Explorer and Edge. Even in those browsers, only a small number of descriptors are available. Browsers will ignore @viewport
if they don't support it, and will ignore any descriptors that they don't recognize.
min-width
max-width
width
min-width
and max-width
.min-height
max-height
height
min-height
and max-height
.zoom
min-zoom
max-zoom
user-zoom
orientation
viewport-fit
@viewport { <group-rule-body> }
@viewport { min-width: 640px; max-width: 800px; } @viewport { zoom: 0.75; min-zoom: 0.5; max-zoom: 0.9; } @viewport { orientation: landscape; }
Specification | Status | Comment |
---|---|---|
CSS Round Display Level 1 The definition of '@viewport' in that specification. | Working Draft | Defined the viewport-fit descriptor. |
CSS Device Adaptation The definition of '@viewport' in that specification. | Working Draft | Initial definition |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | 29
|
Yes
|
No
|
10
|
16
|
No
|
height descriptor |
29 | ? | No | 10
|
16
|
No |
max-height descriptor |
29 | ? | No | 10
|
16
|
No |
max-width descriptor |
29 | ? | No | 10
|
16
|
No |
max-zoom descriptor |
29 | Yes
|
No | 10
|
? | No |
min-height descriptor |
29 | ? | No | 10
|
16
|
No |
min-width descriptor |
29 | ? | No | 10
|
16
|
No |
min-zoom descriptor |
29 | Yes
|
No | 10
|
? | No |
orientation descriptor
|
No | ? | No | 10
|
No | ? |
user-zoom descriptor |
29 | Yes
|
No | 10
|
? | No |
viewport-fit descriptor
|
? | ? | ? | ? | ? | 11 |
width descriptor |
29 | ? | No | 10
|
16
|
No |
zoom descriptor |
29 | ? | No | 10
|
16 | No |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | 4.4 | 29 | Yes
|
No
|
? | No
|
Yes |
height descriptor |
4.4 | 29 | ? | No | 16
|
No | Yes |
max-height descriptor |
4.4 | 29 | ? | No | 16
|
No | Yes |
max-width descriptor |
4.4 | 29 | ? | No | 16
|
No | Yes |
max-zoom descriptor |
? | 29 | Yes
|
No | ? | No | ? |
min-height descriptor |
4.4 | 29 | ? | No | 16
|
No | Yes |
min-width descriptor |
4.4 | 29 | ? | No | ? | No | Yes |
min-zoom descriptor |
? | 29 | Yes
|
No | ? | No | ? |
orientation descriptor
|
? | ? | ? | ? | 8
|
? | No |
user-zoom descriptor |
? | 29 | Yes
|
No | ? | No | ? |
viewport-fit descriptor
|
? | ? | ? | ? | ? | 11 | ? |
width descriptor |
4.4 | 29 | ? | No | 16
|
No | Yes |
zoom descriptor |
4.4 | 61 | ? | No | 37 | ? | No |
<meta>
, specifically <meta name="viewport">
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport