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

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

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


当前回答

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

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

其他回答

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

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

例如:

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

  }

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

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

正如你可能已经知道的,事实上你可以将一些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/

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

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