html - 仅限 iPad 的横向 safari 媒体查询

标签 html css ipad safari media-queries

当使用 CSS 时,我可以使用 css 将我的元素与 Chrome 正确对齐。在 chrome inspector-> ipad view 中,一切看起来都应该是这样。但是当我在实际的 iPad 上测试它时,一些 CSS 没有应用。我发现 ipad 特定的 CSS 媒体查询如下,

** /* Safari 7.1+ */ **
_::-webkit-full-page-media, _:future, :root .my-class {
    padding-right: 0;
}


**/* Safari 10.1+ */**
@media not all and (min-resolution:.001dpcm) { @media
  {
   .my-class {
    padding-bottom: 0;
  }
  }}


  **/* Safari 6.1-10.0*/**
@media screen and (min-color-index:0) 
and(-webkit-min-device-pixel-ratio:0) { @media
{
    .my_class {
    padding-bottom: 0;
  } 
}}

问题是,虽然他们在纵向模式下工作正常,但我没有指定的方法将 CSS 应用到横向模式。如何在 iOS 上的真实 iPad 设备/Safari 中使用横向模式的媒体查询?不影响任何其他浏览器?

更新

我不是在寻找标准的媒体查询,例如,

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

横向模式

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

最佳答案

你要找的东西不能单独使用媒体查询来实现,你必须使用 Javascript 来查找 Ipad Safari 用户代理:

function isiPad() {
  return (
    (navigator.userAgent.toLowerCase().indexOf(/iPad/i) > -1)
  );
}

使用此 Javascript,您可以检测设备是否为 Ipad,并在 body 上应用一个类 - 在以下示例中使用 Jquery:

if (isIpad) {
  $('body').addClass('isIpad');
}

然后,按照上面的建议编写媒体查询:

@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : landscape) {
   .isiPad .myclass {
    /*styles*/
  }
}

虽然我明白为什么需要 iPad 差异化,但我无法理解为什么需要 Safari 差异化 - 因此,用户会使用 Safari 访问相同的网页/网络应用程序,并看到与 Chrome 或 Opera 或其他不同的东西浏览器? :/UX-wise 听起来不对。

关于html - 仅限 iPad 的横向 safari 媒体查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47656087/

相关文章:

javascript - CSS 不适用于(在第一页之后)尝试使用 javascript 打印 html 页面

html - 百分比高度不起作用,以像素为单位

iphone - 是否可以在不越狱的情况下记录 iPhone/iPad 屏幕上发生的事情?

html - 电子邮件 html 框架? (又名电子邮件 Bootstrap )

php - 表单和 PHP 在一个文件中

php - 使用 Dompdf 的 While 循环输出表

iphone - 如何在iOS应用程序中根据文件夹结构中的格式对文件进行分组?

javascript - 使用 nth-child CSS 定位异常数字

css - 两个元素 `display: inline`和 `display: inline-block`不在同一行

html - UIWebView 移动站点宽度