乐趣区

响应式开发

现在响应式没有以前那么火了,因为响应式有一个缺点,它需要将所有的资源进行加载,即使是没有显示的,很浪费资源,影响用户体验,但是日常开发中,我们仍需要使用它进行一些开发。

媒体查询 (@media)

媒体类型

  • all 所有设备
  • print 打印机设备
  • screen 彩色的电脑屏幕
  • speech 听觉设备(针对有听力障碍的人士,可以把页面的内容以语音的方式呈现的设备)

注意:tty、tv、projection、handheld、braille、embossed、aural 等几种类型在媒体查询 4 中已经废弃

媒体特性

  • width 宽度

    • min-width 最小宽度,宽度只能比这个值大
  • height 高度

    • max-height 最大高度,高度只能比这个值小
  • orientation 方向,有下面两个值

    • landscape 宽度大于高度(横屏)
    • portrait 高度大于宽度(竖屏)
  • aspect-ratio 宽高比
  • -webkit-device-pixel-ratio 像素比(webkit 内核私有的属性)

逻辑运算符

  • and 合并多个媒体类型(并且的意思)
/* 所有设备、宽度必需大于 700px、横屏,这三个条件同时满足才为 true */
            @media (min-width:700px) and (orientation:landscape){
                div{background: green;}
            }
  • , 匹配某个媒体查询(或者的意思)
/* 屏幕尺寸要小于 800px, 横屏,这两个只要有一个满足,整个条件就会满足 */
            @media (max-width:800px),(orientation:landscape){
                div{background: pink;}
            }
  • not 对媒体查询结果取反 (不能单独使用,后面必需是复合语句)
/* 屏幕的尺寸大于 800,这个条件才能成立 */
            @media not all and (max-width:800px){
                div{background: blue;}
            }
  • only 仅在媒体查询匹配成功后应用样式(防范老旧浏览器)
/* 彩色的屏幕,宽度大于 1000px,这两个条件同时满足,整体条件才满足 */
            @media only screen and (min-width:1000px){
                div{background: grey;}
            }

响应式引入样式

  • 第一种是直接将响应式和普通样式写在一起
  • 第二种方法是将不同尺寸的样式分开,然后按需引入
        <link rel="stylesheet" href="css/200.css" media="all and (min-width:200px)">
        <link rel="stylesheet" href="css/400.css" media="(min-width:400px)">
        <link rel="stylesheet" href="css/600.css" media="(min-width:600px)">
        <link rel="stylesheet" href="css/800.css" media="(min-width:800px)">
        <link rel="stylesheet" href="css/1000.css" media="(min-width:1000px)">
退出移动版