Media Queries Official Manual:http://www.w3.org/TR/css3-mediaqueries/

原文链接:http://www.smashingmagazine.com/2010/07/19/how-to-use-css3-media-queries-to-create-a-mobile-version-of-your-website/

在CSS2中就通过media types来实现media queries(媒体查询)的功能特性了。你可以使用Media Types来指定所要的一种媒体目标,所以你可以指定print,handled等等,但是这些媒体类型被支持得太少,所以你很少看到media types在被使用,除了print媒体类型。

在CSS3中,Media Queries得到了进一步的发展,它不再是以设备的类型为主,而更多的是关注设备的容量(the capability of the device),而且你可以使用来检查各种各样子的设备。例如:

  • 宽度和高度(浏览器窗口)
  • 设备的宽度和高度
  • 方向——例子就是一台手机是横向(landscape)显示,或直向(portrait)显示?
  • 分辨率(resolution)

Media Queries的第一种用法就是,我们直接在原来的样式文件中添加针对小屏幕设备的media queries样式。如下所示:

A very simple two columns layout

如果用户的浏览器是支持media queries的,那么我们就可以写出特定的CSS来解决特定的情景,例如检测到用户是使用诸如智能手机这样子的小屏幕设备,那么就返回专门的布局页面给这些访问请求。

我们并不是将原来的网站缩小来适应小屏幕设备,而是将内容重构,让页面更加友好的在小屏幕的设备上显示。

为了适应小屏幕设备,我们可以使用下面的语法:

@media only screen and (max-device-width: 480px){

}

然后我们可以在花括号内为了小屏幕和小宽度的设备添加CSS,通过使用瀑布流式来组织的样式可以让我们先前为桌面浏览器而写的样式,得到很方便的重写,只要这部分样式放在你CSS文件的最后,那么它就会重写先前的样式规则。因此,线性化我们的布局与使用更小的头部图片,那么可以添加下面的样式。

@media only screen and (max-device-width: 480px){

   div#wrapper{

      width: 400px;

    }

   div#header{

      background-image: url(media-queries-phone.jpg);

      height:93px;

      position:relative;

    }

  div#header h1{font-size:140%;}

  #content{float:none;width:100%;}

  #navigation{float:none;width:auto;}

}

上面的样式中使用替换的背景图片,并减小头部的高度,然后将内容(#content)和导航(#navigation)不浮动,同时重写覆盖前面样式所定义的宽度,这些样式只会在小屏幕设备下面才生效。如下图:

Media queries的第二种用法就是:通过media queries引用一个独立分离的样式文件(linking a separate stylesheet using media queries)

上面第一种Media queries用法就是通过内联,如果你只是做很少的一些改变,那么通过为了设备添加特定的内联样式代码是一种好方式。如果你的样式中包含了很多的重写,又或者你想要将桌面浏览器的样式与那些小屏幕设备使用的样式完全分离,那么引用一个独立的样式文件可以让使CSS分离。

在你的主要样式文件后面添加一个独立的样式文件,并且使用瀑布刘方式重写那些规则,使用方法如下:

<link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="small-device.css" />

[翻译]CSS3 Media Queries的更多相关文章

  1. CSS3 Media Queries 详解

    说起CSS3的新特性,就不得不提到 Media Queries .最近 Max Design 更新的一个泛读列表里,赫然就有关于 Media Queries 的文章.同时位列其中的也有前天我刚刚翻译的 ...

  2. CSS3 Media Queries 简介

    原文链接:Introduction to CSS3 Media Queries 原文日期: 2014年2月21日 翻译日期: 2014年2月26日 翻译人员: 铁锚 简介 随着移动设备的日益普及,we ...

  3. 【css】CSS3 Media Queries 详解【转】

    说起CSS3的新特性,就不得不提到 Media Queries .最近 Max Design 更新的一个泛读列表里,赫然就有关于 Media Queries 的文章.同时位列其中的也有前天我刚刚翻译的 ...

  4. CSS3 Media Queries 实现响应式设计

    在 CSS2 中,你可以为不同的媒介设备(如屏幕.打印机)指定专用的样式表,而现在借助 CSS3 的 Media Queries 特性,可以更为有效的实现这个功能.你可以为媒介类型添加某些条件,检测设 ...

  5. 【CSS3 入门教程系列】CSS3 Media Queries 实现响应式设计

    在 CSS2 中,你可以为不同的媒介设备(如屏幕.打印机)指定专用的样式表,而现在借助 CSS3 的 Media Queries 特性,可以更为有效的实现这个功能.你可以为媒介类型添加某些条件,检测设 ...

  6. CSS3 Media Queries 片段

    CSS3 Media Queries片段 在这里主要分成三类:移动端.PC端以及一些常见的响应式框架的Media Queries片段. 移动端Media Queries片段 iPhone5 @medi ...

  7. HTML5实践 -- 使用CSS3 Media Queries实现响应式设计

    CSS3 Media用法介绍:http://www.w3cplus.com/content/css3-media-queries 转载请注明原创地址:http://www.cnblogs.com/so ...

  8. CSS3 Media Queries模板

    使用max-width @media screen and (max-width: 600px) { //你的样式放在这里.... } 使用min-width @media screen and (m ...

  9. CSS3 Media Queries在iPhone4和iPad上的运用

    CSS3 Media Queries的介绍在W3CPlus上的介绍已有好几篇文章了,但自己碰到的问题与解决的文章还是相对的较少.前几天在<修复iPhone上submit按钮bug>上介绍了 ...

随机推荐

  1. Concurrency and Race Conditions

    1.当多个线程访问共享硬件或软件资源的任何时候,由于线程之间可能产生对资源的不一致观察,所以必须显式管理对资源的访问. 2.内核中的并发管理设施: (1). 信号量: P操作将信号量的值减 1 ,判断 ...

  2. Electron mouse events 参数解析

    1.https://electronjs.org/docs/api/web-contents 2.通常用: monitorEvents(document.body, 'mouse')  检测正常的值: ...

  3. Python 字典 get() 方法

    描述 Python 字典 get() 方法和 setdefault() 方法类似,返回指定键的值,如果键不在字典中,返回一个指定值,默认为None. get() 和 setdefault() 区别:  ...

  4. Redis的简介

    Redis 简介 Redis 是一个高性能的key-value数据库.支持复杂的数据结构,支持持久化,支持主从集群,支持高可用,支持较大的value存储... Redis是一个nosql,非关系型数据 ...

  5. 8.String to Integer (atoi) (INT; Overflow)

    Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. ...

  6. 理解数据结构Priority Queue

    我们知道Queue是遵循先进先出(First-In-First-Out)模式的,但有些时候需要在Queue中基于优先级处理对象.举个例子,比方说我们有一个每日交易时段生成股票报告的应用程序,需要处理大 ...

  7. 内部存储 openFileInputStream openFileOutputStream

    package com.qianfeng.gp08_day24_internalstorage; import java.io.FileInputStream; import java.io.File ...

  8. apache中开启rewrite

    1.在apache配置文件httpd.conf中找到如下行: #LoadModule rewrite_module modules/mod_rewrite.so 去掉该行前面的#号 2.在httpd. ...

  9. mysql5.5以上开启慢查询

    在my.ini配置文件中添加: [mysqld] #开启慢查询 slow_query_log = on #慢查询时间 long_query_time = 0.5 #记录没有使用索引的查询 log_qu ...

  10. Spring框架之演示JDBC的模板类

    1. 步骤一:创建数据库的表结构 create database spring_day03; use spring_day03; create table t_account( id int prim ...