【问题标题】:Responsive Design resizing on desktop, not on mobile响应式设计在桌面上调整大小,而不是在移动设备上
【发布时间】:2015-06-05 22:15:47
【问题描述】:

我正在使用媒体查询来根据宽度调整网站元素的大小。我正在我的桌面上开发和测试它,它工作得很好,但是当我启动它并在移动设备(iPhone 5)上测试它时,它根本不会调整大小 - 它以全宽显示。

我已经四处寻找对此的回应,普遍的共识似乎是设置我的视口。但我已经这样做了——在我的标题中我有:

<meta name="viewport" content="width=device-width, initial-scale=1">

有什么我可能拥有的东西可以覆盖这个吗?

我的媒体查询如下所示:

@media (min-width:320px) { /* smartphones, iPhone, portrait 480x320 phones */ 
    #rlanguage {position: relative; right:0; border:red solid 0px;}
    #iX-nav {position: relative; right:0; border:red solid 01px;}
    #infoemail {display:none}
    #mainMenu {display:none}    
    #mobileMenu {display:inline}    
    #DeskTopOnly {display:none;}                            
    #MenuSpacing {width: 1px;}
    #iX-footer {width: 100%; height:auto}
    .GreenMenuLine {background:#000}                            
    .rootVoices TD.selected {padding: 0px;}
    .rootVoices TD.rootVoice {padding: 0px; width:10px}
}


@media (min-width:481px) { /* portrait e-readers (Nook/Kindle), smaller tablets @ 600 or @ 640 wide. */ 
    #rlanguage {position: relative; float:right; border:orange solid 0px;}
    #iX-nav {position: relative; float:right; border:orange solid 0px;}
    #infoemail {display:none}
    #mainMenu {display:none}
    #mobileMenu {display:inline}
    #DeskTopOnly {display:none;}
    #MenuSpacing {width: 3px;}
    #iX-footer {width: 100%; height:auto}
    .GreenMenuLine {background:#000}                            
    .rootVoices TD.selected {padding: 0px;}
    .rootVoices TD.rootVoice {padding: 0px; width:0px}
}

@media (min-width:681px) { /* portrait tablets, portrait iPad, landscape e-readers, landscape 800x480 or 854x480 phones */ 
    #rlanguage {position: relative; float:right; border:yellow solid 0px;}
    #iX-nav {position: relative; float:right; border:yellow solid 0px;}
    #infoemail {display:none}
    #mainMenu {display:inline}
    #mobileMenu {display:none}
    #DeskTopOnly {display:none;}
    #MenuSpacing {width: 2px;}
    #iX-footer {width: 100%; height:auto}
    .GreenMenuLine {background:#000}
    .rootVoices TD.selected {padding: 1px;}
    .rootVoices TD.rootVoice {padding: 1px; width:0px}
}


 @media (min-width:791px) { /* tablet, landscape iPad, lo-res laptops and desktops */ 
    #rlanguage {position: relative; float:left; border:green solid 0px;}
    #iX-nav {position: relative; float:left; border:green solid 0px;}
    #infoemail {display:inline}
    #mainMenu {display:inline}
    #mobileMenu {display:none}
    #DeskTopOnly {display:none;}
    #MenuSpacing {width: 12px;}
    #iX-footer {width: 100%;  height:auto}
    .GreenMenuLine {background:#000}
    .rootVoices TD.selected {padding-right: 10px; padding-left:10px;}
    .rootVoices TD.rootVoice {padding-right: 10px; padding-left:10px; width:12px}
}


@media (min-width:1025px) { /* big landscape tablets, laptops, and desktops */ 
    #rlanguage {position: relative; float:left; border:blue solid 0px;}
    #iX-nav {position: relative; float:left; border:blue solid 0px;}
    #infoemail {display:inline}
    #mainMenu {display:inline}
    #mobileMenu {display:none}
    #DeskTopOnly {display:inline;}
    #MenuSpacing {width: 15px;}
    #iX-footer {width: 100%;  height:auto}
    .GreenMenuLine {background:#000}
    .rootVoices TD.selected {padding-right: 20px; padding-left:20px;}
    .rootVoices TD.rootVoice {padding-right: 20px; padding-left:20px; width:12px}
}


@media (min-width:1281px) { /* hi-res laptops and desktops */ 
    #rlanguage {position: relative; float:left; border:purple solid 0px;}
    #iX-nav {position: relative; float:left; border:purple solid 0px;}
    #infoemail {display:inline}
    #mainMenu {display:inline}
    #mobileMenu {display:none}
    #DeskTopOnly {display:inline;}
    #MenuSpacing {width: 18px;}
    #iX-footer {width: 100%; height:auto}
    .GreenMenuLine {background:#99cc33}
    .rootVoices TD.selected {padding-right: 24px; padding-left:24px;}
    .rootVoices TD.rootVoice {padding-right: 24px; padding-left:24px; width:12px
}

提前致谢!

【问题讨论】:

  • 使用这个视口 在这里解释:css-tricks.com/snippets/html/responsive-meta-tag
  • 是的,这是我做的第一件事。我编辑了问题,以便显示此字符串。这个答案似乎对我不起作用。
  • 在你的脑海中我看到了这个:,你的意思是重写它?
  • @Patrick:你能澄清一下到底是什么问题吗?我看到三个具有定义宽度的元素:#iX-footer,在所有断点处设置为 100%; #MenuSpacing,宽度在 1 到 18 像素之间;和 .rootVoices TD.rootVoice,介于 0 到 12 之间。其中哪一个的行为与您的预期不同?
  • 例如,在this test page 上,该框在我的 iPhone 5C 上显示为绿色,使用与您相同的媒体查询和元视口标签。

标签: html css mobile-safari


【解决方案1】:

将您的第一个@media 最小宽度设置为 300 像素。 Iphone 5 大约 314 像素,这就是您的媒体查询不起作用的原因。

【讨论】:

  • iPhone 5 的屏幕宽度为 320 像素,与之前的所有 iPhone 一样。
  • @Paul,你错了。对于这么小的屏幕,iPhone 5 的像素密度很高。如果将最小视图宽度设置为小于 314px 将解决他的问题。
  • 看起来像Wikipedia’s wrong too then。正如信息框中显示部分下所说,屏幕为 1,136 x 640 物理像素,分辨率为 2x,即320 CSS pixels (640/2 = 320)。
  • 哇,伙计,你想的那么聪明。你不明白。像素与像素密度是您应该关注的。我坚持我之前所说的。 314px for iphone5 你需要接受教育开始阅读quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html
  • 此外,它会解决他的问题。那么问题是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-24
  • 2021-01-09
  • 2016-02-21
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 2015-03-01
相关资源
最近更新 更多