版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
20XX/XX/XXSass高级特性实战:从嵌套优化到模块化开发汇报人:XXXCONTENTS目录01
Sass嵌套规则深度解析02
Sass变量系统与主题管理03
混合宏(Mixins)高级应用04
Sass模块化开发实践05
Sass与TypeScript协同开发06
性能优化与最佳实践01Sass嵌套规则深度解析嵌套层级过深导致选择器爆炸当嵌套层级超过5层时,生成的CSS选择器冗长且特异性过高,后期难以覆盖。例如.container.header.nav.item.link:hover这样的选择器,维护成本显著增加。&父选择器的符号位置错误&符号必须紧跟父选择器,否则会导致解析失败。错误示例:.container{&.header{color:blue;}},编译时会抛出"SassError:InvalidCSSafter&:expected"{",was".header""。动态后缀拼接的选择器冲突使用&拼接动态后缀时,父选择器必须以字母/数字结尾。错误示例:.123-box{&-title{color:red;}},会因特殊字符导致编译失败,提示"SassError:InvalidCSSafter".123-box":expectedselector,was"-title""。嵌套层级可视化检测工具使用sass-nesting-analyzer插件可检测嵌套深度,通过分析Sass文件识别过深层级,帮助开发者优化选择器结构,避免生成冗余CSS。选择器嵌套的边界条件处理&父选择器的高级应用技巧
伪类与伪元素嵌套使用&引用父选择器实现伪类/伪元素样式,如&:hover、&::before。示例:.btn{&:hover{background:#f0f0f0;}}
BEM命名规范适配通过&拼接BEM修饰符,生成如.btn--primary、.card__title的选择器。示例:.btn{&--primary{background:blue;}}
同层组合选择器应用结合>、+、~等组合选择器,如article{&~article{border-top:1pxdashed#ccc;}}实现相邻元素样式控制。
父选择器前缀拼接在父选择器前添加条件选择器,如#contentaside{body.ie&{color:green;}},编译为body.ie#contentaside。嵌套层级可视化与性能优化嵌套层级可视化工具应用使用sass-nesting-analyzer插件可检测Sass嵌套深度,通过分析工具能直观展示选择器嵌套结构,帮助开发者识别过深嵌套问题。嵌套深度与性能关系嵌套层级超过5层会生成冗长选择器,导致CSS特异性过高,后期覆盖困难,同时增加浏览器渲染负担,影响页面性能。嵌套优化实践原则建议嵌套层级不超过3层,结合BEM命名规范控制作用域,避免为每个HTML标签深层嵌套,保持代码简洁高效。性能优化工具链集成在Webpack、Vite等构建工具中集成Sass编译插件,配合Stylelint约束嵌套深度,实现开发阶段自动化检测与优化。群组选择器嵌套优化通过Sass嵌套,群组选择器可避免重复父选择器。如.container{h1,h2,h3{margin-bottom:.8em;}}编译为.containerh1,.containerh2,.containerh3{margin-bottom:.8em;},减少冗余代码。子组合选择器(>)应用子组合选择器>用于选择直接子元素。例如article{>section{background:#eee;}}编译为article>section{background:#eee;},精确控制层级关系。同层组合选择器(+、~)应用同层相邻组合器+选择紧随其后的同层元素,如header+p{font-size:1.1em;};同层全体组合器~选择所有后续同层元素,如article~article{border-top:1pxdashed#ccc;},丰富选择逻辑。群组与组合选择器嵌套注意事项群组选择器嵌套可能生成大量CSS,需避免过度使用。组合选择器可直接嵌套,无需父选择器&,如nav,aside{a{color:blue;}}编译为nava,asidea{color:blue;},保持代码简洁。群组选择器与组合选择器嵌套嵌套规则实战案例:导航组件重构
HTML结构映射与选择器嵌套以<nav><ul><li><a></a></li></ul></nav>结构为例,使用Sass嵌套直观复现DOM层级,生成.navul、.navli、.nava等后代选择器,减少选择器冗余。
父选择器&的高级应用通过&:hover实现a标签悬停效果,&--active定义激活状态类名,&_item创建BEM风格子元素选择器,解决伪类和复合选择器的嵌套难题。
组合选择器与属性嵌套优化使用>子组合选择器限定直接子元素,+相邻兄弟选择器控制间距;对font、margin等属性进行嵌套简写,如font:{size:14px;weight:600;},精简代码结构。
嵌套深度控制与性能考量将导航组件嵌套层级控制在3层以内,避免生成冗长选择器(如.nav.ul.li.a),降低CSS特异性冲突风险,提升样式渲染性能。02Sass变量系统与主题管理变量作用域与!global关键字应用01Sass变量的默认作用域规则Sass变量默认具有块级作用域,在{}内部定义的变量仅在该块内有效,称为局部变量;在块外部定义的变量为全局变量,作用域覆盖其定义位置之后的所有区域。02!global关键字的作用与用法使用!global关键字可以将局部变量提升为全局变量,使其在定义它的块外部也能被访问和修改。例如在选择器内部定义$myColor:green!global;,则该变量值会覆盖全局同名变量。03作用域优先级与变量覆盖当局部变量与全局变量同名时,局部变量优先级更高,会覆盖全局变量在该作用域内的值。若要修改全局变量,必须使用!global关键字,否则赋值操作会被忽略。04全局变量管理的最佳实践推荐将所有全局变量集中定义在单独的文件(如_globals.scss)中,避免在局部作用域随意使用!global修改全局变量,以保证变量值的可预测性和代码可维护性。Map数据结构与多主题实现主题Map的定义与优势使用SassMap存储多套主题配置,如$themes:("light":("primary":#007bff,"surface":#fff),"dark":("primary":#4dabf7,"surface":#1a1d22)),实现集中化管理与灵活切换。主题颜色取值函数封装通过@functiontheme-color($theme-name,$key){@returnmap-get(map-get($themes,$theme-name),$key);}实现主题颜色的便捷获取,避免硬编码与重复逻辑。多主题应用与切换实践结合CSS自定义属性,在根元素定义.theme-light和.theme-dark类,通过JS动态切换类名,Sass变量编译为对应CSS变量值,实现运行时主题切换。主题维护与扩展策略采用“基础Map+环境覆盖”模式,新增主题仅需扩展Map配置,配合@use和@forward模块化暴露接口,确保主题系统的可维护性与可扩展性。断点Map数据结构定义采用SassMap存储多维度断点配置,如$breakpoints:("sm":576px,"md":768px,"lg":992px,"xl":1200px),支持语义化键名与像素值映射。响应式混合宏封装创建@mixinrespond-to($breakpoint)条件混合宏,通过map-get动态获取断点值,自动生成媒体查询代码,如@includerespond-to("md"){...}编译为@media(min-width:768px){...}。多场景断点调用示例应用于组件适配:.sidebar{width:100%;@includerespond-to("lg"){width:240px;float:left;}},实现移动端到桌面端的布局转换。断点校验与错误处理集成@ifmap-has-key($breakpoints,$breakpoint)条件判断,当传入无效断点时触发@error"未知断点`#{$breakpoint}`",提升开发调试效率。响应式断点变量设计方案多环境变量管理与构建集成多环境变量管理的挑战
在Sass项目部署中,需管理开发、测试、生产等多环境下的变量,如颜色、API地址、功能开关等。直接硬编码环境相关值会导致维护困难、易出错且不利于自动化构建。Webpack集成方案
利用Webpack的DefinePlugin和sass-loader,在编译阶段将环境变量注入Sass上下文。通过additionalData配置项,可根据不同环境动态设置Sass变量值,实现环境隔离与按需打包。Vite现代化解决方案
Vite通过vite-plugin-environment和.env文件机制,提供更优雅的方式。在vite.config.ts中配置preprocessorOptions,结合mode参数区分环境,实现Sass变量的环境化注入。分层变量架构设计
采用“基础层+环境覆盖”模式,基础层定义默认值,各环境层进行覆盖。通过构建脚本选择性引入对应环境文件,结合FeatureToggle实现灰度发布,支持运行时动态加载主题包。主题切换系统实战:明暗模式实现
主题变量Map设计定义明暗主题变量Map,集中管理颜色值:$themes:("light":("primary":#007bff,"surface":#fff),"dark":("primary":#4dabf7,"surface":#1a1d22));
主题切换混合宏创建theme()混合宏,根据主题名动态获取颜色:@mixintheme($theme-name){$theme:map-get($themes,$theme-name);background-color:map-get($theme,"bg");color:map-get($theme,"text");}
CSS变量桥接实现通过Sass生成CSS变量,支持运行时切换:.theme-dark{--primary:#{map-get($dark-theme,primary)};}button{background-color:var(--primary);}
切换逻辑与性能优化使用JavaScript切换根元素类名,配合will-change:transform提升渲染性能,实现无闪烁主题切换。03混合宏(Mixins)高级应用单参数混合宏与默认值设定通过为混合宏参数设置默认值,如@mixinborder-radius($radius:5px),实现基础样式的快速复用,当调用时未传参则使用默认值,增强代码灵活性。多参数混合宏与参数传递策略支持多参数定义,如@mixinbox-specs($border:1pxdashed#ccc,$padding:10px),调用时可按顺序传参或指定参数名传参,满足多样化样式需求。不定参数与条件逻辑结合应用使用...语法接收不定参数,配合@if条件判断实现复杂样式逻辑,例如@mixinbox-shadow($shadow...)根据参数数量动态生成不同阴影效果,提升混合宏的适应性。参数化实现响应式与主题定制结合Sass变量与参数化混合宏,如@mixinresponsive-font($min:16px,$max:24px),可快速生成适配不同设备的响应式样式,或通过参数切换主题配色方案。带参数混合宏的灵活配置条件逻辑与循环在混合宏中的应用
条件判断实现动态样式分支通过@if/@else指令根据参数值生成差异化样式,如根据$type参数为按钮组件切换primary/danger主题色,避免重复代码块。
多参数条件组合控制利用逻辑运算符组合多个条件参数,实现复杂样式逻辑,例如通过$size和$shape参数动态调整按钮尺寸与边角样式。
循环遍历生成工具类使用@each循环遍历Sass列表或Map,批量生成间距、颜色等原子化工具类,如遍历$spacing-sizes生成.mt-8、.mb-16等margin工具类。
响应式断点的循环生成结合@for循环与媒体查询,根据$breakpoints变量自动生成多断点响应式样式,提升开发效率并保证断点一致性。响应式混合宏设计模式
断点Map与媒体查询封装定义$breakpoints:("sm":576px,"md":768px,"lg":992px)存储响应式断点,通过@mixinrespond-to($breakpoint)实现结构化媒体查询,支持动态参数校验与错误提示。
参数化响应式布局创建@mixinresponsive-grid($columns:12)混合宏,实现网格列数动态配置,在768px断点自动切换单列布局,通过$columns参数控制不同设备下的网格密度。
条件逻辑与内容注入利用@content指令实现混合宏内容块注入,结合@if条件判断处理断点合法性,当传入未知断点时触发@error抛出"未知断点"异常,确保编译时错误捕获。
实战应用:响应式侧边栏使用@includerespond-to("md")在768px以上设备将.sidebar宽度设为240px并左浮动,移动设备默认100%宽度,实现无需重复媒体查询的响应式组件开发。1px边框问题的混合宏解决方案Retina屏幕1px边框的视觉挑战在设备像素比(DPR)≥2的Retina屏幕中,1pxCSS边框会被渲染为2×2或3×3物理像素矩阵,视觉效果比设计稿粗200%-300%,导致界面精致度下降。传统解决方案的局限性对比直接书写0.5px边框仅iOS8+支持,安卓兼容性差;viewport缩放影响全局布局单位;图片背景法维护成本高,而伪元素+transform缩放方案可精准控制且兼容性良好。Sass混合宏实现原理与代码结构通过定义@mixinthinBorder,支持多方向配置、动态颜色、圆角处理及伪元素定位。核心算法:创建200%尺寸伪元素,scale(0.5)压缩至原始大小,实现0.5物理像素视觉效果。多场景调用示例与工程化实践支持全边框+圆角(@includethinBorder((top,bottom,left,right),red,2px))、单边线(@includethinBorder(bottom,rgba(0,0,0,0.1)))及复杂形状卡片等场景,配合will-change提升渲染性能。01动态关键帧命名生成通过Sass函数结合unique-id()生成唯一动画名称,避免全局命名冲突。示例:@functionanimation-name($name){@return#{$name}-#{unique-id()};}02参数化动画步骤定义使用Map数据结构传递动画关键帧配置,支持灵活定义各阶段样式。示例:@mixinkeyframe-anim($name,$steps){@each$key,$propsin$steps{#{$key}{@content($props);}}}03动画属性自动注入在混合宏中自动生成@keyframes规则并注入animation属性,简化调用流程。示例:animation:$anim-name1sease;其中$anim-name由内部函数动态生成。04多场景动画复用案例实现淡入缩放动画:@includekeyframe-anim("fade-scale",(0%:(opacity:0,transform:scale(0)),100%:(opacity:1,transform:scale(1))));编译后自动生成带唯一标识的关键帧及动画声明。动画关键帧混合宏封装技巧04Sass模块化开发实践@use与@forward的模块系统
模块化引入:@use指令@use指令通过命名空间引入模块,如@use'variables'asvar,变量需通过var.$primary-color访问,避免全局污染,每个模块独立作用域。
模块转发:@forward指令@forward用于聚合模块,可通过@forward'themes'hide$internal变量控制暴露内容,实现公共API封装,简化多模块引用流程。
与@import的本质区别@import为文本拼接易导致变量冲突和冗余编译,@use则创建独立作用域并支持按需加载,DartSass已将@import标记为过时特性。
实战最佳实践建立核心模块入口文件,通过@forward整合variables、mixins等基础模块,组件样式中用@use引入,形成"入口转发+组件引入"的清晰架构。BEM命名规范与Sass结合应用
01BEM命名与Sass嵌套的天然契合BEM(Block-Element-Modifier)命名规范将样式分为块(Block)、元素(Element)、修饰符(Modifier),与Sass的嵌套语法结构高度匹配,可通过嵌套直观复现BEM层级关系。
02Sass父选择器&实现BEM修饰符使用Sass的&符号引用父选择器,可简洁生成BEM修饰符。例如:.btn{&--primary{...}&__icon{...}}编译为.btn--primary{...}.btn__icon{...},避免重复书写长类名。
03BEM与Sass变量提升主题一致性结合Sass变量统一管理BEM组件中的颜色、间距等样式值。如定义$primary-color变量,在.block__element--modifier中引用,实现一处修改,全局BEM组件样式统一更新。
04实战案例:BEM+Sass构建按钮组件通过Sass嵌套实现BEM结构:.btn{padding:$spacing;&--large{padding:$spacing*2;}&__text{font-size:$font-size;}},使代码结构清晰,易于维护和扩展。样式隔离与CSSModules协同
Sass变量与CSSModules作用域隔离将Sass变量集中定义在全局文件(如_variables.scss),通过@use引入,结合CSSModules的局部作用域特性,避免变量污染与样式冲突。
BEM命名规范与嵌套规则结合采用BEM命名(如.block__element--modifier),利用Sass嵌套规则组织代码,如".card{&__title{...}&--featured{...}}",提升可读性与隔离性。
混合宏(Mixins)的组件化封装将通用样式(如圆角、阴影)封装为带参数的混合宏,在CSSModules文件中@include调用,实现样式复用同时保持组件样式独立性。
多环境变量注入与主题隔离通过Webpack/Vite构建工具,在编译阶段向Sass注入环境变量(如$env-theme:"dark"),结合条件判断生成不同主题样式,实现环境间样式隔离。基础层:全局配置与工具包含_variables.scss存储主题颜色、字体、间距等全局变量,_mixins.scss封装响应式、圆角等通用混合宏,_functions.scss定义颜色处理、单位转换等工具函数,形成项目样式基础。组件层:独立模块样式按组件类型划分为buttons、cards、forms等目录,每个组件样式文件仅包含自身相关规则,通过@use引入基础层变量与混合宏,实现组件样式的高内聚低耦合。页面层:布局与页面特有样式针对首页、列表页等不同页面创建专属样式文件,引入组件样式并定义页面级布局规则,如栅格系统、容器宽度等,避免样式污染与冗余。入口文件:样式聚合与编译main.scss作为编译入口,通过@use按顺序引入基础层、组件层、页面层样式文件,利用Sass模块系统控制依赖关系,最终编译为单个CSS文件输出。大型项目的Sass文件组织结构MFE微前端中的Sass模块化方案微前端样式隔离核心挑战大型微前端项目中,各子应用样式冲突、全局变量污染、主题一致性难以维护是主要痛点,需通过Sass模块化构建隔离与共享并存的样式体系。@use与@forward的模块封装采用Sass现代模块系统,通过@use引入模块并创建命名空间(如@use'variables'asvar),@forward暴露公共API,替代废弃的@import,实现作用域隔离。主题变量跨应用共享策略建立全局主题包,定义核心变量($primary-color、$breakpoints),子应用通过@use按需引入,结合CSS自定义属性实现运行时主题切换,确保视觉一致性。组件级样式封装实践基于BEM命名规范与Sass嵌套,将组件样式封装在独立文件中,利用占位符选择器(%placeholder)和@extend复用基础样式,避免选择器冲突。05Sass与TypeScript协同开发类型安全的样式变量管理
主题变量的Map数据结构设计采用Map存储多主题配置,如$themes:("light":("primary":#007bff,"surface":#fff),"dark":("primary":#4dabf7,"surface":#1a1d22)),实现语义化与可扩展性。
变量作用域与!global关键字局部变量默认作用域为当前代码块,使用!global关键字可提升为全局变量,如$myColor:green!global,需注意避免全局污染。
变量类型约束与校验通过Sass内置函数type-of()、length()等实现变量类型检查,如@iftype-of($radius)!=number{@error"radiusmustbeanumber"},确保样式参数合法性。
多环境变量的构建时注入结合Webpack/Vite构建工具,通过sass-loader的additionalData或EnvironmentPlugin,实现开发/测试/生产环境变量自动切换,如$env-api-base根据NODE_ENV动态赋值。泛型接口与样式系统设计TypeScript泛型接口:类型安全的样式配置通过泛型接口定义样式配置契约,如interfaceThemeConfig<T>{colors:T;spacing:number[]},确保主题配置的类型一致性与可扩展性,支持多主题参数化定义。Sass混合宏与泛型协同:动态样式生成结合TypeScript泛型类型推断与Sass混合宏参数化能力,实现如@mixingenerate-theme($config:ThemeConfig)的动态样式生成,确保样式逻辑与类型定义同步。主题切换的类型约束与样式隔离利用泛型接口约束主题切换函数类型,如functionswitchTheme<TextendsThemeConfig>(theme:T):void,配合Sass模块化@import或@use机制,实现编译时类型检查与运行时样式隔离。主题Map类型结构化定义采用SassMap数据结构定义多主题配置,如$themes:("light":("primary":#007bff,"surface":#fff),"dark":("primary":#4dabf7,"surface":#1a1d22)),实现主题数据的集中化管理。语义化主题变量类型声明通过语义化命名变量(如$text-primary、$bg-surface)关联主题Map中的具体值,确保样式代码的可读性与可维护性,避免直接使用硬编码颜色值。主题颜色动态推导函数创建theme-color($theme-name,$key)等自定义函数,实现基于主题名称和属性键的颜色值动态提取,如color:theme-color("dark","primary"),简化主题切换逻辑。编译期类型校验与错误处理利用Sass内置函数(如map-has-key、type-of)在编译阶段校验主题配置的完整性,当引用不存在的主题或属性时抛出明确错误,提升代码健壮性。主题类型定义与类型推导React组件中的Sass集成实践
CreateReactApp项目配置通过node-sass或dart-sass依赖,支持.scss文件直接引入;使用CSSModules实现组件样式隔离,如Button.module.scss文件自动生成哈希类名。
Next.js中的Sass模块化方案利用@use和@forward指令组织变量与混合宏;通过next.config.js配置additionalData注入全局变量,实现主题样式统一管理。
组件样式封装最佳实践采用BEM命名规范结合嵌套规则,如.btn{&__icon{...}&--primary{...}};使用:global()关键字处理全局样式覆盖。
性能优化与构建集成通过tree-shaking移除未使用样式;结合Webpack的sass-loader实现开发环境热更新,生产环境压缩与autoprefixer自动前缀处理。06性能优化与最佳实践选择器优化与特异性管理
嵌套层级控制策略推荐嵌套层级不超过3层,避免生成冗长选择器。例如导航菜单采用".navbar.nav-list.nav-item"三级结构,既保持层级清晰,又防止选择器特异性过高。BEM命名规范与嵌套结合使用&符号实现BEM命名,如".btn{&--primary{}&__icon{}}",编译为".btn--primary"和".btn__icon",避免选择器嵌套过深,提升样式复用性。选择器特异性冲突解决方案通过减少嵌套层级、使用更具体的类名(如".header-nav"而非".header.nav")、避免ID选择器,降低特异性冲突风险。当需要覆盖样式时,优先使用更高特异性选择器或添加额外类。工具检测与优化实践使用sass-nesting-analyzer插件检测嵌套深度,结合Stylelint约束嵌套规则。例如配置max-nesting-depth规则为3,在开发阶段发现并修复过度嵌套问题。占位符选择器与代码精简占位符选择器基础语法占位符选择器以%开头定义,如%button-base{padding:12px24px;border-radius:4px;},编译后默认不生成CSS代码,仅在被@extend调用时输出。与类选择器的核心差异类选择器无论是否被使用均会编译输出,占位符选择器仅在被@extend时生成代码,避免未使用样式导致的CSS冗余,尤其适用于公共样式抽象。实战应用:按钮样式复用定义%button-base封装基础按钮样式,通过.primary-button{@extend%button-base;background:#2196f3;}和.icon-button{@extend%button-base;padding:8px;}实现多按钮样式复用,编译后仅生成实际使用的选择器。性能优化与注意事项占位符选择器可有效减少CSS文件体积,建议与@extend配合使用,避免与Mixins混淆。注意:占位符无法传递参数,适合静态样式复用场景。Sass编译性能优化策略控制嵌套层级深度避免嵌套超过3层,减少选择器特异性过高问题,降低编译后CSS体积。例如将嵌套层级控制在3层以内,可显著提升编译效率。合理使用@use替代@import采用@use模块化导入,避免文件重复编译,提升依赖管理效率。相比@import的文本拼接,@use创建独立作用域,防止变量污染。优化变量与混合宏设计集中管理全局变量,避免重复定义;混合宏参数设置默认值,减少调用时的参数传递。例如使用Map数据结构存储主题变量,提高查询效率。利用构建工具提升编译速度结合Webpack或Vite的sass-loader,开启缓存机制;使用dart-sass替代node-sass,提升编译性能。如Webpack的cache-loader可缓存编译结果,减少重复工作。Stylelint规则配置与团队规范核心规则分类与配置策略Stylelint核心规则分为8大类,包括At-rule、Block、Color、Comment等,可通过extends继承standard或airbnb-base配置,并使用rules字段自定义覆盖。例如设置"at-rule-no-unknown":true禁止未知@规则,"declaration-block-no-duplicate-properties":true防止重复属性。Sass特定规则强化针对Sass特性需启用stylelint-scss插件,配置"sass/at-rule-no-unknown":[true,{"ignoreAtRules":["mixin","include","use"]}]允许Sass特有@规则;"scss/sele
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妊娠并发症合并症
- 村级防溺水安全方案
- 中班社会健康绘本
- 环境与健康教学
- 常见操作并发症预防及处理
- 苏教版小学一年级语文下册《蚂蚁和蝈蝈》勤劳节俭品质教案
- 装修现场临时用电施工方案
- 小学生防震减灾安全演练活动方案
- 单位安全风险管理
- 安全环保方面调研报告
- 平房灭火救援授课课件
- 判决书不公开申请书模板
- GB/T 5780-2025紧固件六角头螺栓C级
- 《施工组织设计专项施工方案资料》铁路客运专线土建工程全套施工组织设计第八章-安全目标和安全保证体系及措施
- 品质部纪律管理办法
- 《四川省信息化项目费用测算标准》(修订征求意见稿)
- T/CBMCA 011-2020瓷质砖背胶
- 肺动脉高压课件
- DB4201-T 704-2024 武汉市党政机关物业管理服务规范
- JT-T-1284-2020低平板半挂车技术规范
- 《高效制冷机房系统应用技术规程》
评论
0/150
提交评论