• CSS3的媒体查询


    CSS中的Media Query(媒介查询)是什么?

        作为CSS3规范的一部分,媒体查询可以针对不同的屏幕尺寸设置不同的样式,它为每种类型的用户提供了最佳的体验,网站在任何尺寸设置下都能有最佳的显示效果。
        通过不同的媒体类型和条件定义样式表规则。
        媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件。
        媒体查询的大部分媒体特性都接受min和max用于表达“大于或等于”和“小与或等于”。如:width会有min-width和max-width
        Media Queries功能是非常强大的,他可以让你定制不同的分辨率和设备,并在不改变内容的情况下,让你制作的web页面在不同的分辨率和设备下都能显示正常,并且不会因此而丢失样式

    先看一个例子:

    页面的布局会根据浏览器的尺寸在1列,2列和4列之间切换
    http://colly.com/

    媒体查询实例
        通过此实例观察媒体查询的功能后,再来分析语法
        body{background-color:grey; }   //正常情况是灰色

    @media screen and (max- 768px) { //宽度小于768px的时候被应用  移动端
              .class { background: #ccc; }  }            

    @media screen and (min- 768px) and (max- 992px) {  //宽度在 768px 和 992px 之间的时候被应用
              .class {  background: #333;  }   }

    @media screen and (min- 992px) {//宽度大于 992px 的时候被应用 pc端
              .class {background: #666;}  }                                    

     注意:这三个媒体查询这样子排序有利于代码结构清晰

     

    使用Media Query的基本语法
    @media mediatype and|not|only (media feature) {
           CSS-Code;
     }
        以上通过@media定义媒体查询,mediatype代表了设备类型,目前只有screen最常用,and|not|only为条件,media feature为媒体特点,通常是写设备的宽度。
        @media screen and (max-960px) 的意思为:当前设备为screen(电脑、平板、手机)时,并且最大宽度为960时,显示的样式。
    媒体类型有:
        all 所有设备
        print    用于打印机和打印预览
        screen    用于电脑屏幕,平板电脑,智能手机等
        speech    应用于屏幕阅读器等发声设备

    加载媒体查询的最佳方法:
        使用多个独立的CSS文件会增加HTTP请求的数量,使页面加载变慢。所以我们的媒体查询样式的文件尽量放在一个里面,以注释加以区分。

    阻止移动浏览器自动调整页面大小
        ios和android浏览器都基于webkit内核,这两种浏览器和许多其它浏览器都支持用viewport meta元素覆盖默认的画布缩放设置。只需要在HTML的<head>标签中插入一个<meta>标签,meta标签中可以设置具体的宽度或缩放比。下面为示例

    <meta name="viewport"  content="initial-scale=1.0,width=device-width" />
        name=”viewport”  说明此meta标签定义视口的属性
        initial-scale=2.0   意思是将页面放大两倍
        width=device-width   告诉浏览器页面的宽度等于设备宽度
        
        允许用户将页面最大放大至设备宽度3倍,最小压缩至设备宽度的一半
    <meta name=”viewport” content=”width=device-width, maximum-scale=3, minimum-scale=0.5” />
        
        禁止用户缩放,可以在混合APP时,为了使html页面更逼真,使页面无法缩放
    <meta name=”viewport” content=”initial-scale=1.0, user-scalable=no” />   //user-scalable=no是禁止缩放

     

    ###css3媒体查询
        css3媒体查询是响应式方案核心
           
    ###媒体类型
           all                  所有媒体(默认值)
           screen           彩色屏幕
           print              打印预览
           
           projection     手持设备
           tv                   电视
           braille           盲文触觉设备
           embossed     盲文打印机
           speech        “听觉”类似的媒体设备
           tty                 不适用像素的设备
           

    ###媒体属性
        width               (可加max min前缀)
        height               (可加max min前缀)
        device-width       (可加max min前缀)
        device-pixel-ratio(可加max min前缀,需要加webkit前缀)
        orientation   portrait竖屏
                      landscape横屏

    ###操作符,关键字 (only,and,(,or),not)
                   only:
                       防止老旧的浏览器  不支持带媒体属性的查询而应用到给定的样式.
                       @media only screen and (min-800px ){
                                           规则;
                                           规则
                       }
                       @media  screen and (min-800px ){
                                           规则;
                                           规则
                       }
                       在老款的浏览器下
                           @media only    --->    因为没有only这种设备 规则被忽略
                           @media screen --->   因为有screen这种设备而且老浏览器会忽略带媒体属性的查询
                       
                       建议在每次抒写media query的时候带上only
               
                   and:
                       连接媒体属性 、连接媒体类型
                       对于所有的连接选项都要匹配成功才能应用规则
                   
                   or(,) : 和and相似
                       对于所有的连接选项只要匹配成功一个就能应用规则
                   
                   not:取反


     

  • 相关阅读:
    WNMP 环境搭建
    单元测试工具 unitils
    [转] 利用git钩子,使用python语言获取提交的文件列表
    Spring AOP理解
    JavaScript Cookies使用
    [转]SURF算法解析
    [转]四旋翼飞行器的姿态解算小知识点
    [转]C++内存管理
    学习SQL笔记
    华为软件类常见面试问题集锦
  • 原文地址:https://www.cnblogs.com/xiaohaodeboke/p/12536829.html
Copyright © 2020-2023  润新知