学习响应式布局

news2024/11/23 13:37:20

针对性内容

  • 页面设计在不同设备的显示情况
  • 布局只会使用float+定位,而不会掌握flex
  • 不能很好的使用rem作为设计单位
  • 掌握响应式布局、弹性等常见布局

学习内容

  • css中媒体查询的作用和使用方法
  • flex弹性盒子的用法
  • rem的作用和使用方法

目录

针对性内容

学习内容

MediaQuery(媒体查询) 

 @media常用参数

媒体查询其他引入方式---1

媒体查询其他引入方式---2

flex弹性布局

flex-direction

flex-wrap

 flex-flow

剩余空间调整为间距 justify-content

 align-items

 align-content

 其他属性

flex-basis

 flex-grow

flex-shrink

 flex

特殊写法

rem的使用



MediaQuery(媒体查询) 

主要是为了不同尺寸的屏幕设定不同的css样式(移动端用的较多)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #div0{
            width: 100px;
            height: 200px;
        }
        /* 屏幕尺寸在200px到300px之间的样式 */
        @media screen and (min-device-width:200px) and (max-device-width:300px){
            #div0{
                background-color: red;
            }
            /* 
                可以写其他的样式 
            */
        }
        @media screen and (min-device-width:301px) and (max-device-width:500px){
            #div0{
                background-color: blue;
            }
        }
    </style>
</head>
<body>
    <div id="div0"></div>
</body>
</html>

 


 @media常用参数

属性名称作用
width、height 浏览器可视宽度、高度
device-width设备屏幕的宽度
device-height设备屏幕的高度
<style>
        #div0{
            width: 200px;
            height: 300px;
        }
        /* 浏览器尺寸在200px到300px之间的样式 */
        @media screen and (min-width:500px) and (max-width:700px){
            #div0{
                background-color: red;
            } 
            /* 
                可以写其他的样式 
            */
        }
        @media screen and (min-width:701px){
            #div0{
                background-color: blue;
            }
        }
</style>

获取浏览器的宽度 min-width max-width

小案例:让三个块随着屏幕变化从一行放3个变成一行2个和一行1个

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #div0{
            width: 100%;
            height: 500px;
        }
        #div0 div {
            float: left;
            height: 200px;
        }
        /* 1行显示三个div */
        @media screen and (min-device-width:400px){
            #div0 div {
                width: 33.3%;
            }
            #div0 div:nth-child(1){
                background-color: red;
            }
            #div0 div:nth-child(2){
                background-color: blue;
            }
            #div0 div:nth-child(3){
                background-color: green;
            }
        }
        /* 2行显示三个div */
        @media screen and (min-device-width:300px) and (max-device-width:399px){
            #div0 div {
                width: 50%;
            }
            #div0 div:nth-child(1){
                background-color: red;
            }
            #div0 div:nth-child(2){
                background-color: blue;
            }
            #div0 div:nth-child(3){
                background-color: green;
            }
        }
        /* 3行显示三个div */
        @media screen and (max-device-width:299px){
            #div0 div {
                width: 100%;
            }
            #div0 div:nth-child(1){
                background-color: red;
            }
            #div0 div:nth-child(2){
                background-color: blue;
            }
            #div0 div:nth-child(3){
                background-color: green;
            }
        }
    </style>
</head>  
<body>
    <div id="div0">
        <div></div>
        <div></div>
        <div></div>
    </div>
</body>
</html>

 

 

媒体查询其他引入方式---1

写在style标签中,有条件的执行某个内部样式表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #div0{
            width: 100%;
            height: 500px;
        }
        #div0 div {
            float: left;
            height: 200px;
        }
        #div0 div:nth-child(1){
            background-color: red;
        }
        #div0 div:nth-child(2){
            background-color: blue;
        }
        #div0 div:nth-child(3){
            background-color: green;
        }
    </style>
    <style media="(min-device-width:300px) and (max-device-width:399px)">
        #div0 div {
            width: 50%;
        }
    </style>
    <style media="(min-device-width:400px) and (max-device-width:499px)">
        #div0 div {
            width: 33.3%;
        }
    </style>
</head>  
<body>
    <div id="div0">
        <div></div>
        <div></div>
        <div></div>
    </div>
</body>
</html>

媒体查询其他引入方式---2

写在link标签中,有条件的引入外部样式表

<link href="css/test.css" rel="stylesheet">


<link href="css/css1.css" rel="stylesheet"
		media="(min-device-width:300px) and (max-device-width:399px)">

 

flex弹性布局

Flexiable Box即为弹性盒子,用来进行弹性布局,可以配合rem处理尺寸的适配问题

用来为盒装模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。

更加符合响应式设计的特点

主轴和交叉轴并不是固定的,而是需要看里面元素的排列方式。如上图所示,子元素是水平排列的,所以水平方向就是主轴,竖直方向就是交叉轴。 如果子元素是竖直排列的,则竖直方向就是主轴。

子元素不说 高和宽, 而是说 占主轴的多少,占交叉轴的多少

flex-direction

作用: 子元素在父元素盒子中的排列方式

属性值作用
row默认值。按从左到右的顺序显示
row-reverse与row相同,但是以相反的顺序
column灵活的项目将垂直显示,按从上到下的顺序
column-reverse与column相同,但是以相反的顺序

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #div0{
            width: 500px;
            background-color: yellowgreen;
        }
        #div0 div {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
</head>  
<body>
    <div id="div0">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
    </div>
</body>
</html>

 (左): display: flex; flex-direction: column; (右) flex-direction: column-reverse;

 

 (上)flex-direction: row (下)flex-direction: row-reverse;

上述例子是父元素的宽度足够大(500px),如果父元素的宽度不够,只有300p。则会对子元素的宽度进行压缩,使得四个子元素都能放在父元素中(每个子元素的宽度都变为了75px) 

flex-wrap

作用: 子元素在父元素盒子中是否换行(列) 

属性值作用
nowrap默认值。不换行或不换列
wrap换行或换列
wrap-reverse换行或换列,但以相反的顺序

 

<style>
        #div0{
            width: 300px;
            background-color: yellowgreen;
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
        }
        #div0 div {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>

在上面的例子中,如果父元素的宽度只有300px,不够4个子元素一行放置,他会压缩子元素的宽。

但如果设置了换行,则子元素的宽还是100px,多余的会进行换行

 wrap                                                     wrap-reverse

 flex-flow

作用: flex-direction和flex-wrap属性的简写形式

语法:
flex-flow: <flex-direction> || <flex-wrap>

如
display: flex;
flex-flow: row wrap;
/* flex-direction: row;
flex-wrap: wrap-reverse; */

剩余空间调整为间距 justify-content

作用:用来在存在剩余空间时,设置为间距的方式

属性值作用
flex-start默认值。从左到右,挨着行的开头
flex-end从右到左,挨着行的结尾
center居中显示
space-between平均分布在该行上,两边不留间隔空间
space-around平均分布在该行上,两边留有一半的间隔空间
<style>
        #div0{
            width: 350px;
            background-color: yellowgreen;
            display: flex;
            flex-flow: row wrap;
            /* flex-direction: row;
            flex-wrap: wrap-reverse; */
            justify-content: center;
            /*justify-content: space-between;*/
        }
        #div0 div {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>

 

 

 align-items

作用:设置每个flex元素在交叉轴上的默认对齐方式

属性值作用
flex-start位于容器的开头
flex-end位于容器的结尾
center居中显示
   <style>
        #div0{
            width: 400px;
            height: 400px;
            background-color: yellowgreen;
            display: flex;
            flex-flow: column wrap;
            justify-content: space-between;
            align-items: flex-end;
        }
        #div0 div {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>

 

 

 <style>
        #div0{
            width: 400px;
            height: 400px;
            background-color: yellowgreen;
            display: flex;
            flex-flow: row wrap;
            justify-content: space-between;
            align-items: flex-end;
        }
        #div0 div {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>

 align-content

作用:设置每个flex元素在交叉轴上的默认对齐方式

与align-items的区别就是 align-items会把每一行都单独处理,而align-content把多行当成一个整体处理

属性值作用
flex-start位于容器的开头
flex-end位于容器的结尾
center位于容器的中心
space-between之间留有空白
space-around两端都留有空白
   <style>
        #div0{
            width: 380px;
            height: 400px;
            background-color: yellowgreen;
            display: flex;
            flex-flow: row wrap;
            justify-content: space-between;
            align-items: center;
        }
        #div0 div {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>

 

 <style>
        #div0{
            width: 380px;
            height: 400px;
            background-color: yellowgreen;
            display: flex;
            flex-flow: row wrap;
            justify-content: space-between;
            align-content: center;
        }
        #div0 div {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>

 其他属性

属性值作用
flex-basis设置弹性盒伸缩基准值
flex-grow设置弹性盒子的扩展比率
flex-shrink设置弹性盒子的缩小比率
flexflex-grow、flex-shrink、flex-basis的缩写

flex-basis

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #div0{
            display: flex;
            width: 400px;
            height: 500px;
            background-color: violet;
        }
        #div0 div {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>  
<body>
    <div id="div0">
        <div></div>
        <div></div>
    </div>
</body>
</html>

 先搞一个基础的,子盒子宽为200px,父盒子宽为400px,所以图中两个子盒子贴在一起

#div0 div {
            width: 200px;
            height: 200px;
            background-color: red;
            flex-basis: 50px;
            /* flex-basis: 30%; */
}

给子盒子加上基准以后,原来的宽度200px就不生效了,变成了两个都是50px的宽。也可以设置百分比,30%就是400px*0.3 = 120px 。 也可以用rem单位 

也可以分别用于不同的元素

  <style>
        #div0{
            display: flex;
            width: 400px;
            height: 500px;
            background-color: violet;
        }
        #div0 div {
            width: 200px;
            height: 200px;
            background-color: red;
            flex-basis: 50px;
            /* flex-basis: 30%; */
        }
        #div0 div:nth-child(1){
            flex-basis: 50px;
        }
        #div0 div:nth-child(2){
            flex-basis: 100px;
        }
    </style>

 

 flex-grow

主要是用于子对象不足以填充满父对象的宽度。 就比如上面的例子中,两个子对象都是50px,宽度还剩下300px

    <style>
        #div0{
            display: flex;
            width: 400px;
            height: 500px;
            background-color: violet;
        }
        #div0 div {
            width: 200px;
            height: 200px;
            background-color: red;
            flex-basis: 50px;
        }
        /* 
            flex-grow的具体算法
            整体父盒子宽度为400px, 第一个div 50px,第二个div 100px,还剩下250px的空闲区
            由于两个子div的flex-grow都是1,所以250分成2份,各1份    250/2=125px
        */
        #div0 div:nth-child(1){
            flex-basis: 50px;
            flex-grow: 1;
        }
        #div0 div:nth-child(2){
            flex-basis: 100px;
            flex-grow: 1;
        }
    </style>

如果第一个子div flex-grow:1; 第二个子div flex-grow:3; 则一共把250px的剩余分4份,第一个占1份 

flex-shrink

一般用于子元素宽度较高,放不下,这时候考虑缩小比率

  <style>
        #div0{
            display: flex;
            width: 400px;
            height: 500px;
            background-color: violet;
        }
        #div0 div {
            width: 200px;
            height: 200px;
            background-color: red;
            flex-basis: 50px;
        }
        #div0 div:nth-child(1){
            flex-basis: 300px;
        }
        #div0 div:nth-child(2){
            flex-basis: 300px;
        }
    </style>

 设置两个子盒子都是300px,让他们两个的宽度和 超过400。发现他们自动缩小成200 200了

 

 <style>
        #div0{
            display: flex;
            width: 400px;
            height: 500px;
            background-color: violet;
        }
        #div0 div {
            width: 200px;
            height: 200px;
            background-color: red;
            flex-basis: 50px;
        }
        #div0 div:nth-child(1){
            flex-basis: 300px;
            flex-grow: 1;
            /* 0代表不允许缩小 */
            flex-shrink: 0;
        }
        #div0 div:nth-child(2){
            flex-basis: 300px;
            flex-grow: 1;
            flex-shrink: 0;
        }
    </style>

设置flex-shrink:0 让他们不能缩小,这时候两个子盒子都是300px,且超出了父元素的宽

 <style>
        #div0{
            display: flex;
            width: 400px;
            height: 500px;
            background-color: violet;
        }
        #div0 div {
            width: 200px;
            height: 200px;
            background-color: red;
            flex-basis: 50px;
        }
        /* 
            flex-shrink算法
            400 - 600 = -200
            200 / (1+3) = 50
            所以第一个div是 300 - 50 = 250   第二个div是 300 - 150 = 150
        */
        #div0 div:nth-child(1){
            flex-basis: 300px;
            flex-grow: 1;
            /* 0代表不允许缩小 */
            flex-shrink: 1;
        }
        #div0 div:nth-child(2){
            flex-basis: 300px;
            flex-grow: 1;
            flex-shrink: 3;
        }
    </style>

 

 flex

当写缩写的时候,一定要注意顺序 先 flex-grow扩大比率、再 flex-shrink缩小比率,最后 flex-basis基准值

  <style>
        #div0{
            display: flex;
            width: 400px;
            height: 500px;
            background-color: violet;
        }
        #div0 div {
            width: 200px;
            height: 200px;
            background-color: red;
            flex-basis: 50px;
        }
        #div0 div:nth-child(1){
            /* flex-basis: 300px;
            flex-grow: 1;
            flex-shrink: 1; */
            flex: 1 1 300px;
        }
        #div0 div:nth-child(2){
            /* flex-basis: 300px;
            flex-grow: 4;
            flex-shrink: 3; */
            flex: 4 3 300px;
        }
    </style>

特殊写法

属性作用
flex:auto;flex: 1 1 auto;
flex: none;flex: 0 0 auto
flex: 0%; flex: 100px;flex: 1 1 0% flex: 1 1 100px
flex: 1;flex: 1 1 0%;

rem的使用

指相对于根元素的字体大小的单位

    <style>
        html{
            /* 根字体的大小,如果要搭配rem使用,通常会设置为10px 这样方便计算 */
            font-size: 10px;
        }
        div{
            font-size: 1rem;
        }
    </style>

这样的话,div的字体大小就是1rem也就是10px; 这样的好处就是如果随着屏幕的变化,需要改变字体大小的话,只需要改根字体即可

与em的区别有哪些?

rem是相对于根字体而言的, 而 em是相对于父一级的对象而言的。所以em可能出现集联等情况,计算会繁琐。

 

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

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

相关文章

第8章 自定义SwaggerIndex页与登录页

“Blog.Core-master”程序没有使用.Net7框架内置的index.html页对api方法进行渲染显示&#xff0c;而是通过对“Swagger”和“SwaggerUI”内置中间件的自定义操作&#xff0c;调用根目录下的自定义index.html页对api方法进行渲染显示。 1、自定义“Swagger”和“SwaggerUI”内…

[附源码]Python计算机毕业设计Django付费自习室管理小程序

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

vue项目使用elementui上传组件 打包后报错t.upload.addEventListener is not a function的解决方案

今天和大家分享一个报错的解决方案 背景 项目打包部署到宝塔上后&#xff0c;打开网页&#xff0c;上传东西时出现了一个报错&#xff0c;但是在本地开发环境是没有问题的。 报错内容&#xff1a; 这个问题是因为mockjs改动了axios里面XMLHttpRequest对象从而导致报错。 解…

Java医院信息管理系统源码带文字安装教程

技术架构 技术框架&#xff1a;springboot shiro layui jquery thymeleaf nginx 运行环境&#xff1a;jdk8 mysql IntelliJ IDEA maven 宝塔面板 文字安装教程 下载源码&#xff0c;创建一个数据库&#xff0c;导入hospitaldata.sql文件至数据库中。 使用IDEA打开hosp…

Kotlin高仿微信-第29篇-朋友圈-发布作品(图片)

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点&#xff0c;包括&#xff1a;注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

GmNAC181促进结瘤并提高根瘤的耐盐性

文章信息 题目&#xff1a;GmNAC181 promotes symbiotic nodulation and salt tolerance of nodulation by directly regulating GmNINa expression in soybean 刊名&#xff1a;New Phytologist 作者&#xff1a;Xiaodi Wang&#xff0c;Youning Wang, Xia Li et al. 单位…

2022年NPDP新版教材知识集锦--【第四章节】(5)

《产品经理认证(NPDP)知识体系指南(第2版)》已于2022年4月正式上架发行&#xff0c;新版教材自2022年11月NPDP考试起使用。将新版NPDP教材中的相关知识点进行了整理汇总&#xff0c;包括详细设计与规格阶段相关内容&#xff0c;快来看看吧。 【详细设计与规格阶段】(全部获取文…

HCIP-路由01:路由基础

路由基础一 自治系统&#xff08;AS&#xff09;二. 入表&#xff08;路由表&#xff09;规则2.1 priority2.2 metric三. 选路规则&#xff08;掩码最长匹配原则&#xff09;四. 路由的负载分担五. 路由备份&#xff08;浮动路由&#xff09;六. 路由黑洞七. 路由黑洞的解决方法…

export default 和 export之间的区别

&#x1f388; export default 和 export 有什么区别&#xff1a; export 、export default&#xff0c;都属于ES6里面的语法 1. export与export default均可用于导出常量、函数、文件、模块等 2. 你可以在其它文件或模块中通过import(常量 | 函数 | 文件 | 模块)名的方式&a…

03【Controller方法返回值详解】

文章目录三、Controller方法返回值详解3.1 返回普通字符串3.1.1 跳转3.1.2 设置视图解析器3.2 返回ModelAndView3.2.1 普通视图3.2.2 RedirectView3.3 返回特殊字符串3.4 返回void三、Controller方法返回值详解 3.1 返回普通字符串 3.1.1 跳转 package com.dfbz.controller;…

美颜预览卡顿问题跟踪

预览卡顿的问题&#xff0c;首先第一想法就是看下帧率&#xff0c;帧率小&#xff0c;自然会卡顿。根据人眼视觉暂留原理&#xff0c;帧率小于24帧&#xff0c;人脸就会感知到卡顿。 帧率的概念在Camera中我们经常会提到&#xff0c;其实有3个帧率概念&#xff0c;从下往常看&a…

1-5-10 快恢在数字化安全生产平台 DPS 中的设计与落地

作者&#xff1a;银桑 背景 11 月 5 日&#xff0c;在 2022 杭州 云栖大会上&#xff0c;数字化安全生产平台 DPS 重磅发布&#xff0c;助力传统运维向 SRE 转型&#xff0c;在数字化安全生产平台 DPS 重磅发布中提到了 DPS 诞生的背景&#xff0c;希望解决的企业问题以及核…

ICC2: secondary pg pin的作用与连接

1.secondary pg pin的作用 1&#xff09; 作为备用电源&#xff08;backup power&#xff09;&#xff0c;当主供电&#xff08;primary power&#xff09;断电后&#xff0c;让standard cell仍能保持正常运行或者至少保持输出不变&#xff0c;比如always on buf和retention r…

【矩阵论】4. 矩阵运算——广义逆——加号逆应用

4.4.3 矩阵方程求解 前置&#xff1a;正规方程 a. 有解情况 若矩阵方程 AXBDAXBDAXBD 有解相容&#xff0c;则有特解 X0ADBX_0A^DB^X0​ADB 无解定理&#xff1a;若 X0ADBX_0A^DB^X0​ADB &#xff0c;使 AX0B≠DAX_0B\neq DAX0​B​D &#xff0c;则矩阵方程无解 齐次方程…

【学习笔记】深度学习入门:基于Python的理论与实现-神经网络

CONTENTS三、神经网络3.1 从感知机到神经网络3.2 Activation function3.3 多维数组的运算3.4 三层神经网络的实现3.5 输出层的设计3.6 手写数字识别三、神经网络 3.1 从感知机到神经网络 用图来表示神经网络的话&#xff0c;如下图所示&#xff0c;我们把最左边的一列称为输入…

Open WebRTC Toolkit Native SDK Windows环境编译

1、首先按照编译webrtc原生代码环境&#xff0c;配置系统环境 https://chromium.googlesource.com/chromium/src//main/docs/windows_build_instructions.mdhttps://chromium.googlesource.com/chromium/src//main/docs/windows_build_instructions.md 安装openssl软件/s…

MODBUS协议下,能否实现MCGS触摸屏与FX5U之间无线通讯?

在工厂里&#xff0c;触摸屏往往位于程控室内&#xff0c;作为控制多个不同位置PLC的主站设备。因为触摸屏和plc所处位置距离较为分散&#xff0c;重新铺设电缆线工期长&#xff0c;成本高&#xff0c;故采用无线方式解决触摸屏与PLC之间的通讯问题。 一、方案概述 本方案是M…

年底了,准备跳槽的可以看看

前两天跟朋友感慨&#xff0c;今年的铜九铁十、裁员、疫情导致好多人都没拿到offer!现在已经12月了&#xff0c;具体明年的金三银四只剩下两个月。 对于想跳槽的职场人来说&#xff0c;绝对要从现在开始做准备了。这时候&#xff0c;很多高薪技术岗、管理岗的缺口和市场需求也…

【Linux03-基本工具之VIM】Linux下的强大编辑器(附软件生态与yum)

前言 本期分享6个Linux中常用的基本工具&#xff0c;以确保后续的学习能够进行。 零、软件生态与yum 抛出一个问题&#xff1a;软件的下载&#xff1f; 具体拆分 软件从哪里下&#xff1f;软件由谁提供&#xff1f;怎么下载&#xff1f; 软件&#xff0c;肯定不在本地&am…

RabbitMQ死信队列、延时队列

介绍&#xff1a; 消息被消费⽅否定确认&#xff0c;使⽤ channel.basicNack 或 channel.basicReject &#xff0c;并且此时 requeue 属性被设置为 false 。消息在队列的存活时间超过设置的TTL时间。消息队列的消息数量已经超过最⼤队列⻓度。那么该消息将成为“死信”。“死信…