弃用
This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the
兼容性表格
at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
注意 : See https://github.com/w3c/csswg-drafts/issues/4766 for discussion around @viewport's removal from the standards track.
@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: 100vw; /*Sets the width of the actual viewport to the device width*/
}
注意
: The use of
<meta name="viewport">
tag overrides
@viewport
The at-rule contains a set of nested descriptor s 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
Used in the determination of the width of the viewport when the document is first displayed.
max-width
Used in the determination of the width of the viewport when the document is first displayed.
width
min-width
and
max-width
.
min-height
Used in the determination of the height of the viewport when the document is first displayed.
max-height
Used in the determination of the height of the viewport when the document is first displayed.
height
min-height
and
max-height
.
zoom
Sets the initial zoom factor.
min-zoom
Sets the minimum zoom factor.
max-zoom
Sets the maximum zoom factor.
user-zoom
Controls whether or not the user should be able to change the zoom factor.
orientation
Controls the document's orientation.
viewport-fit
Controls the display of the document on non-rectangular displays.
@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;
}
| 规范 | 状态 | 注释 |
|---|---|---|
|
CSS Round Display Level 1
The definition of '@viewport' in that specification. |
工作草案 |
Defined the
viewport-fit
descriptor.
|
|
CSS Device Adaptation
The definition of '@viewport' in that specification. |
工作草案 | 初始定义 |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
@viewport
|
Chrome
不支持
29 — 84
注意事项
Disabled
|
Edge
完整支持
12
Prefixed
Disabled
|
Firefox
不支持
No
注意事项
|
IE
完整支持
10
Prefixed
|
Opera
完整支持
16
Disabled
|
Safari
不支持
No
注意事项
|
WebView Android 不支持 4.4 — 37 |
Chrome Android
不支持
29 — 84
注意事项
Disabled
|
Firefox Android
不支持
No
注意事项
|
Opera Android
完整支持
16
Disabled
|
Safari iOS
不支持
No
注意事项
|
Samsung Internet Android 完整支持 2.0 |
height
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera
完整支持
16
|
Safari 不支持 No | WebView Android 不支持 4.4 — 37 | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No |
Opera Android
完整支持
16
|
Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
max-height
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera
完整支持
16
|
Safari 不支持 No | WebView Android 不支持 4.4 — 37 | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No |
Opera Android
完整支持
16
|
Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
max-width
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera
完整支持
16
|
Safari 不支持 No | WebView Android 不支持 4.4 — 37 | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No |
Opera Android
完整支持
16
|
Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
max-zoom
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera 完整支持 16 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No | Opera Android 完整支持 16 | Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
min-height
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera
完整支持
16
|
Safari 不支持 No | WebView Android 不支持 4.4 — 37 | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No |
Opera Android
完整支持
16
|
Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
min-width
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera
完整支持
16
|
Safari 不支持 No | WebView Android 不支持 4.4 — 37 | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No |
Opera Android
完整支持
16
|
Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
min-zoom
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera 完整支持 16 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No | Opera Android 完整支持 16 | Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
orientation
descriptor
|
Chrome 不支持 No |
Edge
不支持
12 — 79
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera 不支持 No | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 No | Firefox Android 不支持 No |
Opera Android
不支持
11.1 — 14
Prefixed
|
Safari iOS 不支持 No | Samsung Internet Android 不支持 No |
user-zoom
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera 完整支持 16 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No | Opera Android 完整支持 16 | Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
viewport-fit
descriptor
|
Chrome 不支持 No | Edge 不支持 No | Firefox 不支持 No | IE 不支持 No | Opera 不支持 No | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 不支持 No | Firefox Android 不支持 No | Opera Android 不支持 No | Safari iOS 不支持 No | Samsung Internet Android 不支持 No |
width
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera
完整支持
16
|
Safari 不支持 No | WebView Android 不支持 4.4 — 37 | Chrome Android 不支持 29 — 84 | Firefox Android 不支持 No |
Opera Android
完整支持
16
|
Safari iOS 不支持 No | Samsung Internet Android 完整支持 2.0 |
zoom
descriptor
|
Chrome 不支持 29 — 84 |
Edge
完整支持
12
Prefixed
|
Firefox 不支持 No |
IE
完整支持
10
Prefixed
|
Opera 完整支持 16 | Safari 不支持 No | WebView Android 不支持 4.4 — 37 | Chrome Android 不支持 61 — 84 | Firefox Android 不支持 No | Opera Android 完整支持 16 | Safari iOS 不支持 No | Samsung Internet Android 完整支持 8.0 |
完整支持
不支持
见实现注意事项。
用户必须明确启用此特征。
要求使用供应商前缀或不同名称。
<meta>
, specifically
<meta name="viewport">
@viewport