自适应@media与@media screen 关系

1,585 阅读3分钟

@media与@media screen打印网页区别

如果css需要用在打印设备里,那么就用@media ,否则,就用@media  screen。
不过这这个也不一定,其实如果把“screen”换为“print”,写为@media  print,那么该css就可用到打印设备上了,但要注意,@media  print声明的css只能在打印设备上有效哦。

@media only screen and

only(限定某种设备)
screen 是媒体类型里的一种
and 被称为关键字,其他关键字还包括 not(排除某种设备)

/* 常用类型 */
类型 解释
all 所有设备
braille 盲文
embossed 盲文打印
handheld 手持设备
print 文档打印或打印预览模式
projection 项目演示,比如幻灯
screen 彩色电脑屏幕
speech 演讲
tty 固定字母间距的网格的媒体,比如电传打字机
tv 电视

    @media all and (min-width:xxx) and (max-width:xxx){
    /*这段查询的all是针对所有设备(有些设备不一定是屏幕,也许是打字机,盲人阅读器)*/
    }
    @media only screen and (min-width:xxx) and (max-width:xxx){
    /*上面针对了所有设备,这段是只(only)针对彩色屏幕设备*/
    }
    
    
    media="only screen and (min-width: 401px) and (max-width: 600px)"
    /* 在支持媒体查询的浏览器中等于*/
    media="screen and (min-width: 401px) and (max-width: 600px)"
     
    /*在不支持媒体查询的浏览器中解析到带only的媒体查询时,会将only视为媒体类型。(由于没有only这种媒体类型,因此将不会被应用)*/
    media="only"
     
    /*如果不带only,在不支持媒体查询的浏览器中*/
    media="screen and (min-width: 401px) and (max-width: 600px)"
    /*将被解析为screen,将会被应用到屏幕类型设备上*/
    media="screen"
    
    
screen一般用的比较多,下面是我自己的尝试,列出常用的设备的尺寸,然后给页面分了几个尺寸的版本。

/* 常用设备 */
设备 屏幕尺寸
显示器 1280 x 800
ipad 1024 x 768
Android 800 x 480
iPhone 640 x 960



两种方式

1
<link rel="stylesheet" type="text/css" href="css.css" media="screen and (min-width: 300px) and (max-width: 700px)">
意思是当屏幕的宽度大于600小于800时,应用的css

2.

@media screen and (max-width: 900px) {  /*当屏幕尺寸小于600px时,应用下面的CSS样式*/
  .class {
    background: #ccc;
  }
}

注意: device-aspect-ratio

device-aspect-ratio可以用来适配特定屏幕长宽比的设备,这也是一个很有用的属性,比如,我们的页面想要对长宽比为4:3的普通屏幕定义一种样式,然后对于16:9和16:10的宽屏,定义另一种样式,比如自适应宽度和固定宽度:

@media only screen and (device-aspect-ratio:4/3)

注意:如果 让@media 兼容IE引入 
respond.min.js或者respond.src.js都可以使用
<script src="js/respond.js" ></script>  
 <script src="js/html5shiv.min.js" ></script>

这两个文件  在网上可以下载
    <!--https://cdn.bootcss.com/respond.js/1.4.2/respond.js  解决@media-->
        <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>

总结

    <!doctype html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="author" content="Jophy" />
        <title>ie8</title>
        <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
        <link rel="stylesheet" href="bootstrap/css/style.css">
        <!--[if lte IE 9]>
        <script src="bootstrap/js/respond.min.js"></script>
        <script src="bootstrap/js/html5.js"></script>
        <![endif]-->
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.js"></script>
        <script src="bootstrap/js/bootstrap.min.js"></script>
    </head>
    <body>
    </body>
    </html>
    
        <script src="js/respond.js"></script>
        <script src="js/html5shiv.min.js"></script>