我目前正在尝试创建适当的@media 查询以针对 3 个不同的设备组:手机、平板电脑和台式机
我在 SASS 中使用以下 mixin 来完成它:
@mixin respond-to($media) {
@if $media == phones {
@media only screen and (max-width: 320px) { @content; }
}
@else if $media == tablets {
@media only screen and (min-width: 321px) and (max-width: 979px) { @content; }
}
@else if $media == desktops {
@media only screen and (min-width: 980px) { @content; }
}
}
这实际上适用于我身边的大多数设备。但是我在这里有一台 iPad 2,并使用 Safari 尝试了该网站,然后发生了以下情况:
在纵向模式下一切都很好。它应该由“平板电脑”组处理。在横向模式下(当它有 1024px 宽度时)它仍然会落入平板电脑组。但它不应该因为我的布局在 980 像素以上的屏幕上完美运行。
我发现 iOS 设备总是报告它们的屏幕尺寸,因为它们处于纵向模式(实际上是一个愚蠢的想法),在我的情况下是 768x1024。使用上面的媒体查询,当它处于横向时,它永远不会在非平板电脑部分结束。
有没有办法从平板电脑查询中排除横向模式下的 ipad 2 而不会干扰其他设备(例如行为正确的机器人)?
否则,我必须使用自己想要避免的严格媒体查询分别针对每个设备。