@Media最小宽度和最大宽度


225

我有这个@media设置:

HTML

<head>
  <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>

CSS

@media screen and (min-width: 769px) {
    /* STYLES HERE */
}

@media screen and (min-device-width: 481px) and (max-device-width: 768px) { 
    /* STYLES HERE */
}

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE */
}

通过此设置,它可以在iPhone上运行,但不能在浏览器中运行。

是因为我已经device在meta中,也许已经在max-width:480px


1
问题是-默认样式将适用于大于769像素的屏幕。
Gurpreet Singh

只是删除了@media screen and (min-width:769px){周围的普通浏览器的风格
佐尔坦·托特

你是什​​么意思 我想我可能会解决。首先,问题是当我使用max-device调整浏览器大小时,该浏览器可以在手机上使用,但不能在浏览器中使用,而没有“ device”的浏览器可以在两者上使用。
rallybilen 2012年

因此,基本上没有“设备”,它就可以在移动/浏览器中使用,但是当我添加设备时,我无法在浏览器中看到它\
rallybilen 2012年

1
可能980px不是960因为浏览器大小以结尾980px

Answers:


339

我发现最好的方法是为较旧的浏览器编写默认CSS,因为较旧的浏览器包括5.5、6、7和8。无法读取@media。当我使用@media时,我会像这样使用它:

<style type="text/css">
    /* default styles here for older browsers. 
       I tend to go for a 600px - 960px width max but using percentages
    */
    @media only screen and (min-width: 960px) {
        /* styles for browsers larger than 960px; */
    }
    @media only screen and (min-width: 1440px) {
        /* styles for browsers larger than 1440px; */
    }
    @media only screen and (min-width: 2000px) {
        /* for sumo sized (mac) screens */
    }
    @media only screen and (max-device-width: 480px) {
       /* styles for mobile browsers smaller than 480px; (iPhone) */
    }
    @media only screen and (device-width: 768px) {
       /* default iPad screens */
    }
    /* different techniques for iPad screening */
    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) {
      /* For portrait layouts only */
    }

    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) {
      /* For landscape layouts only */
    }
</style>

但是,您可以使用@media进行任何操作,这只是为所有浏览器构建样式时最适合我的示例。

iPad CSS规范。

也!如果您正在寻找可印刷性,可以使用@media print{}


16
为什么要放置“ mac”屏幕?不仅可以拥有大型高分辨率屏幕的“惊人” Mac!
路加福音2014年

38

根本的问题是使用max-device-widthvs plain old max-width

使用“设备”关键字的目标是屏幕的物理尺寸,而不是浏览器窗口的宽度。

例如:

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE for DEVICES with physical max-screen width of 480px */
}

@media only screen and (max-width: 480px) {
    /* STYLES HERE for BROWSER WINDOWS with a max-width of 480px. 
       This will work on desktops when the window is narrowed.  */
}

11

如果网站在小型设备上的行为(例如桌面屏幕),那么您必须先将此meta标签放入标头中

<meta name="viewport" content="width=device-width, initial-scale=1">

对于媒体查询,您可以将其设置为

这将覆盖您所有的手机/手机宽度

    @media only screen and (min-width: 200px) and (max-width: 767px)  {
    //Put your CSS here for 200px to 767px width devices (cover all mobile portrait width //

    }

对于iPad和iPad Pro,您必须使用

    @media only screen and (min-width: 768px) and (max-width: 1024px)  {
    //Put your CSS here for 768px to 1024px width devices(covers all iPad portrait width //

    }

如果要为横向模式添加CSS,则可以添加

和(方向:风景)

  @media only screen and (min-width: 200px) and (max-width: 767px) and (orientation : landscape) {
        //Put your CSS here for 200px to 767px width devices (cover all mobile landscape width //

        }


0

对于某些iPhone,您必须这样放置视口

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, shrink-to-fit=no, user-scalable=0" />
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.