物化网格s12在移动视图中不起作用

Hit*_*mar 2 materialize

我正在尝试使用ruby on rails建立一个网站,它将在不同的屏幕尺寸上具有不同的样式.我正在使用materializecss这样做.

面临以下问题:

<div class="row">
  <div class="col m2 l3 blank"></div>
  <div class="col s12 m8 l6 yield">
    <%= yield %>
  </div>
  <div class="col m2 l3 blank"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

'div blank'用于'div yield'左右两侧的空白区域

我希望div.yield在大屏幕(笔记本电脑)上占50%的屏幕,中型屏幕(平板电脑)占66%,小屏幕占用100%的屏幕(手机)

当我在dekstop上的Chrome浏览器上测试时,我得到了理想的结果.在窗口调整大小时,'div yield'在宽度<600px时采用100%屏幕尺寸,在宽度> 992px时采用50%.

一切都很好,直到现在.

但是当我切换到铬的移动仿真模式时,'div yield'不接受宽度<600px的s12类,而是为宽度<600px服务m8类.

以下是两个结果的屏幕截图

左边一个是普通模式下的铬浏览器,宽度减少到357px.(这是我想要的结果

右边一个是移动仿真模式下的铬浏览器,宽度设置为357px.在这个m8类中,而不是类s12.(不想要)

截图

为什么会发生这种情况,以及如何解决这个问题?

Nik*_*sen 10

我只是看了你的链接,问题是移动设备的实际屏幕宽度,不一定与布局视口的宽度相匹配.因此,例如在iPhone的情况下,它为每个"css像素"使用2个屏幕像素,有效地使您的媒体查询"相信"屏幕宽度为750像素(嗯,实际上,您只是希望这些像素是独立的的设备).这就是它没有选择小网格尺寸的原因.您必须指示页面与设备无关的像素中的屏幕宽度匹配,并且使用viewport元标记的简单方法是这样做.因此,如果您将以下内容添加到您的中<head>,您的响应式设计将按预期工作:

<meta name="viewport" content="width=device-width, initial-scale=1.0">
Run Code Online (Sandbox Code Playgroud)