浏览器在400px以下不能自适应缩放?

170

我正在编写一个液态样式表,它的效果很好。但有一件事情让我注意到,在Chrome浏览器下,我的浏览器窗口无法调整至小于400px,而在Firefox中,当我缩小到大约400px时,它就停止缩小并弹出一个水平滚动条。

当我在手机上打开网站时,它在大约320px左右看起来非常完美,所以我知道它确实可以缩放至低于400px。

我想知道这是浏览器/桌面问题还是我应该查看除了CSS之外的东西。我没有任何min-width声明,所以我不确定是什么原因导致这种情况。

再次强调,在桌面上,它会缩小至大约400px,然后停止,但当我在手机上打开它时,它会缩放至手机屏幕大小,大约320px... 我很好奇为什么它至少不能在桌面上缩小至320px。

-编辑-

另外,我不确定这是否重要,但Opera允许它缩小至几乎没有... 所以它能在Opera中工作,在Chrome或Firefox中不行... 有什么想法吗?


1
我记得Chrome以前可以折叠成一个小砖块。所以这是有意引入的功能。在当前的Chrome中,我发现窗口只能缩小到顶部图标行的大小。隐藏主页按钮或扩展图标可以让它变得更小一些。 - mrtsherman
7
这将涉及到您的CSS和标记语言。如果没有任何东西可供审核,那么就没有问题。胡乱猜测并不是一个有用的方法。在这种情况下,您需要自己进行调试。 - Jared Farrish
3
我相信这只是浏览器窗口自身的最小宽度,就像大多数程序都有允许自己调整大小的最小宽度一样。我的Chrome似乎不能调整到小于250像素的视口宽度。 - justisb
1
Chrome 33已将其设置回400像素。 - Sparkup
7
这句话的意思是“这将涉及到你的CSS和标记语言方面的具体内容”,但实际上并不是。 - Stijn de Witt
显示剩余12条评论
17个回答

276

Chrome无法在水平方向上缩小到400像素以下(OS X)或218像素以下(Windows),但我有一个非常简单的解决方法:

  1. 将Web检查器停靠到右侧而不是底部
  2. 调整检查器面板的大小 - 现在您可以将浏览器区域缩小到非常小(最小0像素)

更新: Chrome现在允许您在停靠到右侧时垂直排列检查器窗口!这真的改善了布局。

垂直面板布局设置

HTML和CSS面板非常适合,您甚至可以打开一个小型控制台面板。这使我完全从Firefox / Firebug转移到Chrome。

停靠到右侧的检查器,带有垂直面板布局

如果您想进一步,请查看 Web Inspector设置(齿轮图标,右下角),然后转到用户代理选项卡。您可以在此处将屏幕分辨率设置为所需值,甚至可以快速切换纵向和横向。

设备分辨率设置

更新: 这是我发现的另一个真正酷的工具。 http://lab.maltewassermann.com/viewport-resizer/


2
你真棒。当有一个适当的大检查器窗口时,调试小屏幕甚至更简单。 - aebersold
3
我认为这应该被接受作为答案。这个想法简单而聪明,你上面提到的指标覆盖的提示也很棒。还有你链接的书签工具也很不错! - marlar
1
我不知道Chrome开发者工具可以覆盖设备指标和用户代理...这太重要了。非常感谢(并点赞)分享! - fusion27
5
有人没有弄明白如何将开发者工具停靠在右侧吗?https://dev59.com/u2kw5IYBdhLWcg3wQoSm - Erti-Chris Eelmaa
1
提示:在多个选项卡中打开同一页,为您最重要的目标屏幕大小调整大小。 - Simon_Weaver
显示剩余4条评论

36

可能是由于您在浏览器中安装的插件造成的。请从工具栏中删除或隐藏所有插件图标,然后尝试重新调整大小。当存在插件时,浏览器只会调整地址栏并保持插件可见。

更新: 2013年7月14日


使用最新版本的Chrome,现在您可以重新调整地址栏大小,它将自动隐藏插件。


4
当浏览器安装了插件时,浏览器只会缩小到地址栏的大小并保持插件可见。这不是插件的副作用,而是因为地址栏旁边有插件图标,所以浏览器无法缩小到最小值。希望你能理解。 - Chamika Sandamal
2
在Chrome中删除所有插件图标对我没有解决问题,但nayan9的解决方案解决了这个问题。 - Andrew Shooner
31
即使禁用所有插件/扩展程序,Chrome浏览器的最小宽度仍为400像素。这并不是答案。 - Oisin Lavery
4
@ChamikaSandamal,这不正确。原po想要将他的窗口缩小至400像素以下,在Chrome中这是不可能的,因为浏览器有一个最小宽度为400像素的硬性限制。唯一实现原po所需效果的方法是采用Sherpanaut的回答。你的回答仅仅帮助用户接近400像素的硬性最小宽度,而这并不是原po想要的。 - Fred Stevens-Smith
2
@ChamikaSandamal,虽然它对您有效,但对我们其他人无效。这并不是针对您的问题。只是这个答案不能解决很多人的问题。 - DA.
显示剩余13条评论

25

我也曾经遇到同样的问题,但最终找到了一个简单的解决方案。我只是创建了一个包含打开新窗口链接的HTML文件:

<a href="javascript:window.open('your_url_here', '','width=320,height=480')">Open!</a>

这个新窗口只有地址栏,而且Chrome让我自由调整它的大小到111x80。


1
谈论一种用hack的方式来完成简单事情。 - Otto

21

nayan9的解决方案非常好用,而且可以将其保存为书签而无需创建HTML文件。在Chrome中,创建一个带有以下URL的新书签:

javascript:(function(){window.open('ANY_URL', '','width=320,height=480');})();

给它一个名字,比如“打开小窗口”之类的。这将使你可以在Chrome内轻松打开没有大小限制的窗口。请注意,仅仅复制这个到地址栏是行不通的- Chrome会去掉“javascript:”。


这是对我有效的答案。对于让Tweetdeck尽可能小的大小非常有用。 - Krug

11

如果您想缩小屏幕宽度以模拟不同的设备(为什么还要这样做呢?):

现在,Chrome浏览器的检查器中有一个仿真部分,通过点击顶部菜单栏中的小手机图标(在放大镜和元素之间)来激活:

Chrome Emulation icon

仿真模式允许您将视口大小设置为所有常见的移动屏幕大小,还有其他好用的功能,例如模拟触摸、地理位置和加速度计输入:

enter image description here


非常棒,我不知道那个功能...最终我可以摆脱用户代理切换器,并正确地模拟移动设备,谢谢!!+10 对此。 - andreszs
此功能已被“切换设备工具栏”所取代。https://dev59.com/6GEi5IYBdhLWcg3wjcvE#44194243 - Nate Anderson

8

除了nayan9和drinkdecaf所说的,你可以将document.URL放入window.open的调用中,以在320窗口中查看当前正在查看的页面。如果你希望看到滚动条,可能需要增加一些宽度。

javascript:(function(){window.open(document.URL, '','width=320,height=480');})();

5

我很懒,为了让它更简单,让书签工具请求用户输入尺寸 :-D

javascript: (function() {var width = prompt('Enter window width:', '320');var height = prompt('Enter window height:','480');var url = prompt('Enter window URL');if (url.indexOf(':') < 0) {url = 'http://'+url;} window.open(url, '','width='+width+',height='+height);})()

4
Chrome的开发者工具已经远远超过了这些答案发布时的水平。现在解决这个问题的最佳方法是使用内置于Chrome中的模拟器。
要使用模拟器,请打开DevTools(按F12),然后单击以下图标以切换Device Toolbar: The devtools button 然后,您可以模拟任何移动设备或视口大小。

3
在Chrome浏览器中,右上角插件的图标可能会引起问题。
->将地址栏(输入URL的地方)拖动到最大宽度(将右边缘的条拖向右侧),或者禁用这些图标。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接