@media屏幕和(最大宽度:1024像素)在CSS中是什么意思?


245

我在继承的CSS文件中找到了这段代码,但是我觉得毫无意义:

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

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

Answers:


306

那是媒体查询。除非浏览器通过其中包含的测试,否则它将阻止运行其中的CSS。

此媒体查询中的测试是:

  1. @media screen—浏览器将自己标识为“屏幕”类别。这大致意味着浏览器认为自己是台式机类,而不是例如较旧的手机浏览器(请注意,iPhone和其他智能手机浏览器确实将自己标识为屏幕类别)或屏幕阅读器,并且该浏览器正在显示屏幕上的页面,而不是打印页面。

  2. max-width: 1024px—浏览器窗口(包括滚动条)的宽度为1024像素或更小。(CSS像素,而不是设备像素。)

第二项测试表明,此举旨在将CSS限制为iPad,iPhone和类似设备(因为某些旧版浏览器不支持max-width媒体查询,并且许多台式机浏览器的运行宽度超过1024像素)。

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

这是Media Queries规范,很容易阅读:


如果我的屏幕宽度大于1200像素,如何在@media屏幕中指定
sanoj lawrence 2015年

2
您可以使用(min-width:1200px)而不是使用max-width,也可以将其作为常规CSS而不使用媒体查询,并在将其用于较小的设备时使用'max-width'覆盖它
MintWelsh

在重新调整视口大小时,是否有一种方法可以仅在台式机上实现样式(根本不能移动)?因此,如果我手动将浏览器的大小调整为“最大宽度720px宽”,它将使用media语句在不移动的台式机上检测到您,例如,现在您的分辨率为720px以下?
wharfdale

@ JordanC26:看起来您在问一个问题,为此,您想要屏幕右上角附近的“问问题”按钮。不过,在使用该功能之前,您可能需要定义“桌面”和“移动”的含义。是Microsoft Surface移动设备还是台式机?为什么?将来尚未发明的设备呢?
Paul D. Waite


10

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

您可能实际上已经知道,您可以将某些CSS定位到一种媒体类型,该媒体类型可以是手持设备,屏幕,打印机等之一。

看看这里的细节..


3
我不会假设他知道这一点。
jcolebrand

6

就我而言,我想在浏览器800px不多的情况下将徽标放在网站的中心,然后使用@media标记来做到这一点:

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

它对我有用,希望有人觉得这个解决方案有用。:)有关更多信息,请参见this




1

如果您的媒体查询条件为true,则具有该条件的CSS将起作用。这意味着媒体查询条件像素大小内的CSS将生效,否则,如果条件失败,则意味着设备的宽度大于1024px而不是CSS将不起作用。因为媒体查询条件为false。

max-width 是您达到该宽度之前的最大CSS限制。


0

同样值得一提的是,您可以同时使用'em'和'px'-博客和基于文本的网站都可以这样做,因为浏览器随后会根据文本内容做出布局决策。

在Wordpress 26上,我希望我的标语既可以在手机上也可以在台式机上显示,所以我将其放在子主题style.css中。

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

0

它针对某些指定功能来执行其他一些代码...

例如:

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

  }

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

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.