CSS3学习教程:Media Queries

文章简介:本文比较详细,所以很多实际中用不到。所以如果只是想简单了解Media Queries,推荐参考 CSS3 Media Queries 。

说起CSS3的新特性,就不得不提到 Media Queries 。

本文比较详细,所以很多实际中用不到。所以如果只是想简单了解Media Queries,推荐参考 CSS3 Media Queries 。

CSS2.1定义了 Media 的部分,包括类型、组别和规则等。CSS并非为了显示器而创造,而是应用于各种各样的媒体,比如常见的显示器,越来愈多的手持设备,可能略显过时的电视机等等。

而 Media Queries 的引入,其作用就是允许添加表达式用以确定媒体的情况,以此来应用不同的样式表。换句话说,其允许我们在不改变内容的情况下,改变页面的布局以精确适应不同的设备,以此加强体验。所以Media Queries和CSS优化没有关系,甚至是矛盾的。

引用CSS3 Media Queries里的直观的 DEMO,当浏览器宽度改变时,应用的CSS发生变化。而这些,原本需要 JavaScript 的控制才能做到。

Web移动化的趋势越加明显。虽然国内受到很多制约,但是这种浪潮却无法阻挡。前段时间jQuery宣布mobile项目,也加速了这种变化。Media Queries 不久的将来应该就会被更多的使用,以更好的支持新兴设备比如iPad。事实上, jQuery 甚至有 Media Queries的插件。

看看 Media Queries 做了什么

一个三栏布局,在屏幕变窄的情况下,变成1栏布局,甚至是消除多余两栏而只留下通常的内容的第2栏。Media Queries是如何工作的?先看看 link 标签的写法:

  1. <link rel="stylesheet" type="text/css" href="swordair.css" media="screen and (min-width: 400px)"

在media属性里:

  • screen 是媒体类型里的一种,CSS2.1定义了10种媒体类型
  • and 被称为关键字,其他关键字还包括 not(排除某种设备),only(限定某种设备)
  • (min-width: 400px) 就是媒体特性,其被放置在一对圆括号中。完整的特性参看 相关的Media features部分

媒体特性共13种,可以说是一个类似CSS属性的集合。但和CSS属性不同的是,媒体特性只接受单个的逻辑表达式作为其值,或者没有值。并且其中的大部分接受 min/max 的前缀,用来表示 大于等于/小于等于 的逻辑,以此避免使用 < 和 > 这些字符。

那么,回到刚才的那条 Media Query,media="screen and (min-width: 400px)" 的意思就是当屏幕的宽度大于等于400px的时候,应用此条CSS。

一个 Media Query 包含一种媒体类型,如果媒体类型没有指定,那么就是默认类型all,比如:

  1. <link rel="stylesheet" type="text/css" href="example.css"
  2. media="(max-width: 600px)">

一个 Media Query 包含0到多个表达式,表达式又包含0到多个关键字,以及一种媒体特性,比如:

  1. <link rel="stylesheet" type="text/css" href="example.css"
  2. media="handheld and (min-width:20em) and (max-width:50em)">

复制代码

逗号(,)被用来表示并列,表示或者。比如下面的例子表示此CSS被应用于宽度小于20em的手持,或者宽度小于30em的屏幕:

  1. <link rel="stylesheet" type="text/css" href="example.css"
  2. media="handheld and (max-width:20em), screen and (max-width:30em)">

not 关键字用来排除符合表达式的设备,比如:

  1. <link rel="stylesheet" type="text/css" href="example.css"
  2. media="not screen and (color)">

再看些其他例子(不准确,只是用来说明):

  1. <link rel="stylesheet" type="text/css" href="styleA.css"
  2. media="screen and (min-width: 800px)">
  3. <link rel="stylesheet" type="text/css" href="styleB.css"
  4. media="screen and (min-width: 600px) and (max-width: 800px)">
  5. <link rel="stylesheet" type="text/css" href="styleC.css"
  6. media="screen and (max-width: 600px)">

上面将设备分成3种,分别是宽度大于800px时,应用styleA,宽度在600px到800px之间时应用styleB,以及宽度小于600px时应用styleC。这其实是一个CSS覆盖的问题,所以当宽度正好等于800px时该应用那个样式?答案是styleB,因为前两条表达式都成立,后者覆盖了前者。

所以说上面的例子虽然能工作,但是不准确。这个例子正常情况应该这样写:

  1. <link rel="stylesheet" type="text/css" href="styleA.css"
  2. media="screen">
  3. <link rel="stylesheet" type="text/css" href="styleB.css"
  4. media="screen and (max-width: 800px)">
  5. <link rel="stylesheet" type="text/css" href="styleC.css"
  6. media="screen and (max-width: 600px)">

并非所有的浏览器都支持Media Queries,那么这些浏览器怎么看待Media Queries?

Media Queries是CSS3对于Media Type的一个扩展,所以不支持Media Queries的浏览器,应该仍然要识别Media Type,但是IE只是简单的忽略了样式。only 关键字可能显得有些多余,对支持Media Queries的浏览器来说确实是这样,因为加不加 only 没有影响。only的作用,很多时候是用来对那些不支持Media Queries但是却读取Media Type的设备隐藏样式表的。比如:

  1. <link rel="stylesheet" type="text/css" href="example.css"
  2. media="only screen and (color)">

  • 支持Media Queries的设备,正确应用样式,就仿佛only不存在
  • 不支持Media Queries但正确读取Media Type的设备,由于先读取到only而不是screen,将忽略这个样式
  • 不支持Media Queries的IE不论是否有only,都忽略样式

最后再来看看 Media Queries 的支持情况。不出意外的,IE678全部出局,但是IE9幸免。根据IEBlog上的这篇 HTML5 and Same Markup 来看,IE9支持Media Queries。至于其他浏览器,同样不出意外的,全部支持Media Queries。

完整的支持情况罗列成如下表:

其他定义media的方法比如@media等,应用Media Queries的方法相同,所以不在重复叙述。水平有限,如有问题请指出给我,谢谢:)

时间: 2024-10-10 20:24:09

CSS3学习教程:Media Queries的相关文章

CSS3 media queries结合jQuery实现响应式导航_jquery

目的: 实现一个响应式导航,当屏幕宽度大于700px时,效果如下: 当屏幕宽度小于700px时,导航变成一个小按钮,点击之后有一个菜单慢慢拉下来:   思路: 1.为了之后在菜单上绑定事件,并且不向DOM中添加多余的节点,在大屏幕中出现的导航和小屏幕中的下拉导航必须是一个.    所以我选择了将导航绝对定位. 2.默认导航列表是出现的,当屏幕宽度小于700px时它隐藏,并且设置position,当屏幕宽度大于700px时,它出现.或者,默认导航列表是隐藏的,当屏幕宽度大于700px时它出现在右侧

ss教程:CSS3 Media Queries 详解

说起CSS3的新特征,就不得不提到MediaQueries. 本文比力细致,所以良多隐真顶用不到.所以若是只是想简略领会MediaQueries,保举参考CSS3MediaQueries. CSS2.1界说了Media的部门,包罗类型.组别战法则等.CSS并非为了显示器而创造,而是使用于各类各样的,好比常见的显示器,越来愈多的手持设施,可能略显过期的电视机等等. css教程:CSS3 Media Queries 详解,css3教程,css3教程而MediaQueries的引入,其作用就是答应增添

CSS3教程:Responsive框架常见的Media Queries片段

文章简介:Responsive中的断点都依赖于CSS3的Media Queries来决断.曾在CSS3 Media Queries模板.使用em单位创建CSS3的Media Queries和iPads和iPones的Media Queries有过这方面的介绍. Responsive设计在现代Web设计中可谓是越来越流行,但很同学们并未理解其真正的设计概念,往往把Responsive视为一种自适应布局.当然有很多同学也在尝试动写Responsive的案例,但如何取其断点左右纠结,如何设置哪几个断点

css教程:CSS3 Media Queries 详解

网页制作Webjx文章简介:说起CSS3的新特性,就不得不提到 Media Queries . 本文比较详细,所以很多实际中用不到.所以如果只是想简单了解Media Queries,推荐参考 CSS3 Media Queries . CSS2.1定义了 Media 的部分,包括类型.组别和规则等.CSS并非为了显示器而创造,而是应用于各种各样的 说起CSS3的新特性,就不得不提到 Media Queries . 本文比较详细,所以很多实际中用不到.所以如果只是想简单了解Media Queries

CSS3 Media Queries模板:max

文章简介:最早在<CSS3 Media Queries>一文中初探了CSS3的媒体类型和媒体特性的相关应用. 最早在<CSS3 Media Queries>一文中初探了CSS3的媒体类型和媒体特性的相关应用.简单的知道了使用这个能在各种不同的设备显示不一样的样式风格. 从这几篇文章中可以知道,在Responsiv的设计中,CSS3的Media是起着非常关键性的作用,也可以说没有CSS3 Media这个属性,Responsiv设计是玩不起来,也是玩不转的.大家都知道Responsiv

HTML5和CSS3 Media Queries响应式Web设计方案

文章简介:通过CSS3 Media Query实现响应式Web设计. 十一长假已然过去了一大半.今天倒真是晴朗的不行,向窗外望去几乎可以看到阳光穿过凉爽的空气一缕缕洒落下来的样子.自从不再是学生,对每年的几次长假就无比珍惜,想方设法让每一天都尽量过的饱满一些:夜里闭上眼,满脑子就都是Drupal.博客.咖啡.使命召唤.南方公园...也许需要出门走一走了. OK开始说正经的了.在之前一篇译文中,我们了解了响应式Web设计的概念.组成要素以及基本的实现思路.今天继续相关话题,我们将从前文介绍过的"弹

CSS3响应式设计Media Queries模板

CSS3 Media Queries模板 CSS3 Media Queries一般都是使用"max-width"和"min-width"两个属性来检查各种设备的分辨大小与样式表所设条件是否满足,如果满足就调用相应的样式.打个比方来说,如果你的Web页面在960px的显屏下显示,那么首先会通过CSS3 Media Queries进行查询,看看有没有设置这个条件样式,如果找到相应的,就会采用对应下的样式,其他的设备是一样的道理.下面具体看看"max-width

详解CSS3 Media Queries

网页制作Webjx文章简介:说起CSS3的新特性,就不得不提到 Media Queries . 本文比较详细,所以很多实际中用不到.所以如果只是想简单了解Media Queries,推荐参考 CSS3 Media Queries . CSS2.1定义了 Media 的部分,包括类型.组别和规则等.CSS并非为了显示器而创造,而是应用于各种各样的 说起CSS3的新特性,就不得不提到 Media Queries . 本文比较详细,所以很多实际中用不到.所以如果只是想简单了解Media Queries

彻底弄明白CSS3的Media Queries

网页制作Webjx文章简介:CSS3的Media Queries:完美解决网站与手机跨平台设计. 移动时代,是任何 Web 设计与开发者都不能忽视的一个时代,总有一天,你设计的东西将被显示在两种屏幕上,桌面大屏幕和移动小屏幕,如何让同一个网站同时适应完全不同的两种尺寸的屏幕,这是一个很久以来都没有完美解决方案的问题,直到有了 CSS3. CSS3 的 Media Queries 在 CSS2 时代,如果你曾经为你的网站设计过打印版 CSS,就会明白 CSS3 Media Queries 的作用,