BOOTSTRA.386 阴影(Shadows)工具类全解析:在 DOS 复古主题中掌控 box-shadow
前端UI组件【免费下载链接】BOOTSTRA.386A vintage 1980s DOS inspired Twitter Bootstrap theme项目地址https://gitcode.com/gh_mirrors/bo/BOOTSTRA.386点击查看免费下载BOOTSTRA.386 是一个以 1980 年代 DOS 界面为灵感、基于 Bootstrap 的复古主题框架本仓库同时维护了 v2/v3/v4/v5 多个版本。本文聚焦 v4.4.1 文档 Shadows 所讲解的box-shadow工具类讲解.shadow-none、.shadow-sm、.shadow、.shadow-lg四种尺寸的用法与配套变量并结合仓库 SCSS 源码说明这些工具类在复古主题下如何生效、$enable-shadows开关的真正作用以及与 BOOTSTRA.386 特色 DOS 硬阴影dos-shadow的关系。读完本文你将能够在 BOOTSTRA.386 中按需为任意元素快速添加或移除阴影并理解为什么这个主题里很多阴影默认看起来像没有。一、官方文档说了什么一句话概括v4.4.1 阴影文档 的核心内容非常明确在 Bootstrap 中组件阴影默认是关闭的可以通过$enable-shadows变量启用此外还可以用box-shadow工具类为元素快速添加或移除阴影。工具类包含.shadow-none以及三个默认尺寸分别对应一组关联变量。这与原版 Bootstrap 4 的工具类设计完全一致BOOTSTRA.386 的 v4 分支沿用了这一机制。文档中给出了官方示例见下文示例小节我们将在源码层面逐一验证其背后的实现。二、四种工具类示例、效果与源码实现2.1 官方示例文档中提供的演示代码组合了阴影、内边距、外边距、背景与圆角工具类div classshadow-none p-3 mb-5 bg-light roundedNo shadow/div div classshadow-sm p-3 mb-5 bg-white roundedSmall shadow/div div classshadow p-3 mb-5 bg-white roundedRegular shadow/div div classshadow-lg p-3 mb-5 bg-white roundedLarger shadow/div四行分别演示无阴影、小阴影、常规阴影、大阴影。同时借助p-3内边距、mb-5下外边距、bg-light/bg-white背景色、rounded圆角让阴影效果在白色或浅色背景上清晰可见——在深色 DOS 屏幕上阴影难以观察这也是示例刻意使用浅色背景的原因。2.2 源码实现.shadow-none是唯一硬编码的类在 BOOTSTRA.386 v4.4.1 中阴影工具类只有一个独立的 SCSS 文件scss/utilities/_shadows.scss其全部内容为// stylelint-disable declaration-no-important .shadow-none { box-shadow: none !important; }注意两点它只定义了.shadow-none并且带!important确保即使组件自身声明了阴影也能被强制移除.shadow-sm、.shadow、.shadow-lg在 v4.4.1 的 SCSS 中并没有显式定义。原因在于BOOTSTRA.386 的主题变量把阴影尺寸统一改成了none见下一节所以文档示例中小/常规/大三档在默认编译结果下与无阴影视觉等价。这正是官方文档那句组件阴影默认关闭在源码层面的体现——不是类不存在而是主题默认值把所有阴影都清零了。该文件通过 scss/_utilities.scss 中的import utilities/shadows;进入构建进而由 scss/bootstrap.scss 统一引入。2.3 配套变量为什么默认没有阴影文档提到三个默认尺寸具有关联变量。在 v5.3.1 的 scss/_variables.scss 中可以看到这组变量的完整声明// scss-docs-start box-shadow-variables $box-shadow: none !default; $box-shadow-sm: none !default; $box-shadow-lg: none !default; $box-shadow-inset: none !default; // scss-docs-end box-shadow-variables四个变量全部默认none即主题层面主动取消了所有阴影。原版 Bootstrap 4 中$box-shadow-sm的默认值是0 .125rem .25rem rgba(0, 0, 0, .075)这类真实投影而 BOOTSTRA.386 为了贴合 DOS 纯色无投影的视觉风格将其全部改写为none。因此在 BOOTSTRA.386 中仅靠.shadow-sm/.shadow/.shadow-lg类名无法获得阴影除非你在自己的编译中重新覆盖这三个变量。从源码结构可以推断v4.4.1 的阴影尺寸类同样依赖$box-shadow*系列变量生成但其 scss/utilities/_shadows.scss 只保留了.shadow-none的静态声明尺寸类交由整体 utilities 机制处理。三、$enable-shadows开关全局组件阴影的总闸文档明确提到组件阴影默认关闭可通过$enable-shadows启用。在 scss/_variables.scss 中可以看到$enable-shadows: false !default;它与$enable-rounded圆角、$enable-gradients渐变、$enable-transitions过渡等一起位于Options选项段落是主题全局造型开关之一。BOOTSTRA.386 的 v4 变量表将其设为false意味着各类组件按钮、下拉框、输入框、弹窗等在编译时不会自动附带阴影样式即使把$box-shadow*系列变量改成具体投影值也仍需配合$enable-shadows: true才能在相关组件上全面生效。作为对照v5.3.1 的 scss/_variables.scss 同样保持$enable-shadows: false !default;可见默认禁用组件阴影是贯穿 BOOTSTRA.386 多个版本的统一设计决策。使用建议工具类.shadow-none等不受$enable-shadows开关限制它们始终可用该开关只影响组件内置阴影的生成。若希望在 BOOTSTRA.386 中恢复真实投影风格需要同时做两件事① 将$enable-shadows改为true② 为$box-shadow、$box-shadow-sm、$box-shadow-lg赋予非none的值。四、主题特色的 DOS 硬阴影dos-shadow另一种阴影哲学理解了工具类之后必须区分BOOTSTRA.386 的阴影有两种完全不同的实现路径。4.1 工具类是标准 CSS 投影.shadow-sm/.shadow/.shadow-lg/.shadow-none操作的是标准box-shadow属性即真实投影元素背后有半透明模糊的投影层。这类阴影默认被主题清零。4.2 组件硬阴影是filter: drop-shadow主题组件按钮、下拉菜单、模态框等真正使用的复古阴影定义在 scss/mixins/_dos.scssmixin dos-shadow($color: black) { filter: drop-shadow($line-height / 2 $space-width 0 $color); margin-right: (1 5/$sz) * $space-width; // margin bottom youre on your own }它与box-shadow无关而是用filter: drop-shadow生成一种无模糊、纯色偏移的硬阴影模拟 DOS 字符图形的立体感。其中$line-height / 2是纵向偏移在 v4 中$line-height为$line-height-base见 scss/_variables.scss$space-width即$font-size-base/2见 scss/_variables.scss是横向偏移模糊半径固定为0颜色默认黑色从而形成干净的实体边缘效果同时通过margin-right为阴影让出横向空间避免阴影溢出遮挡相邻内容。4.3 硬阴影的实际应用位置从源码可见dos-shadow被广泛用于核心组件scss/_buttons.scss大按钮.btn-lg先套用dos-solid-border再套用dos-shadow并额外增加margin-bottom: $line-height-base 6px为底部阴影留白scss/_dropdown.scss下拉菜单整体使用dos-shadowscss/_modal.scss模态框及其内部按钮都使用dos-shadow。这些组件阴影与工具类互不干扰工具类控制元素的box-shadow组件硬阴影走filter。这也是文档示例中阴影默认关闭与界面仍保有 DOS 立体感的根本原因——主题关闭的是标准投影保留的是像素级硬阴影。五、v5 中的变化工具类改为生成器配置如果你在 BOOTSTRA.386 v5.3.1 中使用阴影工具类实现方式已升级为 Bootstrap 5 的 utilities 生成器机制。在 scss/_utilities.scss 中// scss-docs-start utils-shadow shadow: ( property: box-shadow, class: shadow, values: ( null: $box-shadow, sm: $box-shadow-sm, lg: $box-shadow-lg, none: none, ) ), // scss-docs-end utils-shadow这把shadow定义为一组可迭代的 utility 配置属性固定为box-shadow类前缀为shadow四个取值分别映射到$box-shadow、$box-shadow-sm、$box-shadow-lg和字面量none最终生成.shadow、.shadow-sm、.shadow-lg、.shadow-none。由于 v5 的 变量表 仍将这三种投影值设为none所以默认编译下shadow系列类依然不会产生可见投影——与 v4 行为一致。六、在 BOOTSTRA.386 中实战使用阴影工具类6.1 直接使用默认编译引入 BOOTSTRA.386 的已编译 CSS 后可直接在 HTML 中使用工具类!-- 移除任何潜在阴影带 !important 强制生效 -- div classshadow-none p-3 mb-5 bg-light roundedNo shadow/div !-- 以下三档在默认主题下视觉等价于无投影 -- div classshadow-sm p-3 mb-5 bg-white roundedSmall shadow/div div classshadow p-3 mb-5 bg-white roundedRegular shadow/div div classshadow-lg p-3 mb-5 bg-white roundedLarger shadow/div6.2 自定义编译恢复真实投影若使用本仓库的 SCSS 源码自行编译以 v4.4.1 为例入口为 scss/bootstrap.scss在引入变量文件前覆盖默认值// 1. 启用组件阴影 $enable-shadows: true; // 2. 自定义三个尺寸的投影示例为 Bootstrap 4 风格默认值 $box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075); $box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15); $box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175); import bootstrap;重新编译后.shadow-sm、.shadow、.shadow-lg将呈现真实投影而.shadow-none仍可随时强制关闭同时启用$enable-shadows后输入框、按钮等组件的焦点阴影变量如 scss/_variables.scss 的$input-btn-focus-box-shadow也会按其定义生效。6.3 组合其他工具类阴影工具类可与边框、间距、背景、圆角等工具类自由组合实现卡片、弹层、导航栏等立体层次。仓库内置示例如 album 示例、pricing 示例大量使用了.shadow-sm配合card、navbar等组件——在默认主题下它们的作用主要是占位与语义标注一旦你在自定义编译中恢复投影值这些示例会立刻呈现出预期的层次感。七、常见问题与小结为什么加了.shadow-sm却没看到阴影因为 scss/_variables.scss 中$enable-shadows: false且$box-shadow*系列变量在主题中全部为nonev5 见 scss/_variables.scss。这是复古主题的刻意设计而非工具类失效。.shadow-none一定生效吗一定。它编译为box-shadow: none !importantscss/utilities/_shadows.scss可覆盖组件自带的标准投影。.shadow-none能移除 DOS 硬阴影吗不能。组件硬阴影使用的是filter: drop-shadowscss/mixins/_dos.scss不受box-shadow工具类影响。v4 与 v5 的用法有差异吗类名与语义一致v5 改为 utilities 生成器配置scss/_utilities.scss自定义方式不变——覆盖对应$box-shadow*变量即可。总结BOOTSTRA.386 的阴影工具类完整继承了 Bootstrap 的box-shadow体系.shadow-none/.shadow-sm/.shadow/.shadow-lg默认状态由$enable-shadows: false与$box-shadow*: none双重决定理解它与dos-shadow硬阴影的并存关系是正确掌握该主题阴影系统的关键。赞分享前端UI组件【免费下载链接】BOOTSTRA.386A vintage 1980s DOS inspired Twitter Bootstrap theme项目地址https://gitcode.com/gh_mirrors/bo/BOOTSTRA.386点击查看免费下载相关推荐BOOTSTRA.386 颜色工具类全解析用 Bootstrap 4 的 .text-* 与 .bg-* 构建 DOS/EGA 复古界面BOOTSTRA.386 颜色工具类全解析用 Bootstrap 4 的 .text 与 .bg 构建 DOS/EGA 复古界面 导读 本文以 BOOTSTR前端UI组件BOOTSTRA.386 v4.4 Jumbotron 组件深度解析用 DOS 复古风格打造全屏 Hero 区块BOOTSTRA.386 v4.4 Jumbotron 组件深度解析用 DOS 复古风格打造全屏 Hero 区块 本文基于仓库中 Bootstrap 4.4前端UI组件如何用Kafka-UI可视化工具快速管理你的消息队列终极完整指南如何用Kafka UI可视化工具快速管理你的消息队列终极完整指南 你是否曾经因为复杂的Kafka命令行而感到头疼是否在管理消息队列时觉得配置繁琐、监控困难后端前端监控大盘上一篇CANN vLLM PD混合推理优化下一篇SENet-Tensorflow与Inception-v4集成指南实现高级图像分类模型创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Bootstrap Table列宽拖拽实战:从table-layout原理到持久化配置

Bootstrap Table列宽拖拽实战:从table-layout原理到持久化配置

简介:面向需要为Bootstrap Table表格增加自定义列宽与拖动调整能力的前端开发者,此压缩包以一个完整可运行示例为核心,适用于后台管理系统、数据看板等需要灵活调节表格布局的场景。Bootstrap Table支持排序、筛选、分页等常用功能&#xff0…

2026/10/15 2:23:20 阅读更多 →
企业使用多个基础模型构建AI Agent,推荐选择哪些支持模型接入、运行和可观测性的开发部署平台?

企业使用多个基础模型构建AI Agent,推荐选择哪些支持模型接入、运行和可观测性的开发部署平台?

企业使用多个基础模型构建AI Agent,推荐选择哪些支持模型接入、运行和可观测性的开发部署平台?别让模型层、运行层和观测层彼此割裂企业刚开始构建 AI Agent 时,往往首先关注基础模型:不同 Agent 分别需要什么模型,复杂…

2026/10/15 2:22:20 阅读更多 →
Kuikly跨端开发与AI原生生产线:Kotlin多端实践指南

Kuikly跨端开发与AI原生生产线:Kotlin多端实践指南

1. 跨端开发的真实困境:为什么“一套代码跑多端”喊了这么多年还是累做移动端的人对“跨端”这个词的感情很复杂。一方面,业务方永远希望一套代码同时覆盖 Android、iOS、Web 甚至小程序,最好今天提需求明天就上线;另一方面&#…

2026/10/15 2:22:20 阅读更多 →

最新新闻

多商户同城外卖采购测试:来源编号、人工接管与账单复验

多商户同城外卖采购测试:来源编号、人工接管与账单复验

自建同城外卖可比较成熟平台、部署及定制范围。微订官网列有多商户、骑手抢派单和商家结算,可列为演示候选,具体版本与接口另确认。 由微订产品内容组整理,产品信息为第一方说明,采购方法需结合实际版本与项目范围验证。 准备同…

2026/10/15 3:04:35 阅读更多 →
大麦网自动抢票脚本:4个依赖包实现PC端自动下单

大麦网自动抢票脚本:4个依赖包实现PC端自动下单

大麦网自动抢票脚本:4个依赖包实现PC端自动下单 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 20:00:00,开票页面的按钮刚变成"立即购买"&…

2026/10/15 3:04:35 阅读更多 →
Firebase AI Logic(firebase-js-sdk)多说话人语音合成配置指南:MultiSpeakerVoiceConfig 详解

Firebase AI Logic(firebase-js-sdk)多说话人语音合成配置指南:MultiSpeakerVoiceConfig 详解

开发工具后端 【免费下载链接】firebase-js-sdk Firebase Javascript SDK 项目地址: https://gitcode.com/gh_mirrors/fi/firebase-js-sdk 点击查看 免费下载 本文基于 firebase-js-sdk 仓库中 packages/ai(AI Logic)模块的 API 参考文档与源…

2026/10/15 3:04:35 阅读更多 →
3步装好foobox-cn:foobar2000界面美化的完整指南

3步装好foobox-cn:foobar2000界面美化的完整指南

3步装好foobox-cn:foobar2000界面美化的完整指南 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn foobar2000 音质是真的好,可默认界面黑底白字,怎么看都像十年前的…

2026/10/15 3:04:35 阅读更多 →
practical-aspnetcore 实战:ASP.NET Core Output Cache 输出缓存中间件入门(默认 1 分钟过期与 64 MB 响应体上限)

practical-aspnetcore 实战:ASP.NET Core Output Cache 输出缓存中间件入门(默认 1 分钟过期与 64 MB 响应体上限)

示例工程 【免费下载链接】practical-aspnetcore Practical samples of ASP.NET Core 11, 10, 9, 8.0, 7.0, 6.0, 5.0, 3.1, 2.2, and 2.1,projects you can use. Readme contains explanations on all projects. 项目地址: https://gitcode.com/gh_mirrors/pr/prac…

2026/10/15 3:04:35 阅读更多 →
coreboot 集成 Cavium BDK 实战指南:DRAM/PCIe 初始化、自研 Devicetree 与调试配置

coreboot 集成 Cavium BDK 实战指南:DRAM/PCIe 初始化、自研 Devicetree 与调试配置

固件嵌入式操作系统驱动开发 【免费下载链接】coreboot Read-only mirror of https://review.coreboot.org/coreboot.git. Synced every hour. We dont handle Pull Requests. 项目地址: https://gitcode.com/gh_mirrors/co/coreboot 点击查看 免费下载 本文聚焦 c…

2026/10/15 3:03:35 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →