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

媒体查询(@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)">

RickyLong
501 声望27 粉丝

所有事情都有一套底层的方法论,主要找到关键点,然后刻意练习,没有刻意练习,做事情只是低效率的重复


引用和评论

0 条评论