refactor: 死代码清理 + CDN SRI 加固 + 面包屑组件 + 代码规范文档

- 删除 7 个死模板文件 (products/services/quality/process/projects/customization/rfq)
- 删除 13 个旧图片素材 (jpg/png/webp)
- 新增 CDN SRI 完整性校验 (Bootstrap CSS/JS)
- 新增面包屑导航模板组件
- 新增代码清理方案与代码审查标准文档
- 更新 README.md
This commit is contained in:
2026-07-24 17:48:00 +08:00
parent 8a2890f8b4
commit 43272d25eb
39 changed files with 848 additions and 332 deletions
+80 -4
View File
@@ -1151,11 +1151,14 @@ textarea:focus-visible {
.breadcrumb-nav {
color: var(--b2b-ink-muted);
font-size: 0.9rem;
line-height: 1.6;
word-break: break-word;
}
.breadcrumb-nav a {
color: var(--b2b-ink-soft);
text-decoration: none;
white-space: normal;
}
.breadcrumb-nav a:hover {
@@ -1304,14 +1307,87 @@ textarea:focus-visible {
/* XL down — 1199px */
@media (max-width: 1199px) {
.b2b-header .offcanvas-body {
display: block;
padding: 2rem;
/* Offcanvas mobile menu */
.b2b-header .offcanvas {
max-width: 320px;
width: 85vw !important;
height: 100dvh;
height: 100vh;
overflow-y: auto;
background: var(--b2b-surface);
border-left: 1px solid var(--b2b-line-light);
box-shadow: var(--b2b-shadow-lg, 0 0 30px rgba(28,28,26,0.08));
}
.b2b-header .offcanvas-header {
display: flex;
align-items: center;
justify-content: space-between;
flex-shrink: 0;
border-bottom: 1px solid var(--b2b-line-light);
padding: 1.25rem 1.5rem;
margin: 0;
}
.b2b-header .offcanvas-title {
font-weight: 600;
font-size: 1.1rem;
color: var(--b2b-ink);
}
.b2b-header .offcanvas-body {
flex: 1 1 auto;
display: flex !important;
flex-direction: column;
padding: 0.5rem 1.5rem 2rem;
overflow-y: auto;
}
.b2b-header .offcanvas .navbar-nav {
display: flex !important;
flex-direction: column;
gap: 0;
margin: 0 0 1.5rem 0;
padding: 0;
list-style: none;
width: 100%;
}
.b2b-header .offcanvas .nav-item {
border-bottom: 1px solid var(--b2b-line-light);
width: 100%;
}
.b2b-header .offcanvas .nav-link {
display: block;
width: 100%;
padding: 0.85rem 0;
color: var(--b2b-ink);
font-size: 1.05rem;
font-weight: 500;
text-align: left;
text-decoration: none;
transition: color 180ms ease;
}
.b2b-header .offcanvas .nav-link:hover,
.b2b-header .offcanvas .nav-link:focus {
color: var(--b2b-ink-soft);
}
.b2b-header .offcanvas .nav-link.active,
.b2b-header .offcanvas .current-menu-item > .nav-link {
color: var(--b2b-ink);
font-weight: 600;
}
.b2b-header .b2b-header-cta {
align-self: flex-start;
}
/* Navbar layout overrides for collapsed state */
.b2b-header .navbar-nav {
gap: 1.25rem;
margin-bottom: 1.5rem;
}
.capability-grid {
+3 -42
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 KiB

+6 -78
View File
File diff suppressed because one or more lines are too long
-8
View File
@@ -4,8 +4,6 @@
document.documentElement.classList.remove('no-js');
document.documentElement.classList.add('js');
var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
function initStickyHeader() {
var header = document.querySelector('#header');
if (!header) return;
@@ -16,11 +14,6 @@
window.addEventListener('scroll', updateHeader, { passive: true });
}
function initAnimations() {
if (!window.AOS || typeof window.AOS.init !== 'function') return;
window.AOS.init({ duration: reducedMotion ? 0 : 700, once: true, disable: reducedMotion });
}
function initVideoLightbox() {
if (!$.fn || typeof $.fn.colorbox !== 'function') return;
$('.youtube').colorbox({ iframe: true, innerWidth: 960, innerHeight: 585, maxWidth: '95%', maxHeight: '90%' });
@@ -39,7 +32,6 @@
$(function () {
initStickyHeader();
initAnimations();
initVideoLightbox();
initNavigation();
});