11.CSS3的媒介(media)查询

news2024/9/21 19:00:50

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-

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VG5032VDN 电压控制的晶体振荡器 (VCXO) 输出:LVDS

在今天繁复多变的电子市场中&#xff0c;设计师不断寻求更稳定、更灵活的时钟解决方案&#xff0c;以满足从通信网络到工业控制系统的广泛应用。VG5032VDN VCXO是一款高性能的电压控制晶体振荡器 它结合了高性能、多用途性和紧凑设计&#xff0c;是一款适合广泛应用的晶体振荡…

2.5网安学习第二阶段第五周回顾(个人学习记录使用)

本周重点 ①多进程和多线程 1、进程和线程 2、多线程爆破 ②Redis数据库 1、Redis的使用 2、Redis持久化 3、Redis未授权免密登录 ③嗅探和Python攻击脚本 1、嗅探&#xff08;端口扫描和IP扫描&#xff09; 2、SCAPY的应用 3、Python攻击脚本&#xff08;SYN半连接…

Day20_网络编程(软件结构,网络编程三要素,UDP网络编程,TCP网络编程)

文章目录 Day20 网络编程学习目标1 软件结构2 网络编程三要素2.1 IP地址和域名1、IP地址2、域名3、InetAddress类 2.2 端口号2.3 网络通信协议1、OSI参考模型和TCP/IP参考模型2、UDP协议3、TCP协议 2.4 Socket编程 3 UDP网络编程3.1 DatagramSocket和DatagramPacket1、Datagram…

测试公众号开发,链接访问问题

1.管道未打开&#xff0c;需要打开natapp代理&#xff0c;联系相关后端 2.在确保nginx代理配置路径无问题后&#xff0c;就是前端指向问题&#xff0c;联系相关前端 3.nginx代理配置路径不正确&#xff0c;打开页面是白板&#xff0c;看控制台报错&#xff0c;是否是静态资源…

我们在SqlSugar开发框架中,用到的一些设计模式

我们在《SqlSugar开发框架》中&#xff0c;有时候都会根据一些需要引入一些设计模式&#xff0c;主要的目的是为了解决问题提供便利和代码重用等目的。而不是为用而用&#xff0c;我们的目的是解决问题&#xff0c;并在一定的场景下以水到渠成的方式处理。不过引入任何的设计模…

【Linux取经路】文件系统之缓冲区

文章目录 一、先看现象二、用户缓冲区的引入三、用户缓冲区的刷新策略四、为什么要有用户缓冲区五、现象解释六、结语 一、先看现象 #include <stdio.h> #include <string.h> #include <unistd.h>int main() {const char* fstr "Hello fwrite\n"…

谷歌seo推广的费用是多少?

真正的开销取决于个人或企业的具体需求、目标及资源投入水平&#xff0c;如果你选择自己优化&#xff0c;成本主要体现为时间和努力——你需要花时间学习SEO的最佳实践并应用它们来优化你的网站。这种方式就几乎不需要花钱&#xff0c;但需要大量的学习和实践时间 而选择SEO专家…

Unity接入SQLite (一):SQLite介绍

1.简介 SQLite是一个开源的嵌入式关系数据库管理系统。它是一种轻量级的数据库引擎&#xff0c;不需要单独的服务器进程&#xff0c;可以直接嵌入到应用程序中使用。Sqlite使用简单、高效&#xff0c;并且具有对标准SQL的完整支持。它适用于需要在本地存储和访问数据的应用程序…

Shell好用的工具: cut

目标 使用cut可以切割提取指定列\字符\字节的数据 介绍 cut 译为“剪切, 切割” , 是一个强大文本处理工具&#xff0c;它可以将文本按列进行划分的文本处理。cut命令逐行读入文本&#xff0c;然后按列划分字段并进行提取、输出等操作。 语法 cut [options] filename opti…

opencv图像的本质

目的 OpenCV是一个跨平台的库&#xff0c;使用它我们可以开发实时的计算机视觉应用程序。 它主要集中在图像处理&#xff0c;视频采集和分析&#xff0c;包括人脸检测和物体检测等功能。 数字图像在计算机中是以矩阵形式存储的&#xff0c;矩阵中的每一个元素都描述一定的图像…

Ansible安装管理和模块的使用

目录 Ansible是什么 ansible 环境安装部署 管理端安装 ansible ansible 目录结构 配置主机清单 配置密钥对验证 ansible 命令行模块 1&#xff0e;command 模块 在远程主机执行命令&#xff0c;不支持管道&#xff0c;重定向等shell的特性 常用的参数 2&#xff0e;sh…

C# Onnx 使用onnxruntime部署实时视频帧插值

目录 介绍 效果 模型信息 项目 代码 下载 C# Onnx 使用onnxruntime部署实时视频帧插值 介绍 github地址&#xff1a;https://github.com/google-research/frame-interpolation FILM: Frame Interpolation for Large Motion, In ECCV 2022. The official Tensorflow 2…

【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、Java…

基于java+springboot+vue实现的美食信息推荐系统(文末源码+Lw)23-170

1 摘 要 使用旧方法对美食信息推荐系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在美食信息推荐系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次开发…

运维SRE-19 网站Web中间件服务-http-nginx

Ans自动化流程 1.网站集群核心协议&#xff1a;HTTP 1.1概述 web服务&#xff1a;网站服务&#xff0c;网站协议即可. 协议&#xff1a;http协议,https协议 服务&#xff1a;Nginx服务&#xff0c;Tengine服务....1.2 HTTP协议 http超文本传输协议&#xff0c;负责数据在网站…

【思扬赠书 | 第3期】由面试题“Redis是否为单线程”引发的思考

⛳️ 写在前面参与规则&#xff01;&#xff01;&#xff01; ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论三次&#xff09; ⛳️本次送书1~4本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越多】 很多人都遇到…

Day10-面向对象-抽象类和接口

文章目录 学习目标1. 抽象类1.1 抽象类注意事项1.2 修饰符的使用 2. 接口2.1 定义接口2.2 接口里可以定义的成员2.2 实现接口2.2.1 实现接口语法格式2.2.2 如何调用对应的方法2.2.3 练习 2.3 接口的多实现2.3.1 练习 2.4 冲突问题2.5 接口的多继承(了解)2.6 部分内置接口 学习目…

2024转行要趁早!盘点网络安全的岗位汇总

前段时间&#xff0c;知名机构麦可思研究院发布了《2024年中国本科生就业报告》&#xff0c;其中详细列出近五年的本科绿牌专业&#xff0c;信息安全位列第一。 对于网络安全的发展与就业前景&#xff0c;知了姐说过很多&#xff0c;作为当下应届生收入较高的专业之一&#xf…

【Python笔记-设计模式】对象池模式

一、说明 用于管理对象的生命周期&#xff0c;重用已经创建的对象&#xff0c;从而减少资源消耗和创建对象的开销 (一) 解决问题 主要解决频繁创建和销毁对象所带来的性能开销问题。如数据库连接、线程管理、网络连接等&#xff0c;对象的创建和销毁成本相对较高&#xff0c…

C 语言基本语法及实用案例分享

一、什么是 C 语言&#xff1f; C语言是一种较早的程序设计语言&#xff0c;诞生于1972年的贝尔实验室。1972 年&#xff0c;Dennis Ritchie 设计了C语言&#xff0c;它继承了B语言的许多思想&#xff0c;并加入了数据类型的概念及其他特性。C语言是一门面向过程的计算机编程语…