媒体查询的关键词

css3 iphone5的媒体查询怎么写

可以用谷歌浏览器里面有iPhone5的尺寸,然后用媒体查询它的宽度就行了
媒体查询(media queries)是响应式设计(Responsive Web Design简称RWD)必不可少的一部分。
媒体查询有两个关键词min-width和max-width, 接触过媒体查询的同学可能会认同我, 这两个关键词很绕;从字面上理解它们可能不那么容易,以至于我每次都需要在脑海里面不断演算,然后小心翼翼地测试效果(大概和写正则表达式的感觉差不多)。
需要提醒一下的是CSS的优先级概念,在样式表中越后的样式优先级越高,就是后面的样式会覆盖前面的样式。在这个例子中,我们先设定了默认颜色为灰色。如果width大于960px的,会显示灰色。
假设width为750px,会先匹配到灰色,再匹配红色,最终显示了橙色。由于width等于750px,它不在0-550px和0-320px这个范围,浏览器不会解析这些样式。

html如何适应手机

有几种,利用meta标签、百分比法、使用CSS3单位rem、媒体查询。

利用meta标签

Meta标签主要用来描述一个HTML网页文档的属性,如作者、日期时间、网页描述、关键词、页面刷新等,它的Description和Keywords属性,可加入网站的关键字,让网页利于搜索引擎。

《meta name=“viewport“ content=“width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no“/》

解释:Viewport指用户网页的可视区域,content中的“width”指的是虚拟窗口宽度,上面代码意为虚拟窗口/页面宽度初始比例为1,最小比例为1,最大比例为1,用户不可扩展,页面不可缩放。

以上标签只支持一种尺寸,正确的做法是用js动态生成下面标签,前提是要先获取屏幕尺寸。

《script type=“text/javascript“》

var phoneWidth =  parseInt(window.screen.width);

var phoneScale = phoneWidth/640;

var ua = navigator.userAgent;

if (/Android (d+.d+)/.test(ua)){var version = parseFloat(RegExp.$1);

if(version》2.3){ document.write(‘《meta name=“viewport“ content=“width=640, minimum-scale = ‘+phoneScale+‘, maximum-scale = ‘+phoneScale+‘, target-densitydpi=device-dpi“》‘); }

else{document.write(‘《meta name=“viewport“ content=“width=640, target-densitydpi=device-dpi“》‘); }

else { document.write(‘《meta name=“viewport“ content=“width=640, user-scalable=no, target-densitydpi=device-dpi“》‘); }

《/script》

百分比法

CSS中的百分比中指的是相对于父元素的宽度。子元素的padding-left:50%,父元素的宽度是百,子元素的margin-top:20%,那么父元素的高是百。body默认宽度是屏幕宽度(PC中指的是浏览器宽度)子孙元素按百分比定位(或指定尺寸)就可以了。但这只适合布局简单的页面,复杂的页面实现很困难。

使用CSS3单位rem

在页面载入开始时首先判断window的宽度(是window的宽度($(window).width()),不是屏幕分辩率的宽度(screen.width),两者差别请自行查阅),假设宽度为W,一个div在宽度为640px的设计稿的下的宽度为dW1,如果html的font-size为100px,那么这个div的宽度用rem表示是多少呢?

计算:div宽度dW2=dW1/100,px与rem之间换算除以100就可以,这是假定屏幕宽度为640的,而不同宽度的屏幕怎么处理,为了能保证换算容易那就要为html设置一个合适的font-size,计算:100 / 640 = fontSize / W, fontSize = W / 640 * 100 = W / 6.4。大多数浏览器font-size的最小值为12px,所以只能用100作为缩放比例。

所以会在头部加上这个JS代码:

《script type=“text/javascript“》

var html = document.querySelector(‘html‘);

var rem = html.offsetWidth / 6.4;

html.style.fontSize = rem + “px“;

媒体查询

媒体查询正是为解决网页适应手机屏幕。媒体查询的功能就是为不同的“媒体”设置不同的css样式,页面尺寸,设备屏幕尺寸等,比如我们要为宽度小于480px的页面中的class=“icon“的元素设置样式,可以这样写,@media screen and (max-width=480px) {.icon{ some styles }};具体可自行研究。

css3中,媒体查询,screen and 和only screen and有什么不同

W3C文档这样描述的:The keyword ‘only’ can also be used to hide style sheets from older user agents. User agents must process media queries starting with ‘only’ as if the ‘only’ keyword was not present.

翻译过来就是:only是为了在不支持媒体查询的浏览器中隐藏样式表,浏览器处理以only开头的关键词时将会忽略only。

@media only screen and (min-width:xxx) and (max-width:xxx) 与 @media screen and (min-width:xxx) and (max-width:xxx) 在支持媒体查询的浏览器中其实是一模一样的,没有任何区别,因为only将被忽略。但是在不支持媒体查询的浏览器中由于没有only这个媒体类型,因此会直接忽略这条媒体查询。在不支持媒体查询的浏览器中,如果不加only,@media screen and (min-width:xxx) and (max-width:xxx)将会被解析为@media screen,明显与期望不一致。因此通过加一个浏览器不认识的媒体类型only则浏览器将会直接忽略这条媒体查询。

media=“only screen and (min-width: 401px) and (max-width: 600px)“
/* 在支持媒体查询的浏览器中等于*/
media=“screen and (min-width: 401px) and (max-width: 600px)“
/*在不支持媒体查询的浏览器中解析到带only的媒体查询时,会将only视为媒体类型。(由于没有only这种媒体类型,因此将不会被应用)*/
media=“only“
/*如果不带only,在不支持媒体查询的浏览器中*/
media=“screen and (min-width: 401px) and (max-width: 600px)“
/*将被解析为screen,将会被应用到屏幕类型设备上*/
media=“screen“

什么叫media query

Media Queries详解
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 type=“text/css“ media=“screen“》
@import url(“css/style.css“);
《/style》
不知道大家留意没有,其中两种方式引入CSS样式都有一个共同的属性“media”,而这个“media”就是用来指定特定的媒体类型,在HTML4和CSS2中充许你使用“media”来指定特定的媒体类型,
如屏幕(screen)和打印(print)的样式表,当然还有其他的,比如说“TV”,“handheld”等,其中“all”表示的是支持所有媒体介质。有关于更多的Media类型,可以点击这里。
上面简单说了一下HTML4和CSS2的“Media Queries”,而今天的主要是来学习CSS3中的“Media Queries“的更多使用方法和相关知识,下面我们开始进入今天的主题。
CSS3中的Media Queries增加了更多的媒体查询,同时你可以添加不同的媒体类型的表达式用来检查媒体是否符合某些条件,如果媒体符合相应的条件,那么就会调用对应的 样式表。
换句简单的说,“在CSS3中我们可以设置不同类型的媒体条件,并根据对应的条件,给相应符合条件的媒体调用相对应的样式表”。
现在最常见的一个 例子,你可以同时给PC机的大屏幕和移动设备设置不同的样式表。这功能是非常强大的,他可以让你定制不同的分辨率和设备,并在不改变内容的情况下,
让你制 作的web页面在不同的分辨率和设备下都能显示正常,并且不会因此而丢失样式。
首先来看一个简单的实例:
《link rel=“stylesheet“ media=“screen and (max-width: 600px)“ href=“small.css“ /》
上面的media语句表示的是:当页页宽度小于或等于600px,调用small.css样式表来渲染你的Web页面。首先来看media的语句中包含的内容:
1、screen:这个不用说大家都知道,指的是一种媒体类型;
2、and:被称为关键词,与其相似的还有not,only,稍后会介绍;
3、(max-width:600px):这个就是媒体特性,说得通俗一点就是媒体条件。
前面这个简单的实例引出两个概念性的东西,一个就是媒体类型(Media Type)和 媒体特性(Media Query),首先一起来理解一下这两个概念:
一、媒体类型(Media Type)
媒体类型(Media Type)在css2中是一个常见的属性,也是一个非常有用的属性,可以通过媒体类型对不同的设备指定不同的样式,在css2中我们常碰到的就是 all(全部),screen(屏幕)
,print(页面打印或打邱预览模式),其实在媒体类型不止这三种,w3c总共列出了10种媒体类型。
页面中引入媒体类型方法也有多种:
1、link方法引入
《link rel=“stylesheet“ type=“text/css“ href=“../css/print.css“ media=“print“ /》
2、xml方式引入
《?xml-stylesheet rel=“stylesheet“ media=“screen“ href=“css/style.css“ ?》
3、@import方式引入
@import引入有两种方式,一种是在样式文件中通过@import调用别一个样式文件;另一种方法是 在《head》》/head》中的《style》…《/style》中引入,单这种使用方法在 ie6-7都不被支持 如
样式文件中调用另一个样式文件:
@import url(“css/reset.css“) screen;
@import url(“css/print.css“) print;
在《head》》/head》中的《style》…《/style》中调用:
《head》
《style type=“text/css“》
@import url(“css/style.css“) all;
《/style》
《/head》
4、@media引入
这种引入方式和@imporr是一样的,也有两种方式:
样式文件中使用:
@media screen{
选择器{
属性:属性值;
}
}
在《head》》/head》中的《style》…《/style》中调用:
《head》
《style type=“text/css“》
@media screen{
选择器{
属性:属性值;
}
}
《/style》
《/head》
以上几种方法都有其各自的利弊,在实际应用中我建议使用第一种和第四种,因为这两种方法是在项目制作中是常用的方法,对于他们的具体区别,我就不说了,想了解的大家可以去找度娘或G爸,
他们能帮你解决。
二、媒体特性(Media Query)
前面有简单的提到,Media Query是CSS3 对Media Type的增强版,其实可以将Media Query看成Media Type(判断条件)+CSS(符合条件的样式规则),常用的特性w3c共列出来13种。
具体的可以参阅:Media features。为了更能理解Media Query,我们在次回到前面的实例上:
《link rel=“stylesheet“ media=“screen and (max-width: 600px)“ href=“small.css“ /》
转换成css中的写法为:
@media screen and (max-width: 600px) {
选择器 {
属性:属性值;
}
}
其实就是把small.css文件中的样式放在了@media srceen and (max-width;600px){…}的大括号之中。在语句上面的语句结构中,可以看出Media query和css的属性集合很相似,主要区别在:
1、Media query只接受单个的逻辑表达式作为其值,或者没有值;
2、css属性用于声明如何表现页页的信息;而Media Query是一个用于判断输出设备是否满足某种条件的表达式;
3、Media Query其中的大部分接受min/max前缀,用来表示其逻辑关系,表示应用于大于等于或者小于等于某个值的情况
4、CSS属性要求必须有属性值,Media Query可以没有值,因为其表达式返回的只有真或假两种
常用的Media Query如下表所示:
兼容的浏览器:
下面我们一起来看看Media Queries的具体使用方式
一、最大宽度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页面。
四、设备屏幕的输出宽度Device Width
《link rel=“stylesheet“ media=“screen and (max-device-width: 480px)“ href=“iphone.css“ type=“text/css“ /》
上面的代码指的是iphone.css样式适用于最大设备宽度为480px,比如说iPhone上的显示,这里的max-device-width所指的是设备的实际分辨率,也就是指可视面积分辨率
五、iPhone4
《link rel=“stylesheet“ media=“only screen and (-webkit-min-device-pixel-ratio: 2)“ type=“text/css“ href=“iphone4.css“ /》
上面的样式是专门针对iPhone4的移动设备写的。
六、iPad
《link rel=“stylesheet“ media=“all and (orientation:portrait)“ href=“portrait.css“ type=“text/css“ /》
《link rel=“stylesheet“ media=“all and (orientation:landscape)“ href=“landscape.css“ type=“text/css“ /》
在大数情况下,移动设备iPad上的Safari和在iPhone上的是相同的,只是他们不同之处是iPad声明了不同的方向,比如说 上面的例子,在纵向(portrait)时采用portrait.css来渲染页面;
在横向(landscape)时采用landscape.css来渲 染页面。
七、android
/*240px的宽度*/
《link rel=“stylesheet“ media=“only screen and (max-device-width:240px)“ href=“android240.css“ type=“text/css“ /》
/*360px的宽度*/
《link rel=“stylesheet“ media=“only screen and (min-device-width:241px) and (max-device-width:360px)“ href=“android360.css“ type=“text/css“ /》
/*480px的宽度*/
《link rel=“stylesheet“ media=“only screen and (min-device-width:361px) and (max-device-width:480px)“ href=“android480.css“ type=“text/css“ /》
我们可以使用media query为android手机在不同分辨率提供特定样式,这样就可以解决屏幕分辨率的不同给android手机的页面重构问题。
八、not关键字
《link rel=“stylesheet“ media=“not print and (max-width: 1200px)“ href=“print.css“ type=“text/css“ /》
not关键字是用来排除某种制定的媒体类型,换句话来说就是用于排除符合表达式的设备。
九、only关键字
《link rel=“stylesheet“ media=“only screen and (max-device-width:240px)“ href=“android240.css“ type=“text/css“ /》
only用来定某种特定的媒体类型,可以用来排除不支持媒体查询的浏览器。其实only很多时候是用来对那些不支持Media Query但却支持Media Type的设备隐藏样式表的。
其主要有:支持媒体特性(Media Queries)的设备,正常调用样式,此时就当only不存在;对于不支持媒体特性(Media Queries)但又支持媒体类型(Media Type)的设备,这样就会不读了样式,
因为其先读only而不是screen;另外不支持Media Qqueries的浏览器,不论是否支持only,样式都不会被采用。
十、其他
在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能在不同的条件下使用不同的样式,使用页面达到不同的渲染效果。

请问如何实现网页中的文字大小根据浏览设备屏幕大小不同自动调整

1.首先,在网页代码的头部,加入一行viewport元标签。
viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%。
所有主流浏览器都支持这个设置,包括IE9,对于那些老式浏览器(主要是IE6、7、8),需要使用css3-mediaqueries.js。
2、不使用绝对宽度由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。具体说,CSS代码不能指定像素宽度:width:xxx px;
只能指定百分比宽度:width: xx%;或者width:auto;
3、相对大小的字体
字体也不能使用绝对大小(px),而只能使用相对大小(em)。
body {
font: normal 100% Helvetica, Arial, sans-serif;
}
上面的代码指定,字体大小是页面默认大小的100%,即16像素。
h1 {
font-size: 1.5em;
}
然后,h1的大小是默认大小的1.5倍,即24像素(24/16=1.5)。
small {
font-size: 0.875em;
}
small元素的大小是默认大小的0.875倍,即14像素(14/16=0.875)。

css中@media only screen and (max-width:639px){

  这位网友你好,这是媒体查询代码,表示只有在屏幕尺寸小于639像素的时候才会应用下面的样式。如果想要在手机端自适应,你还需要写上下面这句话。

《meta name=“viewport“ content=“width=device-width, initial-scale=1“/》