我在继承的CSS文件中发现了这段代码,但我不能从中找到任何意义:

@media screen and (max-width: 1024px){
    img.bg {
        left: 50%;
        margin-left: -512px; }
}

具体来说,第一行发生了什么?


它限制了在屏幕上定义的样式(例如,不是打印或其他媒体),并进一步限制了宽度为1024px或更小的视口的范围。

http://www.css3.info/preview/media-queries/


它说:当页面以最大1024像素宽度的分辨率呈现在屏幕上时,然后应用下面的规则。

正如你可能已经知道的,事实上你可以将一些CSS定位到一种媒体类型,可以是手持、屏幕、打印机等。

详情请看这里。


这就是媒体查询。它允许您将部分CSS规则仅应用于特定配置上的特定设备。


这是一个媒体问题。除非浏览器通过了其中包含的测试,否则它将阻止其中的CSS运行。

此媒体查询中的测试是:

@media screen — The browser identifies itself as being in the “screen” category. This roughly means the browser considers itself desktop-class — as opposed to e.g. an older mobile phone browser (note that the iPhone, and other smartphone browsers, do identify themselves as being in the screen category), or a screenreader — and that it’s displaying the page on-screen, rather than printing it. max-width: 1024px — the width of the browser window (including the scroll bar) is 1024 pixels or less. (CSS pixels, not device pixels.)

第二个测试表明,这是为了将CSS限制在iPad、iPhone和类似设备上(因为一些较老的浏览器在媒体查询中不支持max-width,而且许多桌面浏览器的运行宽度超过1024像素)。

但是,在支持max-width媒体查询的浏览器中,它也适用于宽度小于1024像素的桌面浏览器窗口。

下面是媒体查询规范,它是相当可读的:

http://www.w3.org/TR/css3-mediaqueries/


这意味着如果屏幕大小是1024,那么只适用于CSS规则。


如果你的媒体查询条件为真,那么你的CSS与该条件将工作。这意味着CSS在你的媒体查询的条件像素大小将起作用,否则,如果条件将失败,这意味着如果设备的宽度大于1024px,那么你的CSS将无法工作。因为您的媒体查询条件为假。

max-width是在此宽度之前的最大CSS限制。


在我的例子中,当浏览器有800px或更少的时候,我想把我的logo放在网站的中央,然后我使用@media标签来做到这一点:

@media screen and (max-width: 800px) {
  #logo {
    float: none;
    margin: 0;
    text-align: center;
    display: block;
    width: auto;
  }
}

它为我工作,希望有人发现这个解决方案有用。更多信息请看这个。


同样值得注意的是,你可以使用“em”和“px”——博客和基于文本的网站这样做,因为浏览器会根据文本内容做出布局决定。

在Wordpress 2016上,我想让我的标语在手机和台式机上都能显示,所以我把它放在我的child theme style.css中

@media screen and (max-width:59em){
    p.site-description {
        display:    block;
    }
}

它针对一些特定的功能来执行一些其他的代码……

例如:

@media all and (max-width: 600px) {
  .navigation {
    -webkit-flex-flow: column wrap;
    flex-flow: column wrap;
    padding: 0;

  }

上面的代码片段说,如果运行这个程序的设备的屏幕宽度为600px或小于600px,在这种情况下,我们的程序必须执行这一部分。