media query中的条件重叠

  想必接触过响应式布局的朋友对于media query都不会陌生,响应式布局也正是通过这个关键的属性来实现的。一些响应式布局的教程中通常都会进行如下类似设置来实现不同视口宽度条件下的布局示例:

@media screen and (max-width:600px){/* 样式一 */}

@media screen and (min-width:600px) and (max-width:960px){/* 样式二 */}

@media screen and (min-width:960px){/* 样式三 */}

  根据这些教程的解释,这种设置的效果是:当视口宽度小于等于600px时,应用样式一;当视口宽度大于等于600px且小于等于960px时,应用样式二;当视口宽度大于等于960px时,应用样式三。粗看上去没有问题,根据不同视口宽度设置了三种样式效果,但是细看的话问题就来了。上面在描述视口宽度时,都使用了“等于”这个逻辑关系。如果只针对一条规则就没什么好说的了,但600px和960px这两个值都同时满足了两条规则,即满足第一条规则的小于等于600px,又满足第二条规则的大于等于600px,这样便产生了条件重叠的问题。那么当窗口的宽度正好处于600px或960px这种处于分界位置的值的时候,会是怎样呢?

  我们可以进行一个简单的试验,demo很简单,实现的效果是一个<div>在上述三种像素范围内的颜色切换,重点观察浏览器视口宽度在600px和960px像素时<div>的颜色到底受哪个media query设置的影响。浏览器宽度采用手动拉伸窗体的方式进行调整,绑定window对象的onresize事件以在console窗口中输出当前的窗口宽度值。

  通过上述试验发现,当浏览器宽度值为600px时,其效果还是停留在样式一的效果上。当宽度调整为601px时,其会变成样式二的效果。也就是说,当一个值作为一个条件的上限的同时又作为另一个条件的下限时,其对于下限条件而言并不包含等于的关系。同理,对于样式三的min-width:960px而言,其含义也是在大于960px的情况下,并不包含等于960px的情况。

  还有一种情况,比如我们想在不同的视口宽度下改变网页元素的布局,比如将横向排列改为纵向排列。当这种页面处于600px或960px这种分界值时,页面元素的排列不会符合css中设置的任何一种规则,具体是什么样子可以自己手动尝试一下。

时间: 2024-07-30 02:32:22

media query中的条件重叠的相关文章

CSS media query应用中的层叠特性使用最佳实践

media query是css3规范中引入的,它提供了一种responsive design的基础机制:浏览器在不同size的设备中将以不同样式展现网页,这就给一个网页能够适应不同device一种可能.在实际使用中,我常常碰到以下问题:为什么media query的rule不起作用?很有可能和你的media query所处的位置有关,也很有可能和media query中的selector权重不 如外面的targeting到相同元素的css权重有关,比如: @media screen and (m

响应式设计的思考:媒体查询(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的用例. 本文主要整理

media query ie8- 兼容实现总结

虽然说响应式设计的理想状态是,需对pc/移动各种终端进行响应:但是现实是高分辨率的pc端与手机终端屏幕相差太大,像电商这样有大量图片和文字信息的同时排版要求精准的页面,设计一个同时适应高分辨率pc又适合小尺寸的手机终端是挑战 :同时高分辨率下pc页面信息量巨大,对于手机端用户是否需要,也许会造成带宽浪费;再者手机终端和pc终端的用户操作习惯也相差甚大,这种多图多信息量要求精准的页面,设计出来恐怕会是2个完全不同的版本,也许各自维护更方便.由于业务形态原因,随着用户分辨率的提高,1024x768已

利用media query让背景图适应不同分辨率的设备

随着上网方式的多样化,用户选择上网的工具不再仅是PC,而可以是手机,或者平板电脑.随之而来的问题是如何让网页适应不同分辨率,这给前端工程师们带来了新的挑战,其中重要的一点是如何让图片能在不同的分辨率下都能给用户带来良好的用户体验? 方法概述 CSS3中的media query属性让我们可以根据浏览器的高宽,设备的像素比等来使用不同的CSS.当然它还一些别的用法,具体请参考这里. device-pixel-ratio是media query一查询条件,用于获得设备的像素比.一般来说iPhone4/

css Media Query详解

Media Queries直译过来就是“媒体查询”,在我们平时的Web页面中head部分常看到这样的一段代码: 1 <link href="css/reset.css" rel="stylesheet" type="text/css" media="screen" /> 2 <link href="css/style.css" rel="stylesheet" type

使用media query 来实现响应式设计

你的网页在手机上显示效果可以在电脑上一样好看.完成这个任务的奥秘被称为响应式设计,媒体查询(media query)是实现网页响应的关键. 在电脑上一个例子: <div class="row"> <div class="span4">...</div> <div class="span4">...</div> <div class="span4">...&

Respond.js让IE6-8支持CSS3 Media Query

Bootstrap里面就引入了这个js文件,从名字看出来是自适应的兼容.打开IE看了一下,效果挺好的,自适应的效果挺好的.Respond.js让不支持CSS3 Media Query的浏览器包括IE6-IE8等其他浏览器支持查询. 使用方式 官方demo地址:http://scottjehl.github.com/Respond/test/test.html 1.在css中正常用 min/max-width media queries @media screen and (min-width:

Css3的Media Query方法总结—让您的网站兼容手机

一.Css3的Media Queries 翻译成中文是“媒体查询”,有如下几种引入方式: 1.直接head中引用,其实media在css2中已经存在,不过,他的主要作用您没有关注,兼容所有媒体等.你肯定见到过如下的写法: <link href="css/style.css" rel="stylesheet" type="text/css" media="all" /> 现在,我们为了兼容屏幕的大小,可以这么写: &

Css3的Media Query 媒体查询 方法总结—让您的网站兼容手机

最近几年,大屏幕手机和ipad等移动设备的流行,使你的网页兼容移动设备已成为一种流行!移动设备的屏幕大小是五花八门,各式各样!要想很好的兼容移动设备,Css3的media技术是功不可没. 我的博客,应用了CSS3的media技术,使其在手机等移动设备上面也可以查看.当然,只凭css3的media技术,做好手机网站是远远不够的,手机网站注意事项和总结,后面会陆续出一些文章,欢迎持续关注! 好了,废话少说,下面进入正题: 一.Css3的Media Queries 翻译成中文是“媒体查询”,有如下几种