热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎样理解CSS3中的MediaQueries

本篇文章为大家展示了怎样理解CSS3中的MediaQueries,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、M

本篇文章为大家展示了怎样理解CSS3中的Media Queries,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、Media Queries 支持的属性
怎样理解CSS3中的Media Queries

怎样理解CSS3中的Media Queries

二、关键字
and - 结合多个媒体查询 not - 排除某种制定的媒体类型 only - 用来定某种特定的媒体类型

三、引用样式示例

CSS Code复制内容到剪贴板

  1.    
       
       
       
    

四、内联样式示例

CSS Code复制内容到剪贴板

@media screen and (min-width: 980px) {   
    //css code  
}   
@screen and (min-width:768px) and (max-width:980px) {   
    //css code  
}   
@screen and (min-width:480) and (max-width: 768px) {   
    //css code  
}   
@screen and (max-width:320px) {   
    //css code  
}   
  
@media screen and (max-device-width: 480px) {   
    //max-device-width等于480px  
}   
@media screen and (device-aspect-ratio: 16/9), screen and (device-aspect-ratio: 16/10) {   
    //设备宽高比   
}   
@media all and (orientation:portrait) {   
    //竖屏   
}   
@media all and (orientation:landscape) {   
    //横屏   
}

五、I8的兼容性问题解决
问题根源:
在项目的CSS文件中采用了media这东东来根据视窗的大小自动调整布局,但是,但是IE8及以下版本浏览器不支持CSS3 media queries,也就是@media screen and (max-width: 900px) 里面的css代码没有执行,

CSS Code复制内容到剪贴板

@media screen and (max-width: 900px) {   
  ...   
}

这如何是好啊,网上倒是有不少人提出解决方法,最简单的方法就是:
IE8和之前的浏览器不支持CSS3 media queries,你可以在页面中添加css3-mediaqueries.js来解决这个问题。

XML/HTML Code复制内容到剪贴板

原来如此,还挺简单嘛,结果大失所望啊,项目中怎么试怎么就不行呢,还望试过可行的同仁点拨点拨啊,没办法只能采用另一种稍微复杂些的方法,也是从网上学来,这里要考虑两个问题,一是只有IE8及其低版本才做此处理,二是只有浏览器缩小到某一个大小范围后才做此处理。方法如下:
原理:采用jquery,其实不懂,会用就行,然后在html中根据需要来改变对应的CSS文件
解决方法:
在所有页面的共用js文件后面添加如下代码:

Javascript Code复制内容到剪贴板

  1. /*Adjust the layout in IE8 and lower than IE8 when the browser is narrow*/  
    function processLowerIENavigate()   
    {   
       var isIE = document.all ? 1 : 0;   
       if (isIE == 1)   
       {   
           if(navigator.userAgent.indexOf("MSIE7.0") > 0 || navigator.userAgent.indexOf("MSIE 8.0") > 0)   
           {     
        //  var doc=document;    
               var link=document.createElement("link");   
               link.setAttribute("rel", "stylesheet");   
               link.setAttribute("type", "text/css");   
               link.setAttribute("id", "size-stylesheet");   
               link.setAttribute("href", "");   
         
               var heads = document.getElementsByTagName("head");   
               if(heads.length)   
                   heads[0].appendChild(link);   
               else  
                   document.documentElement.appendChild(link);   
      
               document.write("");   
               document.write("");   
         
           }   
       }    
    }   
    var lowerIE8 = processLowerIENavigate();   
      
    media_screen.js文件内容如下,直接从网上copy:   
    function adjustStyle(width) {   
        width = parseInt(width);   
        if (width < 902) {   
    //alert("<900");   
    //alert(width);   
            $("#size-stylesheet").attr("href", "navigateLowerIE8.css");   
        } else {   
          // alert(">900");   
      //alert(width);   
           $("#size-stylesheet").attr("href", "");    
        }   
    }   
      
    $(function() {   
        adjustStyle($(this).width());   
        $(window).resize(function() {   
            adjustStyle($(this).width());   
        });   
    });

navigateLowerIE8.css文件就是IE8其低版本浏览器在缩小时的页面布局了。OK,一切都确实搞定。

上述内容就是怎样理解CSS3中的Media Queries,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程笔记行业资讯频道。


推荐阅读
  • 拖拉切割直线 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 深入解析Android Activity生命周期
    本文详细探讨了Android中Activity的生命周期,通过实例代码和详细的步骤说明,帮助开发者更好地理解和掌握Activity各个阶段的行为。 ... [详细]
  • 本文探讨了Lua中元表和元方法的使用,通过具体的代码示例展示了如何利用这些特性来实现类似C语言中的运算符重载功能。 ... [详细]
  • 四月个人任务:Linux基础操作与网络管理
    本文介绍了两项主要任务:编写一个脚本来检测192.168.1.0/24子网中当前在线的IP地址,以及如何在Linux系统中挂载Windows网络共享目录。通过具体步骤和代码示例,帮助读者理解和掌握相关技能。 ... [详细]
  • 本文将详细介绍如何实现类似于CSDN博客的页面返回顶部功能,通过调整返回速度和图标显示条件,使用户体验更加流畅。适合前端开发者参考学习。 ... [详细]
  • 本文介绍了在Android Studio中通过代码和配置文件两种方法来移除Activity的标题栏,并讨论了当Activity继承自AppCompatActivity时的特殊处理方法。 ... [详细]
  • 微信小程序支付官方参数小程序中代码后端发起支付代码支付回调官方参数文档地址:https:developers.weixin.qq.comminiprogramdeva ... [详细]
  • 本文探讨了SQLAlchemy ORM框架中如何利用外键和关系(relationship)来建立表间联系,简化复杂的查询操作。通过示例代码详细解释了relationship的定义、使用方法及其与外键的相互作用。 ... [详细]
  • 本文深入探讨了HTML5中十五个重要的新特性,为开发者提供了详细的指南。 ... [详细]
  • 本文介绍了JSP的基本概念、常用标签及其功能,并通过示例详细说明了如何在JSP页面中使用Java代码。 ... [详细]
  • 本文面向非计算机专业背景的编程爱好者,介绍如何仅使用基础的C语言知识——二维数组和结构体,无需掌握复杂的数据结构如链表,即可编写一款经典的贪食蛇游戏。通过本教程,您将了解游戏开发的基本原理和实现方法。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置单节点的Redis服务,包括下载、解压、编译安装以及启动服务的具体步骤。 ... [详细]
  • Python与Java在Appium中的应用:混合APP自动化测试方法详解
    本文详细探讨了如何使用Python和Java语言结合Appium框架进行混合APP的自动化测试,特别针对面试中常见的问题进行了整理和解答。 ... [详细]
  • 13、单向链表
    头文件:LinkList.hLinkList.cmain.cVS2 ... [详细]
author-avatar
逍遥微博2011_213
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有