如何针对桌面、平板和移动?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (10)
  • 关注 (0)
  • 查看 (184)

我一直在对媒体查询进行一些研究,但我仍然不太明白如何针对特定大小的设备。

我希望能够瞄准桌面、平板电脑和移动设备。我知道会有一些差异,但最好有一个通用的系统,可以用来瞄准这些设备。

我发现了一些例子:

# Mobile
only screen and (min-width: 480px)

# Tablet
only screen and (min-width: 768px) 

# Desktop
only screen and (min-width: 992px)

# Huge
only screen and (min-width: 1280px) 

或:

# Phone
only screen and (max-width:320px)

# Tablet
only screen and (min-width:321px) and (max-width:768px)

# Desktop
only screen and (min-width:769px)

你认为每个设备的“断点”应该是什么?

提问于
用户回答回答于

IMO,这些是最好的断点:

@media (min-width:320px)  { /* smartphones, portrait iPhone, portrait 480x320 phones (Android) */ }
@media (min-width:480px)  { /* smartphones, Android phones, landscape iPhone */ }
@media (min-width:600px)  { /* portrait tablets, portrait iPad, e-readers (Nook/Kindle), landscape 800x480 phones (Android) */ }
@media (min-width:801px)  { /* tablet, landscape iPad, lo-res laptops ands desktops */ }
@media (min-width:1025px) { /* big landscape tablets, laptops, and desktops */ }
@media (min-width:1281px) { /* hi-res laptops and desktops */ }

改进后,在960个网格中更好地工作:

@media (min-width:320px)  { /* smartphones, iPhone, portrait 480x320 phones */ }
@media (min-width:481px)  { /* portrait e-readers (Nook/Kindle), smaller tablets @ 600 or @ 640 wide. */ }
@media (min-width:641px)  { /* portrait tablets, portrait iPad, landscape e-readers, landscape 800x480 or 854x480 phones */ }
@media (min-width:961px)  { /* tablet, landscape iPad, lo-res laptops ands desktops */ }
@media (min-width:1025px) { /* big landscape tablets, laptops, and desktops */ }
@media (min-width:1281px) { /* hi-res laptops and desktops */ }

在实践中,许多设计者将像素转换为EMS,主要是b/c EMS,更好地支持缩放。标准变焦1em === 16px.乘像素1em/16px去找急救人员。例如,320px === 20em...

对于这一评论,min-width是“mobile-first”设计中的标准,从设计最小屏幕开始,然后添加不断增加的媒体查询,使你工作到越来越大的屏幕上。不管你是否喜欢min-,,,max-,或者组合规则,请注意规则的顺序,记住如果多个规则匹配相同的元素,则后面的规则将覆盖先前的规则。

用户回答回答于

桌面上的行为不会改变但在平板电脑和手机上,我扩大导航栏以覆盖大的标识图像。注意,在你的标志高度需要的时候,尽可能多地使用页边距(顶部和底部)。就我的情况而言,60 px的顶部和底部非常完美。

@media (max-width:768px) { 
  .navbar-toggle {
      margin: 60px 0;
  }
}
用户回答回答于

由于有许多不同的屏幕大小总是会改变,而且很可能总是会改变,所以最好的方法就是将断点和中介建立在你的设计之上。

最简单的方法是抓取你完成的桌面设计,并在你的网页浏览器中打开它。慢慢缩小屏幕,使其变窄。观察设计何时开始,“break”,或看上去可怕和狭窄。此时需要一个带有媒体查询的断点。

创建三组桌面、平板和电话媒体查询是很常见的。但是,如果你的设计在这三个方面看起来都很好,那么为什么要为添加三个不必要的不同媒体查询的复杂性而烦恼呢?在需要的基础上去做。

用户回答回答于

这不是像素计数的问题,而是屏幕上字符的实际大小(以毫米或英寸为单位),这取决于像素密度。因此“最小宽度:”和“最大宽度:”是无用的。

“@media”查询考虑了像素计数和设备像素比,从而产生了“虚拟分辨率”,这是你在设计页面时必须考虑的内容:如果你的字体为10 px固定宽度,而“虚拟水平分辨率”为300 px。需要30个字符来填充一行。

用户回答回答于

Twitter Bootstrap推荐的最佳断点

/* Custom, iPhone Retina */ 
    @media only screen and (min-width : 320px) {

    }

    /* Extra Small Devices, Phones */ 
    @media only screen and (min-width : 480px) {

    }

    /* Small Devices, Tablets */
    @media only screen and (min-width : 768px) {

    }

    /* Medium Devices, Desktops */
    @media only screen and (min-width : 992px) {

    }

    /* Large Devices, Wide Screens */
    @media only screen and (min-width : 1200px) {

    }
用户回答回答于

常见设备断点的媒体查询

/* Smartphones (portrait and landscape) ----------- */
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
/* Styles */
}

/* Smartphones (landscape) ----------- */
@media only screen and (min-width : 321px) {
/* Styles */
}

/* Smartphones (portrait) ----------- */
@media only screen and (max-width : 320px) {
/* Styles */
}

/* iPads (portrait and landscape) ----------- */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) {
/* Styles */
}

/* iPads (landscape) ----------- */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) {
/* Styles */
}

/* iPads (portrait) ----------- */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) {
/* Styles */
}
/**********
iPad 3
**********/
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) and (-webkit-min-device-pixel-ratio : 2) {
/* Styles */
}

@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio : 2) {
/* Styles */
}
/* Desktops and laptops ----------- */
@media only screen  and (min-width : 1224px) {
/* Styles */
}

/* Large screens ----------- */
@media only screen  and (min-width : 1824px) {
/* Styles */
}

/* iPhone 4 ----------- */
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : landscape) and (-webkit-min-device-pixel-ratio : 2) {
/* Styles */
}

@media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio : 2) {
/* Styles */
}

/* iPhone 5 ----------- */
@media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
/* Styles */
}

@media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
/* Styles */
}

/* iPhone 6 ----------- */
@media only screen and (min-device-width: 375px) and (max-device-height: 667px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
/* Styles */
}

@media only screen and (min-device-width: 375px) and (max-device-height: 667px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
/* Styles */
}

/* iPhone 6+ ----------- */
@media only screen and (min-device-width: 414px) and (max-device-height: 736px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
/* Styles */
}

@media only screen and (min-device-width: 414px) and (max-device-height: 736px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
/* Styles */
}

/* Samsung Galaxy S3 ----------- */
@media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
/* Styles */
}

@media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
/* Styles */
}

/* Samsung Galaxy S4 ----------- */
@media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 3){
/* Styles */
}

@media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 3){
/* Styles */
}

/* Samsung Galaxy S5 ----------- */
@media only screen and (min-device-width: 360px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 3){
/* Styles */
}

@media only screen and (min-device-width: 360px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 3){
/* Styles */
}
用户回答回答于
  1. 额外的小型设备(电话,最高480 px)
  2. 小型设备(平板电脑,768 px及以上)
  3. 中型设备(大型平板电脑、笔记本电脑和台式机、992 px及以上)
  4. 大型设备(大型台式机,1200 px及以上)
  5. 肖像电子阅读器(Nook/kindle),小型平板电脑.最小宽度:481 px
  6. 肖像平板电脑,肖像ipad,景观电子阅读器.最小宽度:641 px
  7. 平板电脑,景观ipad,lo-res笔记本电脑.最小宽度:961 px
  8. htc一设备-宽度:360 px设备-高度:640 px-webkit-设备-像素比:3
  9. 三星Galaxy S2设备-宽度:320 px设备-高度:534 px-webkit-设备-像素比:1.5(min-moz-设备-像素比:1.5),(-o-min-设备-像素比:3/2),(min-设备-像素比:1.5)
  10. 三星Galaxy S3设备-宽度:320 px设备-高度:640 px-webkit-设备-像素比:2(min-moz-设备-像素比:2),-旧Firefox浏览器(在Firefox 16之前)-
  11. 三星Galaxy S4设备-宽度:320 px设备-高度:640 px-webkit-设备-像素比:3
  12. lg Nexus 4设备-宽度:384 px设备-高度:592 px-webkit-设备-像素比:2
  13. 华硕Nexus 7设备-宽度:601 px设备-高度:906 px-webkit-min-设备-像素比:1.331和(-webkit-max-设备-像素比:1.332)
  14. ipad 1和2,ipad迷你设备-宽度:768 px设备-高度:1024 px-webkit-设备-像素比:1
  15. ipad 3和4设备-宽度:768 px设备-高度:1024 px-webkit-设备-像素比:2)
  16. iphone 3g设备-宽度:320 px设备-高度:480 px-webkit-设备-像素比:1)
  17. iphone 4设备-宽度:320 px设备-高度:480 px-webkit-设备-像素比:2)
  18. iphone 5设备-宽度:320 px设备-高度:568 px-webkit-设备-像素比:2)
用户回答回答于
  1. 我用过这个site找到分辨率,并根据实际数字开发CSS。我的数字与上面的答案相差很大,除了我的CSS实际上击中了所需的设备之外。
  2. 此外,在媒体查询后立即使用此调试代码:例如:

@media只显示屏幕和(最小宽度:769 px)和(最大宽度:1281px){/*10英寸平板电脑进入这里*/Body:在{Content:“Tablet to某些桌面媒体查询(769>1281)已启动”;字体重:粗体;显示:块;文本对齐:中心;背景:rgba(255,255,0,0.9);//*半透明黄色*/位置:绝对;顶部:0;左:0;右:0;z-指数:99;}

网络上有这个,不记得确切的网站。在每个媒体查询中添加此调试项,你将看到应用了什么查询。

用户回答回答于

不要针对特定的设备或大小!

general wisdom不针对特定的设备或大小,但要重新定义“breakpoint”一词:

  • mobile first使用百分比或EMS,而不是像素,
  • 然后在一个更大的视口里试一试,注意它开始失败的地方,
  • 重新设计布局并添加CSS媒体查询,以处理损坏的部件,
  • 重复此过程,直到到达下一个断点为止。

你可以用responsivepx.com找到“natural”断点

使用natural breakpoints

然后,“breakpoints”成为你的移动设计开始“break”的实际点即停止使用或视觉愉悦。一旦你有了一个好的移动站点,没有媒体查询,你就可以不再关心特定的大小,只需添加媒体查询,连续处理更大的视图。

如果你不试图将设计固定在一个确切的屏幕大小,这种方法是通过消除针对特定设备的需要...设计本身在每个breakpoints的完整性确保它在任何尺寸下都能保持。换句话说,如果菜单/内容部分/任何东西在一定大小下停止使用,为这个大小设计一个断点对于特定的设备大小。

用户回答回答于

如果你想瞄准一个设备,那就写min-device-width例如:

对于iPhone

@media only screen and (min-device-width: 480px){}

对于平板电脑

@media only screen and (min-device-width: 768px){}

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问5 回答
  • uncle_light

    5 粉丝518 提问3 回答
  • 学生

    2 粉丝477 提问3 回答
  • 军哥

    重庆雷驰信息技术有限公司 · 经理 (已认证)

    5 粉丝1 提问3 回答

扫码关注云+社区

领取腾讯云代金券