CSS 中@media查询的工作原理,如何利用它实现不同设备的样式适配

server/2025/3/23 0:11:17/

大白话 CSS 中@media查询的工作原理,如何利用它实现不同设备的样式适配

什么是 @media 查询

在网页设计里,不同的设备(像手机、平板、电脑)屏幕尺寸各异。要是只使用一套固定的样式,网页在某些设备上可能就显示得乱七八糟。@media 查询就像是一个“智能开关”,能依据设备的特性(比如屏幕宽度、高度、分辨率等)来应用不同的 CSS 样式,从而让网页在各种设备上都能完美显示。

@media 查询的工作原理

@media 查询的核心在于设定一个或多个条件,当设备的特性满足这些条件时,就会应用查询里定义的 CSS 样式。基本的语法如下:

css">/* 定义一个媒体查询 */
@media 媒体类型 and (媒体特性) {/* 当条件满足时应用的样式 */选择器 {属性:;}
}
  • 媒体类型:用来指定查询适用的设备类型,常见的有 all(所有设备)、screen(屏幕设备,如电脑、手机、平板)、print(打印设备)等。
  • 媒体特性:这是查询的关键条件,例如 min-width(最小宽度)、max-width(最大宽度)、orientation(设备方向,如 portrait 竖屏、landscape 横屏)等。

如何利用 @media 查询实现不同设备的样式适配

下面通过一个具体的例子来说明如何使用 @media 查询为不同屏幕宽度的设备应用不同的样式。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Media Query Example</title><style>css">/* 全局样式,适用于所有设备 */body {font-family: Arial, sans-serif;background-color: lightblue;color: black;}/* 当屏幕宽度小于等于 600px 时(通常是手机设备),应用以下样式 */@media screen and (max-width: 600px) {body {background-color: lightgreen; /* 将背景颜色改为浅绿色 */font-size: 14px; /* 减小字体大小 */}}/* 当屏幕宽度大于 600px 且小于等于 900px 时(通常是平板设备),应用以下样式 */@media screen and (min-width: 601px) and (max-width: 900px) {body {background-color: lightyellow; /* 将背景颜色改为浅黄色 */font-size: 16px; /* 调整字体大小 */}}/* 当屏幕宽度大于 900px 时(通常是电脑设备),应用以下样式 */@media screen and (min-width: 901px) {body {background-color: lightcoral; /* 将背景颜色改为浅珊瑚色 */font-size: 18px; /* 增大字体大小 */}}</style>
</head><body><h1>欢迎来到我的网页!</h1><p>这个网页使用了媒体查询来适配不同的设备。</p>
</body></html>

代码解释

  1. 全局样式
css">/* 全局样式,适用于所有设备 */
body {font-family: Arial, sans-serif;background-color: lightblue;color: black;
}

这部分样式是全局的,会应用到所有设备上。

  1. 手机设备样式(屏幕宽度小于等于 600px)
css">/* 当屏幕宽度小于等于 600px 时(通常是手机设备),应用以下样式 */
@media screen and (max-width: 600px) {body {background-color: lightgreen; /* 将背景颜色改为浅绿色 */font-size: 14px; /* 减小字体大小 */}
}

当设备屏幕宽度小于等于 600px 时,会将页面的背景颜色改为浅绿色,字体大小减小到 14px。

  1. 平板设备样式(屏幕宽度大于 600px 且小于等于 900px)
css">/* 当屏幕宽度大于 600px 且小于等于 900px 时(通常是平板设备),应用以下样式 */
@media screen and (min-width: 601px) and (max-width: 900px) {body {background-color: lightyellow; /* 将背景颜色改为浅黄色 */font-size: 16px; /* 调整字体大小 */}
}

当设备屏幕宽度在 601px 到 900px 之间时,会将页面的背景颜色改为浅黄色,字体大小调整为 16px。

  1. 电脑设备样式(屏幕宽度大于 900px)
css">/* 当屏幕宽度大于 900px 时(通常是电脑设备),应用以下样式 */
@media screen and (min-width: 901px) {body {background-color: lightcoral; /* 将背景颜色改为浅珊瑚色 */font-size: 18px; /* 增大字体大小 */}
}

当设备屏幕宽度大于 900px 时,会将页面的背景颜色改为浅珊瑚色,字体大小增大到 18px。

通过这种方式,我们可以根据不同设备的屏幕宽度来动态调整网页的样式,实现不同设备的样式适配。


http://www.ppmy.cn/server/177176.html

相关文章

有哪些开源的智慧园区项目?

作为专注于数字孪生技术的开发者团队&#xff0c;我们一直在数字孪生圈分享开源项目。但最近一次与AI助手Deepseek的对话&#xff0c;却让我们“又惊又喜”。 ——当询问“有哪些开源的智慧园区项目”时&#xff0c;Deepseek的回答中竟包含了我们自己的开源项目&#xff01; 这…

高效算法与系统优化:二叉树遍历、HTTPS安全、零拷贝及最大乘积问题解析*

*** 在日常开发和系统优化中&#xff0c;我们经常遇到二叉树的遍历问题、网络通信的安全保障、Linux 下的高效数据传输&#xff0c;以及数组处理的最优解法。本文将系统梳理这些知识点&#xff0c;帮助大家深入理解关键概念&#xff0c;并掌握高效实现方案。 1. 二叉树的三种…

【Azure 架构师学习笔记】- Azure Networking(1) -- Service Endpoint 和 Private Endpoint

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Networking】系列。 前言 最近公司的安全部门在审计云环境安全性时经常提到service endpoint&#xff08;SE&#xff09;和priavate endpoint&#xff08;PE&#xff09;的术语&#xff0c;为此做了一些研究储备。 云…

大数据(1.1)纽约出租车大数据分析实战:从Hadoop到Azkaban的全链路解析与优化

目录 一、背景与数据价值‌ ‌二、技术选型与组件分工‌ ‌三、数据准备与预处理‌ 四、实战步骤详解‌ ‌1. 数据上传至HDFS ‌2. Hive数据建模与清洗‌ 4‌.2.1 建表语句&#xff08;分区表按年份&#xff09;‌&#xff1a; ‌4‌.2.2 数据清洗&#xff08;剔除无效…

【设计模式】三十一、状态模式

系列文章|源码 https://github.com/tyronczt/design-mode-learn 文章目录 系列文章|源码一、模式核心思想二、模式结构三、Java代码示例&#xff1a;订单状态管理1. 定义状态接口2. 实现具体状态类3. 上下文类&#xff08;Context&#xff09;4. 客户端调用5. 运行截图 四、状…

【css酷炫效果】纯CSS实现球形阴影效果

【css酷炫效果】纯CSS实现球形阴影效果 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;上传后更新 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&#xff0c;赶时间&#xff0c;直接上代码。 html结…

Edge浏览器登录微软账户报错0x80190001的解决办法

问题 0x80190001是什么错误&#xff1f;有用户在Edge浏览器上登录微软账户遇到了这个错误代码&#xff0c;这是什么意思&#xff1f;要如何解决呢&#xff1f;一个比较靠谱的解决办法 解决方式 1、下载一个finder&#xff08;抓包软件&#xff09;**官网下载地址&#xff08;…

MySQL配置文件my.cnf详解

目前使用的服务器系统是CentOS8.5 ,针对MySql8.4的配置示例&#xff0c;自己根据实际情况修改。 安装MySql8.4时&#xff0c;MySql8.4没有默认的my.cnf,需要用户根据需要自行配置my.cnf文件&#xff0c;大概可看到下面这样的参数列表&#xff0c;可能不同版本的mysql参数多少会…