Media Queries直译过来就是“媒体查询”,在我们平时的Web页面中head部分常看到这样的一段代码:
<link href="css/reset.css" rel="stylesheet" type="text/css" media="screen" />
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/print.css" rel="stylesheet" type="text/css" media="print" />
</style>
在我们没有接触css3之前或许都不知道这些引入后面的media是什么意思,在css3中有一个巨大的作用就是响应式布局,在这里的media的意思就是表示在此处的布局就是采用的响应式布局,顾名思义,响应式的意思就是响应不同的屏幕都能完整的显示出我们页面上的内容,其中两种方式引入CSS样式都有一个共同的属性“media”,而这个“media”就是用来指定特定的媒体类型,在HTML4和CSS2中充许你使用“media”来指定特定的媒体类型,
今天的主要是来学习CSS3中的"Media Queries"的更多使用方法和相关知识,下面我们开始进入今天的主题。
CSS3中的Media Queries增加了更多的媒体查询,同时你可以添加不同的媒体类型的表达式用来检查媒体是否符合某些条件,如果媒体符合相应的条件,那么就会调用对应的 样式表。就是根据不同的显示条件实时调整屏幕显示,从而满足不同分辨率的用户都能看到完整的网页。其中的实现原理就是根据不同的屏幕给出不同的样式表,在这里并不是需要多套的css样式表,在css3之前我们要实现这样的效果,就真的需要编写多套css样式表来满足不同的用户需求。但是好处就在这里产生了,当css3出现之后,我们那就不需要为不同的分辨率设备编写多套样式表了,仅仅需要调用css3中的media query工具,这个难题就迎刃而解了,我们只需要调用一次便可以在页面显示的时候获得不同的分辨率进而决定显示不同的内容。
现在最常见的一个 例子,你可以同时给PC机的大屏幕和移动设备设置不同的样式表。这功能是非常强大的,他可以让你定制不同的分辨率和设备,并在不改变内容的情况下,让你制 作的web页面在不同的分辨率和设备下都能显示正常,并且不会因此而丢失样式。
首先来看一个简单的实例:
<link rel="stylesheet" media="screen and (max-width: 600px)" href="small.css" />
上面的media语句表示的是:当页页宽度小于或等于600px,调用small.css样式表来渲染你的Web页面。首先来看media的语句中包含的内容(max-width:600px):这个就是媒体特性,说得通俗一点就是媒体条件。
下面我们将具体的实现这一效果;
最大宽度Max Width:
<link rel="stylesheet" media="screen and (max-width:600px)" href="small.css" type="text/css" />
上面表示的是:当屏幕小于或等于600px时,将采用small.css样式来渲染Web页面。
最小宽度Min Width
<link rel="stylesheet" media="screen and (min-width:900px)" href="big.css" type="text/css" />
上面表示的是:当屏幕大于或等于900px时,将采用big.css样式来渲染Web页面。
多个Media Queries使用
<link rel="stylesheet" media="screen and (min-width:600px) and (max-width:900px)" href="style.css" type="text/css" />
Media Query可以结合多个媒体查询,换句话说,一个Media Query可以包含0到多个表达式,表达式又可以包含0到多个关键字,以及一种Media Type。
正如上面的其表示的是当屏幕在600px-900px之间时采用style.css样式来渲染web页面。
<link rel="stylesheet" media="not print and (max-width: 1200px)" href="print.css" type="text/css" />
在Media Query中如果没有明确指定Media Type,那么其默认为all,如:
<link rel="stylesheet" media="(min-width: 701px) and (max-width: 900px)" href="medium.css" type="text/css" />
另外还有使用逗号(,)被用来表示并列或者表示或,如下
<link rel="stylesheet" type="text/css" href="style.css" media="handheld and (max-width:480px), screen and (min-width:960px)" />
上面代码中style.css样式被用在宽度小于或等于480px的手持设备上,或者被用于屏幕宽度大于或等于960px的设备上。
关于Media Query的使用这一节就介绍到此,最后总体规纳一下其功能,个人认为就是一句话:Media Queries能在不同的条件下使用不同的样式,使用页面达到不同的渲染效果。