响应式设计:媒体查询

  媒体查询可以让我们根据设备显示的特性为其设定CSS样式。可以在不改变页面内容的情况下,为特定的一些输出设变指定显示效果。

一、媒体查询语法

  1、<link>标签:通过link标签的media属性为样式表指定设备类型,例如:

  以下代码表示媒体类型是显示屏,媒体特性为显示屏纵向放置,此时才引入cssy样式  

<link rel="stylesheet" type="text/css" media="screen and (orientation:portrait)" href="screen-style.css">

  更进一步,还可以写一个媒体查询列表。查询列表中的任意一个查询为真,则加载文件。全部查询都不为真,则不加载。例子如下:表示只有显示屏纵向放置,且视口大于800px或者为投影仪时才引入css样式

<link rel="stylesheet" media="screen and (orientation: portrait) and (min-width:800px), projection" href="800wide-portrait-screen.css" />

  注:(1)媒体查询之间使用逗号分隔

    (2)projection 之后,没有and,也没有任何特性/值的组合。没有后续表达式,意味着只要是projection 就满足条件。本例中,样式会应用于所有的投影仪。

  2、在CSS样式表中使用媒体查询 :例如,将下面的代码插入样式表,在屏幕宽度《=400px的设备上,h1元素文字就会变绿色 (最佳方式)

@media screen and (max-device-width : 400px) {h1 {color:green} }

  3、使用CSS的@import指令:在当前样式表中按条件引入其他样式表; 例如下面代码会给视口最大宽度为360px的显示屏加载一个名为phone.css的样式表

@import url ("phone.css") screen and(max-width : 360px);

  注: 使用@import方式会增加HTTP请求(会影响加载速度),应该谨慎使用。

二、媒体查询能检测哪些特性

  width/height:视口宽高;

  device-width/height:设备屏幕的宽高;

  orientation:检查设备处于横向还是纵向;

  device-aspect-ratio/aspect-ratio:基于设备/视口的宽高比;

  color:每种颜色的位数。例如 min-color:16会检测设备是否拥有16位颜色;

  color-index:设备的颜色索引表中的颜色数。值必须是非负整数。

  monochrome:检测单色帧缓冲区中每像素所使用的位数。值必须是非负整数,如 monochrome: 2。

  resolution:用来检测屏幕或打印机的分辨率,如min-resolution: 300dpi。还可以接受每厘米像素点数的度量值,如min-resolution: 118dpcm。

  scan:电视机的扫描方式,值可设为progressive(逐行扫描)或interlace(隔行扫描)

  grid:用来检测输出设备是网格设备还是位图设备。

三、用媒体查询改造我们的设计

  CSS层叠样式表,即样式表中后面的样式会覆盖前面相同的样式(更高优先级除外),所以可以利用媒体查询重写相应的部分

四、阻止移动浏览器自动调整页面大小

  iOS 和Android 浏览器都基于WebKit(http://www.webkit.org/)核心。这两种浏览器以及很多其他浏览器(如Opera Mobile),都支持用 viewport meta 元素覆盖默认的画布缩放设置。在HTML的<head>标签中插入<meta>标签,在<meta>中可以设置具体宽度或缩放比例,例如,以下代码是将一个页面放大到设备实际尺寸两倍显示

<meta name="viewport" content="initial-scale=2.0,width=device width" />

一般,我们需要将缩放比设置为1.0,表示浏览器将按照视口的实际大小渲染页面,同时,将宽度设置为设备宽度表示浏览器都会按照设备实际大小来渲染页面,如下

<meta name="viewport" content="width=device-width,initial=scale=1.0" />

五、小结

  媒体查询只能为我们提供自适应设计效果,不是完全的响应式。能让我们的设计在媒体查询设置的断点之间灵动显示的是流动布局。

时间: 2024-08-10 17:02:47

响应式设计:媒体查询的相关文章

响应式设计——媒体查询

一.响应式设计 响应式设计的概念是页面的设计应根据用户的行为(如调整浏览器窗口大小)和设备环境(如屏幕大小.屏幕定向)进行相应的调整.它可以由多方面组成,包括弹性网格和布局.弹性图片.媒体查询等. 二.媒体查询      2.1媒体查询的概念         在css2中允许使用media来对特定的媒体应用特定的样式,例如针对屏幕或者打印机.可以通过<link>标签的media属性为样式表指定特定的媒体. <link rel="stylesheet" type=&qu

响应式设计-媒体查询

媒体查询 媒体查询只支持IE9+.chrome.ff等浏览器,IE8以下的浏览器可以下载引用respond.js, 写法: <!--[if lt IE 9]> <script src="respond.js"></script><![endif]--> 媒体查询能检测哪些属性 :    1.width  视口宽度    2.height 视口高度    3.device-width 渲染表面的宽度(对我们来说就是设备屏幕的宽度)    4

响应式WEB&amp;媒体查询

为什么响应式设计需要媒体查询? 媒体查询 中可用于检测的媒体特性有 width.height 和 color(等).使用媒体查询, 可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果. 使用媒体查询步骤: 1.在head中引入下面这个meta标签: <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&

响应式布局--媒体查询

手机浏览器会将一个标准网页缩小至与设备可视区域(标准技术术语叫做“视口”)恰好匹配.然后用户在自己感兴趣的内容区域上放大浏览 大多数情况下,根据视口大小为用户提供与之匹配的视觉效果还是优先选择 用厂商前缀时,遵循样式表的层叠特性,将无前缀的代码放在最后,这样如果该特性可用,则会覆盖之前的声明 使用CSS的@import指令在当前样式表中按条件引入其他样式表,eg:@import url("phone.css") screen and (max-width:360px);使用CSS的@i

响应式设计

响应式设计 响应式设计的概念(三要素) 流体网格 响应式图片 媒体查询 相关概念 分辨率 是指显示器所能显示的像素的多少 像素密度 dpi/ppi 每平方英寸的像素数 设备像素比 dip/dpr 类似于每像素包含的点数(dppx) 视网膜屏幕 屏幕显示异常清晰(设备像素比大于1) viewport 定义 可视区域 移动端: 布局视口(大部分980px) /理想视口(视口宽度=设备宽度) 设置 <meta name="viewport" content="width=de

响应式设计-VS-REM布局

水平有限,不对之处还请指出. [目前几种布局] 随着移动互联网的发展和微信的突起,移动端的响应式布局越来越重要了. 目前网站布局有以下几种: 1.定宽度布局 很多pc的网站都是定宽度布局的,也就是设置了min-width, 这样一来,如果小于这个宽度就会出现滚动条, 如果大于这个宽度则内容居中外加背景, 这种设计常见与pc端. 2.响应式布局 所谓响应式布局就是流式布局+媒体查询, 流式布局用来解决不同宽度的布局问题, 外加媒体查询,可以调整布局,例如大屏幕是布局1,小屏幕是布局2, 这种布局通

响应式设计的核心CSS技术Media(媒体查询器)

总结一下响应式设计的核心CSS技术Media(媒体查询器)的用法. <meta http-equiv="X-UA-Compatible" content="IE=edge"><!--兼容ie--><meta name="viewport" content="width=device-width, initial-scale=1"><!--得到媒体查询屏幕宽度,缩放比例--> 准备

响应式设计的思考:媒体查询(media query)

Jason Grigsby发表了篇文章,<CSS Media Query for Mobile is Fool’s Gold>对媒体查询(media query)吐槽,大意是在移动设备上使用媒体查询会造成很多资源的浪费——浏览器请求到很多用不到的图片等资源,然后写了一些测试用例测试一些可用方法.然后Tim Kadlec写了篇<Media Query & Asset Downloading Results>,用js自动化的测试了Jason Grigsby的用例. 本文主要整理

媒体查询---响应式设计小实例

众所周知,随着移动端高速发展,对于前端开发人员来说,HTML5+CSS3的地位越发的举足轻重了.其中的响应式设计也真正的流行起来.可能此时小码哥写这篇文章来说,也已经有些晚了,但,鄙人的目的是方便自己以后翻阅的,当然,也希望能对看到该文章的人有所帮助.什么是响应式设计,什么又是媒体查询? 所谓响应式设计:就是依据不同的设备尺寸来开发前端页面,以保证页面能在所想要的设备上能正常显示. 媒体查询:就是HTML5中针对不同设备设定的一些尺寸的区间范围,依据不同的区间编写不同的代码.以适应不同的设备.

响应式设计之媒介查询

你必须像水那样无形:当你把水倒进杯子中,水就变成了杯子的形状:当你把水倒进瓶子中,水就变成了瓶子的形状:当你把水倒进茶壶中,水就变成了茶壶的形状. - 李小龙 之前读<响应式Web设计实践>,这大概是我印象最深的一句话了.李小龙的功夫了得,可他的功夫哲学更是令人叹服.如今的前端,面临着更多的挑战,尺寸大小不一的设备涌现出来,就像形状各异的容器,而我们的网页必须像水一般, 能够接受各式各样的考验. 为了能够让同一个页面在不同尺寸的设备浏览器中呈现出与之适配的样式,CSS3引入了Media que