0

0

CSS3中的media媒体查询

高洛峰

高洛峰

发布时间:2017-02-17 13:11:40

|

1955人浏览过

|

来源于php中文网

原创

媒体查询多用于响应式网页中。

1.初始化设置:

在HTML文件中,网页顶部

标签中插入一句话:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

这句话在于对响应式网页做一个初始化设置,主要包括:

name="viewport":标记显示设备为视口;

立即学习前端免费学习笔记(深入)”;

width = device-width:宽度等于当前设备的宽度;

initial-scale:初始的缩放比例(默认设置为1.0);
minimum-scale:允许用户缩放到的最小比例(默认设置为1.0);
maximum-scale:允许用户缩放到的最大比例(默认设置为1.0);   
user-scalable:用户是否可以手动缩放(默认设置为no,因为我们不希望用户放大缩小页面)。

2.解决IE浏览器的兼容性问题:

因为IE浏览器(IE8)不支持HTML5和CSS3中的media,所以要加载用于解决IE浏览器兼容性问题的JS文件:

<!--[if lt IE 9]>
	<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
	<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->

两个<script></script>标签中的src属性所指向的文件链接地址为固定地址中的文件,直接异地引用就好,不用下载到本地引用。

3.设置IE的渲染方式为最高:

现在有很多人的IE浏览器都升级到IE9以上,这个时候会有很多诡异的事情发生,例如现在是IE9的浏览器,但是浏览器的文档模式却是IE8,为了防止这种情况,我们需要下面这段代码来让IE的文档模式永远都是最新:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

当然还有一个更给力的写法:

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">

这段代码后面加了一个chrome=1,这是由于Google Chrome Frame(谷歌内嵌浏览器框架GCF),如果用户电脑安装这个chrome插件,就可让电脑内的IE浏览器规避版本因素,使用Webkit引擎及V8引擎进行排版及运算。当然如果用户没装这个插件,这段代码就会让IE浏览器以最高的文档模式展现效果。

4.CSS3 media 媒体查询的写法:

@media screen and (max-width: 960px){
	body{
		background: #000;
	}
}

这是一个media的标准写法,在CSS文件中,意为:当页面小于960px时执行以下CSS代码,具体内容暂不用管。

对于上述代码中的screen,意为在告知设备在打印页面时使用衬线字体,在屏幕上显示时用无衬线字体。目前很多网站都会直接省略screen,从而不需要考虑用户打印网页的需求,所以又有这种写法:

@media (max-width: 960px){
	body{
		background: #000;
	}
}

本着思维严谨的原则,个人不会采用这种写法。
5.CSS3媒体查询主体代码组合:

在响应式网页布局中需要持续运用媒体查询代码组合,主要作用在于判断所适配屏幕的宽度,并根据各种宽度条件套用不同的CSS样式。

如当屏幕宽度等于960px时,将网页背景色变为红色:

@media screen and (max-device-width:960px){
	body{
		background:red;
	}
}

如当屏幕宽度最大为960px(小于960px)时,将网页背景色变为黑色:

@media screen and (max-width: 960px){
	body{
		background: #000;
	}
}

如当屏幕宽度最小为960px(大于960px)时,将网页背景色变为桔色:

@media screen and (min-width:960px){
	body{
		background:orange;
	}
}

更为常见的是混合使用,如当屏幕宽度介于960px和1200px之间时,将网页背景色变为黄色:

@media screen and (min-width:960px) and (max-width:1200px){
	body{
		background:yellow;
	}
}

6.总体开发思路:

衣购网站项目(三层开发)源码
衣购网站项目(三层开发)源码

商品查询功能提供了一个快速查看商品的途径。商品查询分为基本查询和高级查询。基本查询:提供关键字和商品大类两种条件的查询,用户可以只填写关键字或者选择商品大类或者关键字和商品大类都填写来查询商品。高级查询:提供关键字,商品大类,商品小类,商品价格范围四种条件的查询,用户可以任意填写其中一种或几种的查询条件来查询想要了解的商品信息。商品查询功能大大的方便了用户,提高了网站的用户体验。(5)帮助系统模块

下载

使用CSS3中媒体查询的大致思路就是判断网页在不同设备中所处的宽度范围,这样的范围可能有三种(PC、平板、手机),也可能有四种(PC、平板、中大屏手机、小屏手机),当然也可能只需要两种(平板、手机,PC端单独开发一版时可不作为CSS3媒体查询的使用对象),并为各种宽度范围情况下的所需页面元素套用不同的CSS样式,从而适配各种设备。

7.响应式网页开发中的宽度问题:

在实际开发中,通常需要设置响应式网页宽度的最大值,一旦忽略最大宽度,臃肿或零散的网页布局都会造成视觉洪灾,也就是我们常说的看起来很low。
另外谈谈目前显示设备中的网页宽度问题(由于篇幅问题,就不从工业革命开始扯了),目前最为常见的宽度基本上都是:大于或等于960px的PC端(1920px、1600px、1440px、1280px、1140px、960px)、960px至640px之间的平板端(768px、640px)以及640px以下的手机端(480px、320px),以上宽度存在已久,且显示设备中的网页宽度会长期处于这样的状态下,在响应式网页宽度设计上,基本从这几个尺寸考虑就已经足够。
8.media媒体查询所有参数汇总:

媒体查询器中还包含并不常用的相关功能,悉如示下:

  • width:浏览器可视宽度,

  • height:浏览器可视高度,

  • device-width:设备屏幕的宽度,

  • device-height:设备屏幕的高度,

  • orientation:检测设备目前处于横向还是纵向状态,

  • aspect-ratio:检测浏览器可视宽度和高度的比例(例如:aspect-ratio:16/9),

  • device-aspect-ratio:检测设备的宽度和高度的比例,

  • color:检测颜色的位数(例如:min-color:32就会检测设备是否拥有32位颜色),

  • color-index:检查设备颜色索引表中的颜色(他的值不能是负数),

  • monochrome:检测单色楨缓冲区域中的每个像素的位数(这个太高级,估计咱很少会用的到),

  • resolution:检测屏幕或打印机的分辨率(例如:min-resolution:300dpi或min-resolution:118dpcm),

  • grid:检测输出的设备是网格的还是位图设备。

9.扩展——在CSS2中同样有媒体查询:

media媒体查询并不是CSS3诞生之后的专用功能,早在CSS2开始就已经支持media,比如:

在HTML文件中的

标签中写入这句:
<link rel="stylesheet" type="text/css" media="screen" href="style.css">

以上是CSS2实现的衬线用法,href属性中写入在某单一显示设备中链接的CSS文件,但仅供入门,

如要判断移动设备是否为纵向放置的显示屏,可以这样写:

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

如要让小于960px的页面执行指定的CSS样式文件,可以这样写:

<link rel="stylesheet" type="text/css" media="screen and (max-width:960px)" href="style.css">

当然,CSS2中的媒体查询方法放到现在并不推荐使用,最大的弊端在于这样会增加页面http的请求次数,增加页面负担,使用CSS3中的媒体查询才是目前的最佳方法。

更多CSS3中的media媒体查询相关文章请关注PHP中文网!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
html5播放器怎么用
html5播放器怎么用

本合集全面介绍HTML5播放器的使用方法,涵盖基础语法、自定义控制、兼容性处理及实战示例。阅读专题下面的文章了解更多详细内容。

0

2026.02.27

Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

18

2026.02.26

Golang Web 开发路线:构建高效后端服务
Golang Web 开发路线:构建高效后端服务

《Golang Web 开发路线:构建高效后端服务》围绕 Go 在后端领域的工程实践,系统讲解 Web 框架选型、路由设计、中间件机制、数据库访问与接口规范,结合高并发与可维护性思维,逐步构建稳定、高性能、易扩展的后端服务体系,帮助开发者形成完整的 Go Web 架构能力。

17

2026.02.26

Golang 并发编程专题:掌握多核时代的核心技能
Golang 并发编程专题:掌握多核时代的核心技能

《Golang 并发编程专题:掌握多核时代的核心技能》系统讲解 Go 在并发领域的设计哲学与实践方法,深入剖析 goroutine、channel、调度模型与并发安全机制,结合真实场景与性能思维,帮助开发者构建高吞吐、低延迟、可扩展的并发程序,全面提升多核时代的工程能力。

16

2026.02.26

batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

431

2026.02.25

Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法
Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法

本专题系统整理Steam官网最新可用入口,涵盖网页版登录地址、新用户注册流程、账号登录方法及官方游戏商店访问说明,帮助新手玩家快速进入Steam平台,完成注册登录并管理个人游戏库。

130

2026.02.25

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

41

2026.02.25

Python数据处理流水线与ETL工程实战
Python数据处理流水线与ETL工程实战

本专题聚焦 Python 在数据工程场景下的实际应用,系统讲解 ETL 流程设计、数据抽取与清洗、批处理与增量处理方案,以及数据质量校验与异常处理机制。通过构建完整的数据处理流水线案例,帮助开发者掌握数据工程中的性能优化思路与工程化规范,为后续数据分析与机器学习提供稳定可靠的数据基础。

15

2026.02.25

Java领域驱动设计(DDD)与复杂业务建模实战
Java领域驱动设计(DDD)与复杂业务建模实战

本专题围绕 Java 在复杂业务系统中的建模与架构设计展开,深入讲解领域驱动设计(DDD)的核心思想与落地实践。内容涵盖领域划分、聚合根设计、限界上下文、领域事件、贫血模型与充血模型对比,并结合实际业务案例,讲解如何在 Spring 体系中实现可演进的领域模型架构,帮助开发者应对复杂业务带来的系统演化挑战。

9

2026.02.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 6.2万人学习

HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 7.2万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 11.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号