`
天梯梦
  • 浏览: 13741190 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

CSS3: 移动端开发中 max-device-width 与 max-width 的区别

 
阅读更多

翻译自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-heightmax-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在创建响应式页面时用途更加广泛。下面的表格是一个例子,

CSS Media Dimensions Device resolution (px) device-width/ device-height (px)
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-queries

    @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媒介查询----响应式开发原始版.pptx

    **CSS3媒介查询**是实现**响应式网页设计**的核心技术之一,允许开发者根据不同的设备特性和视口尺寸调整页面的样式。响应式设计的目标是确保网页在各种屏幕大小,从移动设备到桌面电脑,都能提供优秀的用户体验。...

    使用HTML5和CSS3构建基于webkit的Web-PageApp.doc

    7. 使用@media screen and (max-device-width: 480px){/* 小屏幕的css样式 */}等来实现响应式设计。 在CSS配置中,需要注意以下几点: 1. 使用@mediascreen and (max-device-width: 480px){/* 小屏幕的css样式 */}...

    HTML5+CSS3基础篇(移动端&响应式).rar_HTML5移动端_css_html5_html5 移动_移动端

    例如,`<meta name="viewport" content="width=device-width, initial-scale=1.0">`可以确保网页宽度与设备宽度相匹配,初始缩放比例为1.0。 CSS3在移动端和响应式设计中的作用不可忽视。媒体查询(Media Queries)...

    D2-淘宝移动端Web开发实践

    ### D2-淘宝移动端Web开发实践 #### 移动端Web开发概述 随着移动互联网的兴起,越来越多的用户开始依赖手机、平板等移动设备来访问网络。为了更好地满足这一趋势,淘宝团队分享了一系列关于移动端Web开发的最佳实践...

    深入解析js轮播插件核心代码的实现过程

    <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"> ...

    HTML5应用和游戏开发体验

    #### 三、CSS3样式与布局 1. **CSS3D Transforms**: 提供了三维空间中的变换能力。 2. **CSS Animations**: 动画效果,包括过渡和关键帧动画。 3. **CSS Backgrounds & Borders**: 更复杂的背景和边框样式。 4. **...

    彻底弄明白CSS3

    ### 彻底弄明白CSS3:深入理解Media Queries #### CSS3 Media Queries概述 随着移动互联网的迅猛发展,网页设计面临着前所未来的挑战:如何确保同一网站在不同尺寸、不同类型的设备上都能拥有良好的视觉效果和用户...

    移动端CSS的学习笔记。

    在移动端开发中,CSS扮演着至关重要的角色,因为它负责网页的样式和布局。本文将深入探讨移动端CSS的相关知识点,包括调试工具、视口设置、图片处理、布局策略以及响应式设计。 1. **谷歌浏览器调试**: 谷歌浏览...

    html+js+css开发源代码项目.docx

    <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> ...

    响应式布局(PC与手机访问的兼容性)详解

    @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...

    Web-前端html+css从入门到精通 202. 移动端流式布局整页制作(4).zip

    移动端流式布局整页制作(4)"中,我们将深入学习移动端网页开发的关键技术——流式布局。流式布局是现代网页设计的核心,尤其在响应式设计中扮演着至关重要的角色。这种布局方式能够确保网页在不同屏幕尺寸和设备...

    postcss-variables-loader:使用Webpack + HMR在CSS和JS之间共享变量

    @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标签中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...

    7个步骤让PC网站自动适配手机网页.pdf

    可以使用media=” screen and (max-device-width:400px)”href=” tinyScreen.css” />来加载不同的CSS 文件。 6. CSS 的 @media规则:同一个CSS 文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS 规则。...

    css样式初始化.zip

    压缩包中的"css"文件可能是包含以上初始化样式的CSS文件,你可以将它导入你的项目中,作为构建页面的基础。当然,实际的初始化CSS可能会更复杂,包括对表格、按钮、表单元素等的样式处理,以适应各种复杂场景。在...

    HTML+CSS素材包,响应式布局开发代码资料

    <meta name="viewport" content="width=device-width, initial-scale=1"> ``` 这行代码确保网页宽度适应设备宽度,并保持初始缩放比例为1。 CSS(Cascading Style Sheets)则负责网页的样式和布局。响应式设计的...

    Web-前端html+css从入门到精通 201. 移动端流式布局整页制作(3).zip

    移动端流式布局整页制作(3)"中,我们将深入探讨移动端网页开发中的关键概念——流式布局。流式布局是一种适应不同屏幕尺寸和设备的布局方式,能够确保网页在手机、平板电脑以及桌面电脑等不同设备上都能呈现出...

    自适应屏幕代码

    - `device-width`: 视口宽度与设备屏幕宽度相同。 - `数字值`: 设置具体的像素值。 - **`initial-scale`**: - **作用**: 设置页面初始缩放比例。 - **取值**: - `1`: 初始缩放比例为100%。 - **`maximum-scale`...

Global site tag (gtag.js) - Google Analytics