1、为什么会产生浮层
首先我们看一下float这个属性,套用w3c标准,对该属性的定义如下:
float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄(根据内容来计算其宽度,如果没有内容也没有设置该浮动层的宽度,则该浮动层在页面中是看不见的)。
注释:假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止
设置了该属性的left或right值后,该浮动元素(floats)就会被移出文档流。这就产生了一个问题:浮动元素所在父元素不会自动伸长以便闭合浮动元素。看下面的代码
<div id="outer">
<div id="inner"> <h2>A Column</h2> </div>
<h1>Main Content</h1>
<p>Lorem ipsum
</div>
我们可以为“#inner”设定一个宽度值(比如说20%),但是由于div是块级元素,即使我们设定了宽度,其后面的内容也只能在下一行中显示,除非我们给它设定一个浮动属性(无论是向左浮动或者向右浮动)。那么此时会产生我们上面提到的问题了。
如果“#inner”的宽度和高度都比“#outer”小,这不会有问题。
但是,如果“#inner”的高度超过了“#outer”,那么的底部就会超出“#outer”的底部。这是因为我们为“#inner”设定了float属性后,它就会脱离文档流,无论其宽度和高度怎么变化都不会使“#outer”跟随变化。
看下面代码:设置浮动层后,由于inner的高度超出了outer的高度,他会浮动起来,脱离文档流,而outer下面的div元素会根据outer的高度来定位自己的位置,这时outer没有自动变化高度,所以outer下面的元素就会显示在浮动层的右侧,在各主流浏览器都是这个效果。
<div id="outer" style="border:1px solid #f2f2f2;">
<div id="inner" style="float:left;height:300px;">
<h2>A Column</h2>
</div>
<h1>Main Content</h1>
<p>Lorem ipsum</p>
</div>
<div>
有浮层显示的效果
</div>
如果我们在定义了浮动层影响父元素的内部加上清除浮动的方法后,页面就会正常显示,看下面代码
<div id="outer" style="border:1px solid #f2f2f2;">
<div id="inner" style="float:left;height:300px;">
<h2>A Column</h2>
</div>
<h1>Main Content</h1>
<p>Lorem ipsum</p>
<div style="clear:both;"></div>
</div>
<div>
有浮层显示的效果
</div>
在浏览器中再次预览效果,发现页面正常显示了,这里要说一点,就是浮动清除元素放到哪个位置,应该放到inner的下面(不一定紧挨着inner)。
2、 浏览器中可以自动完成闭合浮动元素的情况(即子元素设置了浮层,但父元素会自动撑开高度)
2.1、标准浏览器中可以自动完成闭合浮动元素的方法,在标准浏览器中,这称之为Block-Formatting-Contexts(块格式化上下文):
a.浮动元素;
b.拥有绝对定位属性的元素;
c.设置inline-block元素;
d.table-cell元素;
e.设置了overflow的元素,比如:auto/hidden。
【注】CSS3中,将Block-formatting-contexts 叫做 flow root。对于触发方式也做了修改:The value of ‘position’ is neither ‘static’ nor ‘relative’;
那么在IE/win中,就依靠那个“hasLayout”了,触发“layOut”的方法有:
a.浮动元素
b.绝对定位元素
c.display:inline-block
d.zoom:比如常见的设置zoom:1;
e.width/height,比如设置height:1%的方法;
f.overflow/overflow-x/overflow-y [IE7 新增];
g.max/min-width/height [IE7 新增];
这里简单的举一个例子,看以下代码
<div>浮动中套浮动的效果</div>
<div style="border: 1px solid #f2f2f2;">
<div style="float: right;">
<div style="float: left; height: 100px; border: 1px solid #f2f2f2;">由于父元素也是浮层,所以会自动闭合浮动层的(即父元素自适应高度的)</div>
<div>内容</div>
</div>
<div style="clear: both;"></div>
</div>
最里边的浮动层由于父元素设置了浮动层,所以会自动闭合的
3、清除浮动常见方法
我们知道了产生浮动的原理并且各浏览器清除浮层的不同后,清除浮动就好办了。主要有以下几种方式
(1)空标签法:
这种方法应该说是最简单的一种了,W3C建议在容器的末尾增加一个“clear:both"的元素,强迫容器适应它的高度以便装下所有的float,并没限制使用什么样的标签,有用<br style=”clear:both”/>的,有用空<div style=”clear:both”></div>的;比如:
<div>
<div style ="float:left; width:40%;">
<p> Some content </p>
</div>
<p> Text outside the float </p>
<div style ="clear:both;" ></div>
</div>
(2)父元素使用overflow的方法:
通过设置父元素overflow值设置为hidden或者auto;不过,在<=IE6中使用这个方法,还需要haslayout,还有,使用overflow=hidden的时候,一旦你有定位需求可能会因此而难以实现,使用这种方法前你应该至少确定:
a.父元素的height是自适应的;
b.浮动元素的宽度不大于父元素的宽度,即没有溢出需求;所以,这种方法也有它的局限性;
<div style ="overflow:hidden; width:100%;">
<div style ="float:left;width:30%;" >
<p>the widths of the combined floats never exceed the width of the container</p>
</div>
</div>
(3)伪类:after
这种方法应该说是目前应用最广泛的方法,它的优势:没有多余的标记添加到容器中;通过使用:after产生的content不能接受某些属性,包括'position','float',列表属性,表格属性,但是clear属性可以被接受。
不过,不幸的是,IE不支持:after方法,但又幸运的是,回顾前面,如果IE在父容器拥有Width/Height等layout状态下,会完成自动闭合,称之为“auto-clearing”;那么,对于IE/win,我们使用设定zoom:1的方法的方法来实现和:after一样的效果.于是一个类似这样的样式出现了:
.clearfix:after{
content:".";
display:block;
height:0;
clear:both;
visibility:hidden;
}
.clearfix{zoom:1;}
上面的代码应该是现在主流的清理浮动方式。现在支付宝就使用这样的方式。另外还有一种更简洁的方案:
(4)伪类:before和:after结合使用
.cf:before, .cf:after {
content:"";
display:table;
}
.cf:after {
clear:both;
}
.cf {
zoom:1;
}
原理跟第三种是一样的。使用 :after 伪类来提供浮动块后的 clear:both。不同的是,隐藏这个空白使用的是 display: table。而不是设置 visibility:hidden;height:0;font-size:0; 这样的 hack。
值得注意的是这里中的 :before 伪类。其实他是来用处理 top-margin 边折叠的,跟清理浮动没有多大的关系。但因为浮动会创建 block formatting context,这样浮动元素上的另一元素上如果刚好有 margin-bottom 而这个浮动元素刚好有margin-top 的话,应该让他们不折叠(虽然这种情况并不常见)。
分享到:
相关推荐
内容概要:本文介绍了如何使用Python识别图片和扫描PDF中的文字。首先,文章讲解了使用Spire.OCR for Python库来识别图片中的文字,包括安装库、配置OCR模型路径和语言设置、扫描图片以及保存识别后的文本。其次,详细描述了从图片中提取文字及其坐标位置的方法,使用户不仅能够获取文本内容,还能知道文本在图片中的具体位置。最后,文章还介绍了如何结合Spire.PDF for Python将PDF文件转换为图片格式,再通过OCR技术从中提取文字,适用于处理扫描版PDF文件。文中提供了完整的代码示例,帮助读者理解和实践。 适合人群:对Python编程有一定基础,希望学习或提高光学字符识别(OCR)技术的应用开发者,尤其是需要处理大量图片或PDF文档中文字信息的工作人员。 使用场景及目标:① 开发者可以利用这些方法自动化处理图片或PDF文档中的文字信息,提高工作效率;② 实现从非结构化数据(如图片、扫描件)到结构化数据(如文本文件)的转换,便于后续的数据分析和处理;③ 提供了一种解决纸质文档数字化的有效途径,特别是对于历史档案、书籍等资料的电子化保存。 其他说明:需要注意的是,OCR的准确性很大程度上取决于图片的质量,清晰度高、对比度好的图片可以获得更好的识别效果。此外,不同OCR库可能对特定语言或字体的支持程度不同,选择合适的库和配置参数能显著提升识别精度。在实际应用中,建议先进行小规模测试,优化参数后再大规模应用。
2025中小企业数字化转型指南
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
2025-04-10 兜兜\(^o^)/~
内容概要:本文详细介绍了永磁同步电机(PMSM)无位置传感器控制中滑模观测器(SMO)的设计与仿真实现。首先阐述了系统的整体架构,包括速度环和电流环的工作机制。接着深入探讨了滑模观测器的关键实现步骤,如滑模增益选择、符号函数的应用以及低通滤波器的作用。文中还涉及了坐标变换(Clarke变换和Park变换)、PI参数整定、SVPWM调制等重要环节的具体实现方法和技术难点。此外,作者分享了多个调试过程中遇到的问题及解决方案,如波形抖振、电流采样延时、扇区判断错误等。最后展示了仿真结果,证明了所提方案的有效性和可行性。 适合人群:从事电机控制系统研究与开发的技术人员,尤其是对无位置传感器控制感兴趣的工程师。 使用场景及目标:适用于希望深入了解并掌握永磁同步电机无位置传感器控制技术的研究人员和工程师。目标是帮助读者理解滑模观测器的工作原理,掌握其设计与调试技巧,从而应用于实际项目中。 其他说明:文中提供了丰富的代码片段和实践经验,有助于读者更好地理解和应用理论知识。同时提醒读者注意离散化步长的选择和滑模增益的调整,这些都是确保系统稳定运行的重要因素。
内容概要:本文详细介绍了航天器姿态控制中的关键技术,包括时变滑模控制、自适应控制、执行器饱和处理及推力器安装偏差补偿。针对航天器在复杂环境中面临的不确定性,提出了时变滑模面设计、自适应参数更新、饱和控制和安装偏差补偿的具体实现方法,并提供了相应的MATLAB代码。通过合理的控制策略设计,确保航天器在面对多种干扰因素时仍能保持高精度的姿态控制。 适合人群:航空航天领域的研究人员、控制系统工程师、高校相关专业师生。 使用场景及目标:适用于航天器姿态控制系统的开发与优化,旨在提升系统的鲁棒性、稳定性和控制精度。具体应用场景包括卫星姿态调整、深空探测器姿态控制等。 其他说明:文中提供的MATLAB代码可以直接用于实验验证和教学演示,帮助读者深入理解各控制环节的工作原理和技术细节。此外,文中还分享了许多实用的工程经验,如参数整定技巧、常见问题处理等,有助于指导实际项目开发。
内容概要:本文详细介绍了基于Simulink-Simscape平台构建的四轮转向汽车模型预测控制(MPC)路径跟踪系统。首先,文章阐述了车辆动力学模型的核心结构,包括前轮和后轮转向角的计算方法以及魔术轮胎模型的配置。接着,深入探讨了MPC控制器的设计,特别是代价函数的配置和QP优化的具体实现。此外,还讨论了路面切换模块的设计,确保不同路况下的稳定性和响应性。最后,文章分享了一些调参经验和仿真参数设置的技巧,如积分限幅、随机质量块的应用以及解算器的选择。 适合人群:从事自动驾驶、车辆控制系统研究的工程师和技术人员,尤其是对路径跟踪算法和MPC有浓厚兴趣的研究者。 使用场景及目标:适用于开发和优化四轮转向汽车的路径跟踪系统,旨在提高车辆在各种复杂路况下的行驶稳定性和精确度。具体目标包括减小方向盘转角误差、控制横向位移偏差、优化轮胎力计算等。 其他说明:文中提供了大量MATLAB代码片段和具体的参数配置,帮助读者更好地理解和复现实验结果。同时,作者分享了许多实际调试过程中遇到的问题及其解决方案,使读者能够避开常见陷阱并高效完成模型搭建。
全国银行代码和支行代城市地区mysql
内容概要:本文详细介绍了如何利用动态规划(Dynamic Programming, DP)在MATLAB/SIMULINK环境中实现自动驾驶车辆的动态避障功能。首先,文章解释了动态规划的核心思想及其在路径规划中的应用,特别是通过状态转移方程来解决避障问题。接着,讨论了运动学模型(如自行车模型)的建立方法,以及如何通过PID和MPC控制算法进行路径跟踪和避障。此外,文章还探讨了联合仿真平台(MATLAB + Carsim + Prescan)的搭建和配置,展示了如何将理论转化为实际的仿真效果。最后,提供了完整的代码实现和调试技巧,帮助读者快速上手并优化性能。 适合人群:对自动驾驶技术和路径规划感兴趣的科研人员、工程师和技术爱好者。 使用场景及目标:适用于研究和开发自动驾驶系统,特别是在复杂环境下实现高效的动态避障功能。目标是提高车辆的安全性和智能化水平,减少人为干预。 其他说明:文中提供的代码已在GitHub上开源,读者可以直接下载并运行。需要注意的是,某些高级功能(如深度强化学习)将在后续版本中继续探索。
内容概要:本文档是《拼多多Python面试题目.pdf》,涵盖了Python编程语言的面试题目及其参考答案。文档分为四个主要部分:选择题、填空题、代码编程题和综合题。选择题涉及Python基础知识、多线程、Redis使用场景、字符编码转换、协程特性、深拷贝操作等;填空题考察了列表推导式、对象序列化、文件操作、字符串处理等知识点;代码编程题包括统计热门商品、订单时间窗口校验、字符串压缩、异步批量请求、最长递增子序列等实际编程任务;综合题则要求设计一个高并发秒杀系统,涵盖缓存、数据库、消息队列的选择,库存扣减、分布式锁、限流策略等关键模块的实现思路,以及解决缓存相关问题的方法。 适合人群:有一定Python编程基础,准备求职或希望提升技术能力的开发者,尤其是对Python高级特性和实际应用感兴趣的工程师。 使用场景及目标:①帮助面试者熟悉Python常见知识点和技巧,提高面试成功率;②通过实际编程题目的练习,加深对Python语法和标准库的理解;③掌握高并发系统的架构设计思路,培养解决复杂业务问题的能力。 阅读建议:此文档不仅包含理论知识的选择题和填空题,还有实际编程题目的训练,建议读者在学习过程中不仅要关注正确答案,更要理解每个选项背后的原理,同时动手实践编程题目,结合实际案例进行思考和总结。
内容概要:本文档《Java 算法面试题目.pdf》涵盖了 Java 编程语言的核心知识点和常见面试题,分为选择题、填空题、代码编程题和综合题四个部分。选择题涉及 Java 内存模型、字符串处理、集合类、垃圾回收、线程池、设计模式、Spring 事务、流操作、类加载机制、锁机制、Netty 和 Redis 持久化等主题。填空题考察了线程同步、HashMap 负载因子、序列化、数学运算、Spring 注入、字符串对象创建、位移运算、字符串方法、动态代理和 JVM 参数配置等细节。代码编程题要求实现链表反转、线程安全单例模式、快速排序、二叉树层序遍历和 LRU 缓存等功能。综合题则要求设计一个无人机实时控制系统,涵盖并发控制、可靠传输、路径规划、高可用性和低延迟等方面。; 适合人群:具有 Java 编程基础,尤其是准备面试的中高级开发人员,以及对 Java 核心技术和框架有深入理解需求的技术人员。; 使用场景及目标:①帮助开发者复习和巩固 Java 基础知识和常见面试考点;②通过编程题提升实际编码能力;③通过综合题锻炼系统设计和架构思维,掌握分布式系统的设计要点。; 阅读建议:建议读者先复习相关知识点,再尝试解答题目,最后对照参考答案进行查漏补缺。对于综合题,应结合实际项目经验思考解决方案,重点理解系统设计的关键点和技术选型的理由。
内容概要:该专利提出了一种节能高效的双螺杆压缩机转子型线设计方案,属于动力传动与控制技术领域。核心创新点在于阴阳转子的齿曲线采用抛物线、圆弧、椭圆及其共轭包络线组合而成,形成二次曲线与二次曲线包络线的组合型线。设计特点包括非对称齿面(前齿面更宽,b/a>1.8)、各段曲线光滑连接无尖点、七段曲线组合结构。该设计旨在提高密封性、改善动力特性、降低损耗、提升效率,从而提高双螺杆压缩机的整体性能。文中提供了详细的Python代码实现,包括转子型线的计算和可视化,以及改进后的代码,以更好地反映专利的具体参数和技术细节。 适合人群:机械工程专业人员、从事压缩机设计与制造的技术人员、对双螺杆压缩机转子型线设计感兴趣的科研人员。 使用场景及目标:①用于研究和开发新型双螺杆压缩机,特别是在提高压缩机效率和性能方面;②作为教学案例,帮助学生和工程师理解双螺杆压缩机转子型线的设计原理和技术实现;③为企业提供参考,优化现有产品的设计和制造工艺。 其他说明:文中提供的代码基于专利描述进行了合理的假设和简化,实际应用中可能需要根据具体性能要求进行优化调整。专利技术通过非对称设计、多段曲线组合等方式,实现了高效的密封性和优良的动力特性,显著提升了双螺杆压缩机的性能。
内容概要:本文详细介绍了利用PFC3D5.0进行滑坡冲击建筑物仿真的全流程,涵盖滑坡体和建筑物的建模、参数设定、监测系统的构建以及灾后损伤评估。文中不仅提供了完整的Python代码示例,还解释了各个关键参数的选择依据及其对仿真结果的影响。通过实例展示了如何设置滑坡体的尺寸、密度、阻尼系数等属性,以及建筑物的材料属性、粘结强度等参数。同时,文章强调了实时监测系统的重要性,包括冲击力传感器的布置和预警机制的设计。此外,还探讨了不同条件下建筑物的易损性曲线生成方法及其应用价值。 适合人群:从事地质灾害研究、结构工程分析的专业人士,尤其是那些希望深入了解滑坡冲击建筑物过程并掌握相关数值模拟技术的研究人员和技术人员。 使用场景及目标:适用于需要进行滑坡灾害风险评估、建筑设计优化以及应急响应规划的项目。主要目标是帮助用户理解和预测滑坡对建筑物造成的潜在损害,从而提高建筑物的安全性和耐久性。 其他说明:文中提供的代码和参数设置均经过多次实验验证,确保了较高的准确性。对于想要进一步探索这一领域的读者来说,本文提供了一条从理论到实践的学习路径。
修复版本,改了短信接口到阿里云,现在好像国内短信接口管的最松的反而是阿里了,支付也已经接好了派特了。可以直接开户直接用了,带非常非常非常完整的搭建教程,萌新都可以随便装起来了。
内容概要:本文探讨了在自动驾驶领域中,利用Matlab/Simulink 2018b和Carsim 2020构建ACC(自适应巡航控制)系统的分层PID控制模型的方法和技术要点。首先介绍了软件选择的原因及其版本要求,强调了版本兼容性的重要性。接着详细讲解了模块化建模方法的应用,包括单独的Carsim配置文件、电机驱动模块、车辆巡航模块、车辆跟踪模块、切换逻辑、速度跟踪模块以及联合仿真模块等七个关键组成部分的作用和实现方式。文中提供了具体的MATLAB代码片段展示上层和下层PID控制器的工作机制,并分享了一些实用的小技巧,如安全距离动态补偿、积分限幅处理、死区设置等。此外,还讨论了联合仿真的注意事项,如接口版本匹配、远程调试设置等问题。最后提到模型验证的有效测试案例,并指出整套源码中最值得关注的部分是状态机实现。 适合人群:对自动驾驶技术感兴趣的科研人员、工程师以及相关专业的学生,尤其是那些希望深入了解ACC系统内部工作机制的人群。 使用场景及目标:①帮助读者掌握如何使用Matlab/Simulink和Carsim建立并优化ACC巡航控制系统;②提高读者对PID控制理论的理解及其在实际工程项目中的应用能力;③为从事智能交通系统研究的专业人士提供有价值的参考资料。 其他说明:本文不仅涵盖了理论知识,还包括大量实践经验分享,有助于初学者快速入门的同时也为资深从业者带来新的思考角度。
内容概要:本文详细介绍了基于西门子S7-1200 PLC和TIA Portal V16平台的五层电梯仿真系统。该系统利用博图V16的仿真环境,无需实体PLC即可实现电梯的动态动画运行。核心内容涵盖PLC程序的状态机设计、呼叫处理模块、HMI组态画面的设计以及安全回路处理等方面。文中展示了具体的代码片段,如电梯状态机的嵌套状态切换逻辑、呼叫信号的位操作处理、HMI动画的位置计算等。此外,还提到了一些实用技巧,如优化响应速度的方法、动画效果的实现细节以及仿真过程中可能遇到的问题及其解决方案。 适合人群:工控领域的工程师、培训讲师、学生及其他对电梯控制系统感兴趣的人员。 使用场景及目标:①作为教学工具,帮助学员理解和掌握电梯控制系统的逻辑设计;②作为验证工具,用于测试和优化电梯控制系统的性能;③为实际工程项目提供参考,减少硬件调试的时间和成本。 其他说明:该仿真系统不仅提供了完整的PLC程序和HMI项目文件,还包括详细的仿真参数配置指南和故障模拟功能,使得教学和实验更加生动有趣。
内容概要:本文详细介绍了Bandgap带隙基准电路的设计、仿真及其优化技巧。首先解释了启动电路的重要性和具体实现方式,确保电路能够稳定启动。接着深入探讨了如何通过仿真工具(如Cadence、Spectre等)进行抛物线曲线、电源抑制比(PSR)、稳定性等方面的仿真测试。提供了具体的Verilog、TCL和Spectre代码片段,帮助读者理解和实践这些复杂的电路特性。此外,还分享了一些实用的经验和技巧,如如何调整电阻比例、设置合适的仿真参数、处理潜在的振荡问题等。 适合人群:具有一定模拟电路基础知识的工程师和技术爱好者,尤其是对Bandgap带隙基准电路感兴趣的读者。 使用场景及目标:适用于希望深入了解Bandgap带隙基准电路的工作原理并掌握其仿真方法的人群。目标是在实践中提高电路设计能力,解决实际工程中的问题。 其他说明:文中不仅提供了理论知识,还包括大量实际操作步骤和代码示例,使读者能够在动手实践中加深理解。同时,强调了在GPDK45nm工艺下的特殊注意事项,为从事先进工艺电路设计的研究人员提供宝贵参考资料。
人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTorch实现高分遥感语义分割(地物分类)项目源码+文档说明人工智能-遥感-语义分割-PyTo
路宁-驾驭大模型开发真实项目代码.pdf
包装类型.md