11.CSS3的媒介(media)查询

CSS3 的媒介(media)查询

经典真题

  • 如何使用媒体查询实现视口宽度大于 320px 小于 640pxdiv 元素宽度变成 30%

媒体查询

媒体查询英文全称 Media Query,顾名思义就是会查询用户所使用的媒体或者媒介。

在现在,网页的浏览终端是越来越多了。用户可以通过不同的终端来浏览网页,例如:PC,平板电脑,手机,电视等。尽管我们无法保证一个网站在不同屏幕尺寸和不同设备上看起来一模一样,但是至少要让我们的Web页面能适配用户的终端。

CSS3 中的 Media Query (媒体查询)模块就是用来让一个页面适应不同的终端的。

Media Type 设备类型

首先我们来认识一下 CSS 中所支持的媒体类型。

CSS2 中常碰到的就是 all(全部)、screen(屏幕)和 print(页面打印或打印预览模式)。然而媒体的类型其实远不止这 3 种。

W3C 中共列出了 10 种媒体类型,如下表所示:

设备类型
All所有设备
Braille盲人用点字法触觉回馈设备
Embossed盲文打印机
Handheld便携设备
Print打印用纸或打印预览视图
Projection各种投影设备
Screen电脑显示器
Speech语音或音频合成器
Tv电视机类型设备
Tty使用固定密度字母栅格的媒介,比如电传打字机和终端

当然,虽然上面的表列出来了这么多,但是常用的也就是 all(全部)、screen(屏幕)和 print(页面打印或打印预览模式)这三种媒体类型。

媒体类型引用方法

引用媒体类型的方法有和很多,常见的媒体类型引用方法有:link 标签、xml 方式、@importCSS3 新增的 @media

  1. link 方法

link 方法引入媒体类型其实就是在 link 标签引用样式的时候,通过 link 标签中的 media 属性来指定不同的媒体类型,如下:

<link rel="stylesheet" href="index.css" media="screen" />
<link rel="stylesheet" href="print.css" media="print" />
  1. xml 方式

xml 方式和 link 方式比较相似,也是通过 media 属性来指定,如下:

<? xml-stylesheet rel="stylesheet" media="screen" href="style.css" ?>
  1. @import

@import 引入媒体类型主要有两种方式,一种是在 CSS 样式表中通过 @import 调用另一个样式文件,另外一种是在 style 标签中引入。

注意:IE6IE7 中不支持该方式

在样式文件中引入媒体类型:

@import url('./index.css') screen

style 标签中引入媒体类型:

<style>
  @import url('./index.css') screen
</style>
  1. @meida 的方式

@mediaCSS3 中新引进的一个特性,称为媒体查询。@media 引入媒体也有两种方式,如下:

在样式文件中引入媒体类型:

@media screen{
  /* 具体样式 */
}

style 标签中引入媒体类型:

<style>
  @media screen{
    /* 具体样式 */
  }
</style>

虽然上面介绍了 4 种引入方式,但是最常见的就是第 1 种和第 4 种。

媒体查询具体语法

接下来我们来看一下媒体查询的具体语法。

这里我们可以将 Media Query 看成一个公式:

Media Type(判断条件)+ CSS(符合条件的样式规则)

这里举例如下:

link 的方式

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

@media 的方式

@meida screen and (max-width:600px){
  /* 具体样式 */
}

上面的两个例子中都是使用 width 来进行的样式判断,但是实际上还有很多特性都可以被用来当作样式判断的条件。

具体如下表:

image-20240222091235937

有了 Media Query,我们能在不同的条件下使用不同的样式,使页面在不同的终端设备下达到不同的渲染效果。

这里有一个具体的公式如下:

@media 媒体类型 and (媒体特性) {
	/* 具体样式 */
}

来看几个具体示例。

  1. 最大宽度 max-width

该特性是指媒体类型小于或等于指定宽度时,样式生效,例如:

@media screen and (max-width:480px) {
	/* 具体样式 */
}

当屏幕宽度小于或等于 480px 时,样式生效

  1. 最小宽度 min-width

该特性和上面相反,及媒体类型大于或等于指定宽度时,样式生效,例如:

@media screen and (min-width:480px) {
	/* 具体样式 */
}

当屏幕宽度大于或等于 480px 时,样式生效

  1. 多个媒体特性混合使用

当需要多个媒体特性时,使用 and 关键字将媒体特性结合在一起,例如:

@media screen and (min-width:480px) and (max-width:900px){
	/* 具体样式 */
}

当屏幕大于等于 480px 并且小于等于 900px 时,样式生效。

  1. 设备屏幕的输出宽度 Device Width

在智能设备上,例如 iphone、ipad 等,可以通过 min-device-widthmax-device-width 来设置媒体特性,例如:

@media screen and (max-device-height:480px) {
	/* 具体样式 */
}

在智能设备上,当屏幕小于等于 480px 时样式生效

  1. not 关键字

not 关键词可以用来排除某种制定的媒体特性,示例如下:

@media not print and (max-width:900px) {
	/* 具体样式 */
}

样式代码将被用于除了打印设备和屏幕宽度小于或等于 900px 的所有设备中。

  1. 未指明 Media Type

如果在媒体查询中没有明确的指定 Media Type,那么其默认值为 all

@media (max-width: 900px){
  /* 具体样式 */
}

上面的样式适用于屏幕尺寸小于或等于 900px 的所有设备。

更多关于媒体查询的内容可以参阅 MDNhttps://developer.mozilla.org/zh-CN/docs/Web/CSS/Media_Queries/Using_media_queries

真题解答

  • 如何使用媒体查询实现视口宽度大于 320px 小于 640pxdiv 元素宽度变成 30%

参考答案:

@media screen and (min-width: 320px) and (max-width: 640px){
  	div{
      width: 30%;
    }
}

-EOF-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/403624.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于java springboot+mybatis爱游旅行平台前台+后台设计实现

基于java springbootmybatis爱游旅行平台前台后台设计实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 可定制系统 欢迎点赞 收藏…

Http改为Https后该如何测试

需要了解Http和Http之间的关系&#xff0c;他们之间都有哪些优点&#xff0c;哪些缺点&#xff0c;如果使用的产品进行了更改&#xff0c;该如何进行测试等等&#xff0c;Https提供了一个安全层&#xff08;SSL/TLS&#xff09;&#xff0c;这个安全层在客户端和服务器之间提供…

羊大师解读,春季牧场产出的羊奶更好吗?

羊大师解读&#xff0c;春季牧场产出的羊奶更好吗&#xff1f; 由于春季牧场上的牧草新鲜嫩绿且富含各种营养成分&#xff0c;例如蛋白质、维生素和矿物质等&#xff0c;所以春季产出的羊奶可能更加优质。这些营养物质为羊奶提供了丰富的营养来源&#xff0c;使得春季牧场产出…

flutter开发实战-StreamBuilder使用介绍及实例

flutter开发实战-StreamBuilder使用介绍及实例 StreamBuilder是一个Widget&#xff0c;它依赖Stream来做异步数据获取刷新widget。 一、Stream Stream是一种用于异步处理数据流的机制&#xff0c;它允许我们从一段发射一个事件&#xff0c;从另外一段去监听事件的变化.Strea…

HTTP 与 HTTPS-HTTP 解决了 HTTP 哪些问题?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 解决了 HTTP 哪些问题? HTTP 由于是明文传输&#xff0c;所以安全上存在以下三个风险: 窃听风险&#xff0c;比如通信链路上可以获取通信内容&#xff0c;用户号容易没。篡改风险&#xff0c;比如…

Vue 图片轮播第三方库 介绍

Vue图片轮播是一种在网页上以自动或手动方式展示图片的组件&#xff0c;常用于产品展示、网站banner等场景。有许多第三方库可以帮助Vue开发者轻松实现图片轮播功能。以下是一些流行的Vue图片轮播第三方库的介绍&#xff1a; 1. Vue-awesome-swiper - **简介**&#xff1a;V…

Spring Cloud Alibaba-05-Gateway网关-03-过滤器(Filter)使用

Lison <dreamlison163.com>, v1.0.0, 2023.10.20 Spring Cloud Alibaba-05-Gateway网关-03-过滤器(Filter)使用 文章目录 Spring Cloud Alibaba-05-Gateway网关-03-过滤器(Filter)使用过滤器的简介什么是过滤器&#xff1f;过滤器的生命周期过滤器的分类和作用范围 局部…

从 Elasticsearch 到 Apache Doris,统一日志检索与报表分析,360 企业安全浏览器的数据架构升级实践

导读&#xff1a;随着 360 企业安全浏览器用户规模的不断扩张&#xff0c;浏览器短时间内会产生大量的日志数据。为了提供更好的日志数据服务&#xff0c;360 企业安全浏览器设计了统一运维管理平台&#xff0c;并引入 Apache Doris 替代了 Elasticsearch&#xff0c;实现日志检…

HarmonyOS4.0系统性深入开发36 媒体查询(mediaquery)

媒体查询&#xff08;mediaquery&#xff09; 概述 媒体查询作为响应式设计的核心&#xff0c;在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景&#xff1a; 针对设备和应用的属性信息&#xff08;比如显…

Prometheus+Grafana 监控

第1章Prometheus 入门 Prometheus 受启发于 Google 的 Brogmon 监控系统&#xff08;相似的 Kubernetes 是从 Google的 Brog 系统演变而来&#xff09;&#xff0c;从 2012 年开始由前 Google 工程师在 Soundcloud 以开源软件的形式进行研发&#xff0c;并且于 2015 年早期对外…

【FPGA】VHDL:小型出勤系统设计

附源代码&#xff0c;一定能实现&#xff01; 目录 EDA设计练习题&#xff1a; 实验要求如下&#xff1a; 思路分析&#xff1a; 代码 99进制计数器 码转换 顶层文件 特别注意 测试 编译通过 结果展示 RTL视图 技术映射视图 软件&#xff1a;Quartus II 13.0 (64…

【打工日常】使用docker部署StackEdit编辑器-Markdown之利器

一、StackEdit介绍 StackEdit一款强大的在线Markdown编辑器&#xff0c;不仅具备卓越的写作功能&#xff0c;还支持实时预览、多设备同步等特性。 很多时候基于安全和信息保密的关系&#xff0c;建议放在自己的服务器或者本地linux去运行&#xff0c;这样会比较省心。 二、本次…

使用k-近邻算法改进约会网站的配对效果(kNN)

目录 谷歌笔记本&#xff08;可选&#xff09; 准备数据&#xff1a;从文本文件中解析数据 编写算法&#xff1a;编写kNN算法 分析数据&#xff1a;使用Matplotlib创建散点图 准备数据&#xff1a;归一化数值 测试算法&#xff1a;作为完整程序验证分类器 使用算法&…

MybatisPlus基础入门以及入门案例

目录 一、MyBatisPlus简介 二、MyBatisPlus特性 三、MyBatisPlus支持的数据库 四、框架结构 五、入门案例 1.开发环境 2.创建数据库及表 3.创建Spring Boot工程 4.导入依赖 5.项目结构 6.配置application.yml 7.配置SpringBoot启动类 8.添加实体类 9.添加mapper接口 10.测试…

vue后台管理添加水印简单方式watermark-package

详情参考:https://www.npmjs.com/package/watermark-package 示例方法 <el-button type"primary" click"AddWatermark">添加水印</el-button><el-button type"primary" click"RemoveWatermark">清除水印</el-but…

MKdocs添加顶部公告栏

效果如图&#xff1a; docs/overrides下新建main.html &#xff0c;针对main.html文件 树状结构如下: $ tree -a . ├── .github │ ├── .DS_Store │ └── workflows │ └── PublishMySite.yml ├── docs │ └── index.md │ └──overrides │…

领域驱动设计在互联网业务开发中的实践

至少30年以前&#xff0c;一些软件设计人员就已经意识到领域建模和设计的重要性&#xff0c;并形成一种思潮&#xff0c;Eric Evans将其定义为领域驱动设计&#xff08;Domain-Driven Design&#xff0c;简称DDD&#xff09;。在互联网开发“小步快跑&#xff0c;迭代试错”的大…

数字孪生城市及其他应用场景应用

数字孪生的“虚拟副本”让城市治理不再盲人摸象。 从城市治理的角度来看&#xff0c;数字孪生城市相当于真实世界的“操作系统”&#xff0c;有了它就可以远程对城市的每一个角落进行监测、智慧调度&#xff0c;无论是街道、社区&#xff0c;还是商场、变电站乃至城市排水系统…

使用 JMeter 生成测试数据对 MySQL 进行压力测试

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

【C语言基础教程】getline函数与临时文件

文章目录 前言一、getline函数1.1 为什么需要这个函数1.2 getline函数的使用1.3 使用示例 二、临时文件2.1 临时文件的使用2.2 示例代码 总结 前言 在C语言编程中&#xff0c;处理文本文件是一个常见的任务。然而&#xff0c;有时候我们需要处理那些我们不想在磁盘上创建的临时…