翻译自stackoverflow.com,源地址:http://stackoverflow.com/questions/6747242/what-is-the-difference-between-max-device-width-and-max-width-for-mobile-web
有同学需要开发web页在iphone/android手机上访问,想问max-device-width 与 max-width 有什么区别,他打算针对不同的屏幕大小加载不同的样式,就像下面这样:
@media all and (max-device-width: 400px) @media all and (max-width: 400px)
这两者有什么不同?
max-width 指的是显示区域的宽度,比如浏览器的显示区域宽度
(max-width is the width of the target display area, e.g. the browser)
max-device-width 指的是设备整个渲染(显示)区域的宽度,比如设备的实际屏幕大小,也就是设备分辨率
(max-device-width is the width of the device’s entire rendering area, i.e. the actual device screen)
max-height
与 max-device-height
也是同理
更进一步说,max-width在窗口大小改变或横竖屏转换时会发生变化
max-device-width只与设备相关,横竖屏转换或改变尺寸,缩放都不会发生变化(部分android的宽高会互换而IOS不会)
如何你需要调整浏览器大小查看页面的变化,那开发过程中就使用 max-width,尽管在实际的生产环境中用max-device-width更精确
要是只关心两者的区别,到这已经足够了,下面是关于两者在实际应用的区别,来自另一篇文章:
http://www.javascriptkit.com/dhtmltutors/cssmediaqueries2.shtml
在CSS的媒体查询中,width与device-width之间的区别总是让人感到迷惑,下面就让我们来阐述一下两者的区别。
device- width指的是设备本身的宽度,也就是屏幕的分辨率,比如说你手机的分辨率是1440*900,这表示你的屏幕宽是1440px, 所以device-width是1440px。大部分的手机宽度不到480px,(当然今后的趋势是越来越大)。iphone 4的device-width就只有320px,即便对外宣称有640*960.这要归功于iphone的retina显示方式,也就是用两个像素来表示屏幕上一个CSS像素,IPAD3也是这样的。官方说IPAD3跟前几代一样采用的device-width是768px,它的实际分辨率达到了1536*2048,就是这个原因。
尽管device-width在指定特定的设备更有用,相比之下width在创建响应式页面时用途更加广泛。下面的表格是一个例子,
iPhone | 320 x 480 | 320 x 480, in both portrait and landscape mode |
iPhone 4 | 640 x 960 | 320 x 480, in both portrait and landscape mode. device-pixel-ratio is 2 |
iPhone 5, 5s | 640 x 1136 | 320 x 568, in both portrait and landscape mode. device-pixel-ratio is 2 |
iPhone 6 | 750 x 1334 | 375 x 667, in both portrait and landscape mode. device-pixel-ratio is 2 |
iPhone 6 plus | 1242 x 2208 | 414 x 736, in both portrait and landscape mode. device-pixel-ratio is 3 |
iPad 1 and 2 | 768 x 1024 | 768 x 1024, in both portrait and landscape mode |
iPad 3 | 1536 x 2048 | 768 x 1024, in both portrait and landscape modeCSS pixel density is 2 |
Samsung Galaxy S I and II | 480 x 800 | 320 x 533, in portrait modeCSS pixel density is 1.5 |
Samsung Galaxy S III | 720 x 1280 | 360? x 640?, in portrait mode |
HTC Evo 3D | 540 x 960 | 360 x 640, portrait modeCSS pixel density is 1.5 |
Amazon Kindle Fire | 1024 x 600 | 1024 x 600, landscape mode |
( 也可以参考:CSS3 媒体查询移动设备尺寸 Media Queries for Standard Devices)
需要注意的是,在苹果设备上,device-width指的总是设备处于肖像模式时的宽,不会随设备横竖屏转换变化,就是说不管怎么换,宽都是不会变的,高也一样。
下面是一个通过媒体查询区别设备和不同尺寸的例子:
/* #### Mobile Phones Portrait #### */ @media screen and (max-device-width: 480px) and (orientation: portrait){ /* some CSS here */ } /* #### Mobile Phones Landscape #### */ @media screen and (max-device-width: 640px) and (orientation: landscape){ /* some CSS here */ } /* #### Mobile Phones Portrait or Landscape #### */ @media screen and (max-device-width: 640px){ /* some CSS here */ } /* #### iPhone 4+ Portrait or Landscape #### */ @media screen and (min-device-width: 320px) and (-webkit-min-device-pixel-ratio: 2){ /* some CSS here */ } /* #### iPhone 5 Portrait or Landscape #### */ @media (device-height: 568px) and (device-width: 320px) and (-webkit-min-device-pixel-ratio: 2){ /* some CSS here */ } /* #### iPhone 6 and 6 plus Portrait or Landscape #### */ @media (min-device-height: 667px) and (min-device-width: 375px) and (-webkit-min-device-pixel-ratio: 3){ /* some CSS here */ } /* #### Tablets Portrait or Landscape #### */ @media screen and (min-device-width: 768px) and (max-device-width: 1024px){ /* some CSS here */ } /* #### Desktops #### */ @media screen and (min-width: 1024px){ /* some CSS here */ }
通过以上方式,我们的CSS媒体查询方案已经很完善了,但为了页面展示跟我们想像的一样,还要增加一个viewport标签: meta
tag.
了解更多请参考:CSS:媒体查询 CSS3 Media Queries
本文转自:CSS3: 移动端开发中 max-device-width 与 max-width 的区别
相关推荐
@media only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio:...
**CSS3媒介查询**是实现**响应式网页设计**的核心技术之一,允许开发者根据不同的设备特性和视口尺寸调整页面的样式。响应式设计的目标是确保网页在各种屏幕大小,从移动设备到桌面电脑,都能提供优秀的用户体验。...
7. 使用@media screen and (max-device-width: 480px){/* 小屏幕的css样式 */}等来实现响应式设计。 在CSS配置中,需要注意以下几点: 1. 使用@mediascreen and (max-device-width: 480px){/* 小屏幕的css样式 */}...
例如,`<meta name="viewport" content="width=device-width, initial-scale=1.0">`可以确保网页宽度与设备宽度相匹配,初始缩放比例为1.0。 CSS3在移动端和响应式设计中的作用不可忽视。媒体查询(Media Queries)...
### D2-淘宝移动端Web开发实践 #### 移动端Web开发概述 随着移动互联网的兴起,越来越多的用户开始依赖手机、平板等移动设备来访问网络。为了更好地满足这一趋势,淘宝团队分享了一系列关于移动端Web开发的最佳实践...
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/> 轮播 <link rel="stylesheet" type="text/css" href="css/slider.css"> ...
#### 三、CSS3样式与布局 1. **CSS3D Transforms**: 提供了三维空间中的变换能力。 2. **CSS Animations**: 动画效果,包括过渡和关键帧动画。 3. **CSS Backgrounds & Borders**: 更复杂的背景和边框样式。 4. **...
### 彻底弄明白CSS3:深入理解Media Queries #### CSS3 Media Queries概述 随着移动互联网的迅猛发展,网页设计面临着前所未来的挑战:如何确保同一网站在不同尺寸、不同类型的设备上都能拥有良好的视觉效果和用户...
在移动端开发中,CSS扮演着至关重要的角色,因为它负责网页的样式和布局。本文将深入探讨移动端CSS的相关知识点,包括调试工具、视口设置、图片处理、布局策略以及响应式设计。 1. **谷歌浏览器调试**: 谷歌浏览...
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Todo App <link rel="stylesheet" href="css/styles.css"> <h1>Todo App ()">Add Todo <ul id="todoList"></ul> ...
@media (min-device-width: 1024px) and (max-width: 989px), screen and (max-device-width: 480px), (max-device-width: 480px) and (orientation: landscape), (min-device-width: 480px) and (max-device-width...
移动端流式布局整页制作(4)"中,我们将深入学习移动端网页开发的关键技术——流式布局。流式布局是现代网页设计的核心,尤其在响应式设计中扮演着至关重要的角色。这种布局方式能够确保网页在不同屏幕尺寸和设备...
@custom-media --small-device ( max-width : 480 px )) : root { --primary-color : blue; --gutter : 30 px ; } /* component.css */ @import 'colors.config.css' . component { color : var ( --pr
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结 在移动客户端手机页面布局中,meta标签的使用非常重要,今天我们将详细介绍meta标签中的几个关键属性,包括...
@media (min-width: 1024px) and (max-width: 989px), screen and (max-device-width: 480px), (max-device-width: 480px) and (orientation: landscape), (min-device-width: 480px) and (max-device-width: 1024px...
可以使用media=” screen and (max-device-width:400px)”href=” tinyScreen.css” />来加载不同的CSS 文件。 6. CSS 的 @media规则:同一个CSS 文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS 规则。...
压缩包中的"css"文件可能是包含以上初始化样式的CSS文件,你可以将它导入你的项目中,作为构建页面的基础。当然,实际的初始化CSS可能会更复杂,包括对表格、按钮、表单元素等的样式处理,以适应各种复杂场景。在...
<meta name="viewport" content="width=device-width, initial-scale=1"> ``` 这行代码确保网页宽度适应设备宽度,并保持初始缩放比例为1。 CSS(Cascading Style Sheets)则负责网页的样式和布局。响应式设计的...
移动端流式布局整页制作(3)"中,我们将深入探讨移动端网页开发中的关键概念——流式布局。流式布局是一种适应不同屏幕尺寸和设备的布局方式,能够确保网页在手机、平板电脑以及桌面电脑等不同设备上都能呈现出...
- `device-width`: 视口宽度与设备屏幕宽度相同。 - `数字值`: 设置具体的像素值。 - **`initial-scale`**: - **作用**: 设置页面初始缩放比例。 - **取值**: - `1`: 初始缩放比例为100%。 - **`maximum-scale`...