最近有同学问到了媒体查询引入css时怎么调试,于是我想了一个小方法,并且同时研究了一下媒体查询这个属性来的。
现在大家都在说响应式页面设计,依我个人看来,响应式最低的要求就是----在不同的屏幕上展现不同的页面。而媒体查询是构成这一切的基础,根据msdn的说明,媒体查询的是根据不同的规则应用不同的样式的一种方式,其具体语法如下:
@media <media-query> {
/* media-specific rules */
}
<link rel="stylesheet" type="text/css" href="a.css" media="<rules>" />
根据语法,惊奇的发现,原来这玩意就那么简单。对哈,其实就是简单了,你可以理解为他就是一个css里面的if。
而if里面的常用变量要使用下面表格里面的哦。当然,除了media 还有only等选项,关于其他属性,本文就不再讨论了
名称 |
摘要 |
说明 |
width |
视口宽度 |
height |
视口高度 |
aspect-ratio |
视口横纵比 |
Pixel density |
设备的像素密度(ppi) |
color |
设备支持的色彩,比如256位等 |
print |
指定在打印时使用的样式 |
update-frequency |
刷新频率 |
Media Queries Level 4中的属性 |
overflow-block |
溢出的处理方式,是block? |
Media Queries Level 4中的属性 |
overflow-inline |
溢出的处理方式,是inline? |
Media Queries Level 4中的属性 |
device-width |
设备的宽度 |
Media Queries Level 4中的属性 |
device-height |
设备的高度 |
Media Queries Level 4中的属性 |
device-aspect-ratio |
设备的横总比 |
Media Queries Level 4中的属性 |
* 图表中的media查询level 4 为w3c正在进行草案中,所以不推荐使用。
废话不说了,上测试代码,大家可以把这一段代码保存到一个html里面,执行一下,你会看到随着屏幕的大小的变化,展示的数据不一样哦。
<!doctype html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>media query test</title>
<link rel="stylesheet" type="text/css" href="a.css" media="screen and (max-width: 400px)">
<link rel="stylesheet" type="text/css" href="b.css" media="screen and (min-width: 400px) and (max-width: 800px)">
<link rel="stylesheet" type="text/css" href="c.css" media="screen and (min-width: 800px)">
</head>
<body>
</body>
</html>
a.css
body:after {
<span style="white-space:pre"> </span>content: 'small';
}
b.css
body:after {
<span style="white-space:pre"> </span>content: 'biger';
}
c.css
body:after {
<span style="white-space:pre"> </span>content: 'much biger';
}
这里有几个注意点:
1、只要是是写在link中的css代码都会被加载,只是根据media属性的不同执行不同的css内容而已,想通过media控制css文件加载时不行的。
2、在chrome中使用resize window时,可以看到以上代码生效,而在模拟手机调试环境中必须把screen下面的emulate viewport勾选去掉才能生效,在实际手机上貌似可以生效。
总之,link的media属性和@media类似,是通过判断rule来判断是否使用media中的css,如果使用media,其作用范围为整个加载的css文件,而使用@media则规则只作用于media内部。
分享到:
相关推荐
《NTsky新闻发布v1.0测试版》是一款基于 Java 开发的新闻发布系统的测试版本,旨在为新闻机构和媒体提供一个简单易用的新闻发布平台。该系统具有基本的新闻发布和管理功能,包括新闻分类、新闻编辑、新闻发布等核心...
它包含着大量的手写数字图像,供开发者用来训练和测试各种算法和模型。这个数据集的规模相对较小,因此对于绝大多数人来说,无论是数据的下载还是训练过程,都不会对电脑性能提出过高的要求。这使得mnist成为了理想...
第一:利用最简单的平行双目立体系统获取场景的深度图像,再根据深度图像在多视图视频通信中具体的对于压缩效率的问题作了初步的深度图像处理,比如深度图像边缘的锐化和图像的平滑性。本文将着眼点放在如何制作深度...
多媒体教室以多渠道的教学内容呈现方式,将理论教学和直观教学有机的结合在一起,调动学生的多种感官参与学习,提升了教学的质量、提高了教学效率、扩大了教学规模。 第一代完整的多媒体教室由图像显示系统、音响...
通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入...
易学易用: Python的语法设计简单直观,更接近自然语言,使初学者更容易上手。这种易学易用的特性促使了Python在教育领域和初学者中的广泛应用。 高级语言: Python是一种高级编程语言,提供了自动内存管理(垃圾...
本书是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书。本书避免出现云山雾罩、晦涩难懂的讲解,代之以轻松活泼、由浅入深的剖析。这必将使得阅读本书的读者少走弯路,...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。...鼓励下载和使用,并欢迎大家互相学习,共同进步。
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。...鼓励下载和使用,并欢迎大家互相学习,共同进步。
但这次学习更多的是让 我更新了全新的观念和想法,充分认识到了现代教育教学媒体特性的重要性,懂得了一 些计算机工作原理,领悟到电脑是人人必会、事事必备的机器。 学习是辛苦的,但我认真的去把内容自学好,...
XXX学院《人事管理数据库查询系统》 课 程 设 计 说 明 书 姓名: 学号: 专业: 2012年5月16日 目 录 1 题目和要求 4 2 需求分析 4 2.1 选择开发平台 4 2.2 开发工具 4 2.3 硬件环境 5 2.4 系统处理数据的需求分析 ...
专为树莓派(Raspberry Pi)设计的多媒体播放器且支持(Windows、Linux、Android)系统,支持视频、音频、流媒体、图片、摄像头、动画、文本、滚动字幕、日期时间、二维码、等,支持指令控制播放、覆盖、停止、移动、等...
它旨在尽可能简单地理解,同时仍提供出色的视觉质量和流媒体性能。它不适合生产使用,因为它没有经过长时间的严格测试,并且有许多硬编码参数。由于我使用的是 FFmpeg 的主分支,因此它也可能随时停止工作。也许在下...
1、走进日语:小丸子老师将“日本文化”、“日本文字”的背景和历史娓娓道来, 讲述了“日语很简单”的道理,亲切而又简明地告诉您“如何学好日语”。 2、语音基础:详述五十音图,包括清音、浊音、拗音的学习,配...
.zip嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,...
通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,...
移动应用与物联网(IoT):作为数据存储层,支撑大量设备的数据采集、存储和查询需求。 嵌入式系统:在资源有限的环境中,作为轻量级数据库解决方案。 总之,MySQL凭借其开源、跨平台、高性能、灵活扩展、丰富...
基于Python的虚假新闻检测项目可以通过自然语言处理和机器学习技术来实现。下面是一个简单的源码生成简介: 数据收集:首先,需要收集虚假新闻和真实新闻的数据集。可以从公开的新闻网站、社交媒体或者其他来源获取...
移动应用与物联网(IoT):作为数据存储层,支撑大量设备的数据采集、存储和查询需求。 嵌入式系统:在资源有限的环境中,作为轻量级数据库解决方案。 总之,MySQL凭借其开源、跨平台、高性能、灵活扩展、丰富...
基于UDP实现“通信网基础-实验测试音频”文件的传输,并测试接收到的文件与发送的文件是否一致,检查接收端接收的文件能否正确播放,以验证文件传输的完整性。 基于vs2013创建一个Win32控制台应用程序工程,工程名...