CSS教程:详解CSS3 Media Queries

2016-02-17 03:48 8 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的CSS教程:详解CSS3 Media Queries懂设计的网友们快点来了解吧!

【 tulaoshi.com - 平面设计 】

说起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 做了什么

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/pmsj/)

CSS教程:详解CSS3 Media Queries,PS教程,图老师教程网

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

代码:

在media属性里:

screen 是媒体类型里的一种,CSS2.1定义了10种媒体类型

and 被称为关键字,其他关键字还包括 not(排除某种设备),only(限定某种设备)

(min-width: 400px) 就是媒体特性,其被放置在一对圆括号中。完整的特性参看 相关的Media features部分

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

CSS教程:详解CSS3 Media Queries,PS教程,图老师教程网

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

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

代码:

media="(max-width: 600px)"

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

代码:

media="handheld and (min-width:20em) and (max-width:50em)"

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/pmsj/)

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

代码:

media="handheld and (max-width:20em), screen and (max-width:30em)"

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

代码:

media="not screen and (color)"

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

代码:

media="screen and (min-width: 800px)"

media="screen and (min-width: 600px) and (max-width: 800px)"

media="screen and (max-width: 600px)"

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

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

代码:

media="screen"

media="screen and (max-width: 800px)"

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的设备隐藏样式表的。比如:

代码:

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。

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

CSS教程:详解CSS3 Media Queries,PS教程,图老师教程网

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

来源:http://www.tulaoshi.com/n/20160217/1578213.html

延伸阅读
标签: Web开发
阴影大约从CSS2就开始有了,但是只有Safari一个浏览器支持它,到现在依然是这样。阴影在CSS3中可以应用在边框和文字上,就像图片的阴影效果一样。 一般可以分为box-shadow和textshadow两类。 CSS3的box-shadow和textshadow可以写做:box-shadow:Apx Bpx Cpx #xxx; Apx = x轴 Bpx = y轴 Cpx = 投影长度 #XXX = 像通常一样的颜色 了解了这些,...
calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分。因为看其外表像个函数,既然是函数为何又出现在CSS中呢?这一点也让我百思不得其解,今天有一同事告诉我,说CSS3中有一个属性能实现自适应的布局,首先让我想到的是box-sizing,但跟我说还可以计算,这让我不得不想起calc()。因为早先在官网和一些blog上看到相关的介绍,但一直...
标签: Web开发
display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构、css实现的布局方式。经典的一个布局应用就是布局的垂直等高、水平均分、按比例划分。 目前box-flex属性还没有得到firefox、Opera、chrome浏览器的完全支持,但可以使用它们的私有属性定义firefox(-moz-)、opera(-o-)、chrome/safari(-webkit-)。 一、bo...
标签: Web开发
译自:Playing Around with CSS3 Colors 中文:玩转CSS3色彩 传统来说,大家在CSS中使用的颜色要么是16进制格式,要么是rgb格式,就像rgb(171,205,239)。 CSS3 带来了一些新的处理颜色的方法,比如使用HSL(Hue, Saturation, Light) 和opacity/alpha通道。不幸的是,现在只有Firefox 3+, Chrome 1.0+ 和Safari 3+ 以及一些衍生的浏览器...
标签: Web开发
最近我因为要安装 Firebug 1.4 导致我不得不安装了 Firefox 3.5 ,所以很不小心地接触到了Wordpress后台那漂亮的文字阴影.也就是CSS中的 text-shadow 属性.所以今天我整理了一些资料,希望可以对大家有所启发. 首先我们看看wordpress 2.8后台使用了text-shadow的部分(绿色箭头).觉得怎么样?没错,这些都是CSS3属性,而不是图片做成的. te...

经验教程

530

收藏

57
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部