【问题标题】:Media Query Issue on landscape orientation横向媒体查询问题
【发布时间】:2014-07-19 22:21:35
【问题描述】:

我正在开发一个响应式网站,并且我正在应用以下媒体 CSS 查询:

查询1:

@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 568px) 
and (orientation : landscape) { /*My Styling*/}

查询2:

@Media screen and (max-width:768px) { /*My Styling*/ }

查询3:

@Media screen and (max-width:1024px) { /*My Styling*/ }

我也在做这个元语句:

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1, user-scalable=no" />

由于某种原因,第二个和第三个查询应用得很好,但是当我测试第一个查询(实际上针对 iPhone 横向)时,没有应用定义的样式。

【问题讨论】:

  • 尝试在第二个和第三个查询等媒体大写字母中添加“M”
  • 您确定样式没有应用,而是被您的第二个和第三个媒体查询覆盖了吗?
  • @JamesDonnelly 不,就像我将浏览器设置为该宽度时一样,并检查它们在呈现的 css 列表中显示的元素。

标签: css responsive-design media-queries


【解决方案1】:

由于您没有为其他查询指定最小宽度,您应该像这样组织您的 css:

查询3

查询2

查询1

这样您的最后一级 css 将被正确应用,而不会被您的其他查询覆盖。

在 chrome 中以横向方式模拟 iphone 设备按预期工作: http://www.bootply.com/tumubw4Ztq

@Media screen and (max-width:1024px) { body{background-color:red;}}
@Media screen and (max-width:768px) { body{background-color:yellow;}}
@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 568px) 
and (orientation : landscape) { body{
 background-color:blue;}}

【讨论】:

  • 当我实施您的上述建议时,由于某种原因,当我更改查询的顺序时,它们没有被应用:S ... 但是,当我按此顺序放置 Query1、Query2、Query3 - 查询 2 和 3 有效,但不是 1...可能是什么原因?
  • @user3690480 你肯定会这样覆盖你的样式,你能用某种演示将你的完整css粘贴到小提琴(或codepen或botply或其他任何东西)上,以便我调试吗?
  • @user3690480 需要 DOM 元素,否则我无法预览结果,似乎还缺少 1 个查询并且 css 格式不正确
猜你喜欢
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 2018-05-19
  • 2013-04-03
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多