diff --git a/app/index/view/mobile/topic_power_prodline/index.html b/app/index/view/mobile/topic_power_prodline/index.html index 3ed0b1d5..a31dc90d 100644 --- a/app/index/view/mobile/topic_power_prodline/index.html +++ b/app/index/view/mobile/topic_power_prodline/index.html @@ -300,8 +300,10 @@ {$cts_lf.title} -
- {$cts_lf.title} + +
+ + {$cts_lf.title}
{/notempty} @@ -463,8 +465,9 @@ productRights.forEach((rightContainer) => { const img = rightContainer.querySelector('.right-img'); const video = rightContainer.querySelector('.right-video'); + const videoSrc = video.src.trim() if (!img || !video) return; - + if(!videoSrc) return; const rect = rightContainer.getBoundingClientRect(); // 视口判断:容器进入视口50%以上视为活跃 const isInView = diff --git a/app/index/view/pc/topic_power_prodline/index.html b/app/index/view/pc/topic_power_prodline/index.html index 01f654c6..93157658 100644 --- a/app/index/view/pc/topic_power_prodline/index.html +++ b/app/index/view/pc/topic_power_prodline/index.html @@ -194,7 +194,7 @@ {$dc_first_section_lf.short_title} -
+
{$dc_first_section_lf.short_title}
@@ -299,8 +299,10 @@ {notempty name="cts_lf"} {$cts_lf.title} - -
+ + +
+ {$cts_lf.title}
@@ -400,24 +402,24 @@ // 点击卡片显示详情 advantageItems.forEach((item) => { - item.addEventListener('click', (e) => { - // 获取当前点击卡片内的.mack-conten-text元素 - const currentMackContent = e.currentTarget.querySelector('.mack-conten-text'); - if (currentMackContent) { - // 关键修改:获取该元素的子内容(innerHTML 本身就是内部HTML,不含当前元素标签) - // 若想更彻底,可遍历子节点拼接内容(兼容特殊场景) - let contentHtml = ''; - Array.from(currentMackContent.childNodes).forEach(child => { - // 只保留元素节点和文本节点(过滤空节点) - if (child.nodeType === 1 || child.nodeType === 3) { - contentHtml += child.outerHTML || child.textContent; - } - }); - // 显示蒙版并传入纯净的子内容 - showMask(contentHtml); - } + item.addEventListener('click', (e) => { + // 获取当前点击卡片内的.mack-conten-text元素 + const currentMackContent = e.currentTarget.querySelector('.mack-conten-text'); + if (currentMackContent) { + // 关键修改:获取该元素的子内容(innerHTML 本身就是内部HTML,不含当前元素标签) + // 若想更彻底,可遍历子节点拼接内容(兼容特殊场景) + let contentHtml = ''; + Array.from(currentMackContent.childNodes).forEach(child => { + // 只保留元素节点和文本节点(过滤空节点) + if (child.nodeType === 1 || child.nodeType === 3) { + contentHtml += child.outerHTML || child.textContent; + } + }); + // 显示蒙版并传入纯净的子内容 + showMask(contentHtml); + } + }); }); -}); // 关闭按钮事件 closeBtn.addEventListener('click', hideMask); // 点击蒙版背景关闭(可选) @@ -463,8 +465,9 @@ productRights.forEach((rightContainer) => { const img = rightContainer.querySelector('.right-img'); const video = rightContainer.querySelector('.right-video'); + const videoSrc = video.src.trim() if (!img || !video) return; - + if(!videoSrc) return; const rect = rightContainer.getBoundingClientRect(); // 视口判断:容器进入视口50%以上视为活跃 const isInView = diff --git a/public/static/index/mobile/css/topic_power_prodline/advantage.css b/public/static/index/mobile/css/topic_power_prodline/advantage.css index 36ea9c81..79274690 100644 --- a/public/static/index/mobile/css/topic_power_prodline/advantage.css +++ b/public/static/index/mobile/css/topic_power_prodline/advantage.css @@ -1,229 +1,231 @@ -/* 核心模块:固定90%宽度(PC端),优化移动端边距 */ -.advantage-section { - width: 90%; - margin: 0 auto; - padding: 4rem 0 3rem 0; - position: relative; - z-index: 1; -} - -/* 标题容器:恢复原有居中样式 */ -.advantage-section__title { - font-size: clamp(1.5rem, 3vw, 2rem); - font-weight: 700; - text-align: center; - color: #333; - line-height: 1.2; - margin-bottom: clamp(1.5rem, 2vw, 2.5rem); -} - -/* 列表容器:优化gap,确保移动端5列不溢出 */ -.advantage-section__list { - display: flex; - justify-content: center; - align-items: flex-start; - gap: clamp(0.1rem, 0.3vw, 0.8rem); - width: 100%; - flex-wrap: nowrap; - overflow: hidden; - padding: 0 0.1rem; -} - -/* 卡片核心:优化宽高比和尺寸计算 */ -.advantage-card { - flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); - min-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); - max-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); - border-radius: 0.5rem; - overflow: hidden; - box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1); - transition: transform 0.3s ease; - cursor: pointer; - background: #fff; - position: relative; - z-index: 1; - aspect-ratio: 1 / 1.7; - /* PC端卡片高度略缩短,更紧凑 */ -} - -.advantage-card__img { - width: 100%; - height: 72%; - /* PC端图片占比提升至72%,文字区域压缩 */ - object-fit: cover; - background-color: #f9f9f9; - display: block; -} - -/* 文字区域:flex垂直分布,确保标题和描述都垂直居中 */ -.advantage-card__content { - width: 100%; - height: 28%; - /* PC端文字区域占比降至28% */ - padding: clamp(0.3rem, 0.4vw, 0.75rem); - display: flex; - flex-direction: column; - justify-content: center; - /* 整体垂直居中 */ - align-items: center; - /* 子元素水平居中(关键) */ - /* text-align: center; */ - flex-shrink: 0; - gap: 4px; - /* 标题和描述之间的垂直间距,避免贴边 */ -} - -/* 标题容器:水平居中+内部两端对齐,同时垂直居中 */ -.advantage-card__heading-wrap { - display: flex; - align-items: center; - /* 内部标题和箭头垂直对齐 */ - justify-content: space-between; - /* 文字左、箭头右 */ - gap: 8px; - width: 80%; - /* 限制宽度,体现居中效果 */ - /* 移除底部margin,通过父容器gap控制间距 */ -} - -/* 卡片标题:居左显示 */ -.advantage-card__heading { - font-size: clamp(0.85rem, 1.5vw, 1.4rem); - /* 比原尺寸放大,PC端更醒目,移动端自适应 */ - font-weight: 600; - color: #333; - line-height: 1.3; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -/* 卡片标题右侧箭头:居右显示 */ -.card-arrow { - color: #409eff; - - /* 箭头尺寸跟随标题放大,避免不协调 */ - transition: transform 0.3s ease; - display: inline-block; - width: 24px; - /* 箭头宽度同步增加 */ - text-align: center; -} - -/* 卡片hover时箭头动画 */ -.advantage-card:hover .card-arrow { - transform: translateX(3px); -} - -/* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */ -.advantage-card__description { - font-size: clamp(0.6rem, 0.9vw, 0.9rem); - /* PC端描述文字略放大 */ - color: #78787a; - line-height: 1.2; - /* PC端行高略紧凑 */ - white-space: normal; - overflow: hidden; - width: 80%; - /* 与标题容器宽度一致 */ - display: -webkit-box; - -webkit-line-clamp: 2; - /* 最多2行,避免高度溢出 */ - -webkit-box-orient: vertical; - /* 核心修复:固定最小高度=2行文字高度,确保1行时也占满空间 */ - min-height: calc(clamp(0.6rem, 0.9vw, 0.9rem) * 2 * 1.4); - /* 确保文字垂直居中 */ - display: flex; - align-items: center; - justify-content: left; -} - -/* 卡片hover效果 */ -.advantage-card:hover { - transform: scale(1.03); - /* z-index: 10; */ - /* box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15); */ -} - -/* 移动端适配 */ -@media (max-width: 767px) { - .advantage-card:active { - transform: scale(1.01); - } - - .advantage-section { - width: 95%; - /* 移动端扩大容器宽度 */ - } - - .advantage-section__list { - gap: 0.1rem; - } - - .advantage-card { - aspect-ratio: 1 / 1.8; - /* 移动端恢复更高的卡片高度 */ - } - - .advantage-card__img { - height: 62%; - /* 移动端图片占比回到62% */ - } - - .advantage-card__content { - height: 38%; - /* 移动端文字区域占比回到38% */ - padding: 0.2rem 0.15rem; - gap: 6px; - /* 移动端间距略大,易读性更好 */ - } - - /* 移动端标题容器宽度放宽 */ - .advantage-card__heading-wrap { - width: 90%; - } - - .advantage-card__description { - line-height: 1.2; - width: 90%; - -webkit-line-clamp: 2; - /* 移动端同步添加最小高度 */ - min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5); - } - - /* 移动端箭头和文字尺寸缩小 */ - .card-arrow { - font-size: clamp(0.45rem, 0.7vw, 0.8rem); - width: 10px; - } - - .advantage-card__heading { - font-size: clamp(0.6rem, 1vw, 1rem); - } - - .advantage-card__description { - font-size: clamp(0.5rem, 0.8vw, 0.8rem); - } -} - -/* 超小屏适配 */ -@media (max-width: 374px) { - .advantage-section { - width: 98%; - } - - .advantage-card__heading { - font-size: clamp(0.55rem, 0.9vw, 0.9rem); - } - - .advantage-card__heading-wrap { - width: 95%; - gap: 5px; - } - - .advantage-card__description { - width: 95%; - /* 超小屏保持最小高度 */ - min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5); - } -} +/* 核心模块:固定90%宽度(PC端),优化移动端边距 */ +.advantage-section { + width: 90%; + margin: 0 auto; + padding: 4rem 0 3rem 0; + position: relative; + z-index: 1; +} + +/* 标题容器:恢复原有居中样式 */ +.advantage-section__title { + font-size: clamp(1.5rem, 3vw, 2rem); + font-weight: 700; + text-align: center; + color: #333; + line-height: 1.2; + margin-bottom: clamp(1.5rem, 2vw, 2.5rem); +} + +/* 列表容器:优化gap,确保移动端5列不溢出 */ +.advantage-section__list { + display: flex; + justify-content: center; + align-items: flex-start; + gap: clamp(0.1rem, 0.3vw, 0.8rem); + width: 100%; + flex-wrap: nowrap; + overflow: hidden; + padding: 0 0.1rem; +} + +/* 卡片核心:优化宽高比和尺寸计算 */ +.advantage-card { + flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); + min-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); + max-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); + border-radius: 0.5rem; + overflow: hidden; + box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1); + transition: transform 0.3s ease; + cursor: pointer; + background: #fff; + position: relative; + z-index: 1; + aspect-ratio: 1 / 1.7; + /* PC端卡片高度略缩短,更紧凑 */ +} + +.advantage-card__img { + width: 100%; + height: 72%; + /* PC端图片占比提升至72%,文字区域压缩 */ + object-fit: cover; + background-color: #f9f9f9; + display: block; +} + +/* 文字区域:flex垂直分布,确保标题和描述都垂直居中 */ +.advantage-card__content { + width: 100%; + height: 28%; + /* PC端文字区域占比降至28% */ + padding: clamp(0.3rem, 0.4vw, 0.75rem); + display: flex; + flex-direction: column; + justify-content: center; + /* 整体垂直居中 */ + align-items: center; + /* 子元素水平居中(关键) */ + /* text-align: center; */ + flex-shrink: 0; + gap: 4px; + /* 标题和描述之间的垂直间距,避免贴边 */ +} + +/* 标题容器:水平居中+内部两端对齐,同时垂直居中 */ +.advantage-card__heading-wrap { + display: flex; + align-items: center; + /* 内部标题和箭头垂直对齐 */ + justify-content: space-between; + /* 文字左、箭头右 */ + gap: 8px; + width: 80%; + /* 限制宽度,体现居中效果 */ + /* 移除底部margin,通过父容器gap控制间距 */ +} + +/* 卡片标题:居左显示 */ +.advantage-card__heading { + font-size: clamp(0.85rem, 1.5vw, 1.4rem); + /* 比原尺寸放大,PC端更醒目,移动端自适应 */ + font-weight: 600; + color: #333; + line-height: 1.3; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +/* 卡片标题右侧箭头:居右显示 */ +.card-arrow { + color: #409eff; + + /* 箭头尺寸跟随标题放大,避免不协调 */ + transition: transform 0.3s ease; + display: inline-block; + width: 24px; + /* 箭头宽度同步增加 */ + text-align: center; +} + +/* 卡片hover时箭头动画 */ +.advantage-card:hover .card-arrow { + transform: translateX(3px); +} + +/* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */ +.advantage-card__description { + font-size: clamp(0.6rem, 0.9vw, 0.9rem); + /* PC端描述文字略放大 */ + color: #78787a; + line-height: 1.2; + /* PC端行高略紧凑 */ + white-space: normal; + overflow: hidden; + width: 80%; + /* 与标题容器宽度一致 */ + display: -webkit-box; + -webkit-line-clamp: 2; + /* 最多2行,避免高度溢出 */ + -webkit-box-orient: vertical; + /* 核心修复:固定最小高度=2行文字高度,确保1行时也占满空间 */ + min-height: calc(clamp(0.6rem, 0.9vw, 0.9rem) * 2 * 1.4); + /* 确保文字垂直居中 */ + display: flex; + align-items: center; + justify-content: left; +} + +/* 卡片hover效果 */ +.advantage-card:hover { + transform: scale(1.03); + /* z-index: 10; */ + /* box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15); */ +} + +/* 移动端适配 */ +@media (max-width: 767px) { + .advantage-card:active { + transform: scale(1.01); + } + + .advantage-section { + width: 95%; + /* 移动端扩大容器宽度 */ + } + + .advantage-section__list { + gap: 0.1rem; + } + + .advantage-card { + aspect-ratio: 1 / 1.8; + /* 移动端恢复更高的卡片高度 */ + } + + .advantage-card__img { + height: 62%; + /* 移动端图片占比回到62% */ + } + + .advantage-card__content { + height: 38%; + /* 移动端文字区域占比回到38% */ + padding: 0.2rem 0.15rem; + gap: 6px; + /* 移动端间距略大,易读性更好 */ + } + + /* 移动端标题容器宽度放宽 */ + .advantage-card__heading-wrap { + width: 90%; + } + + .advantage-card__description { + line-height: 1.2; + width: 90%; + -webkit-line-clamp: 2; + /* 移动端同步添加最小高度 */ + min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5); + display: flex; + align-items: flex-start; + } + + /* 移动端箭头和文字尺寸缩小 */ + .card-arrow { + font-size: clamp(0.45rem, 0.7vw, 0.8rem); + width: 10px; + } + + .advantage-card__heading { + font-size: clamp(0.6rem, 1vw, 1rem); + } + + .advantage-card__description { + font-size: clamp(0.5rem, 0.8vw, 0.8rem); + } +} + +/* 超小屏适配 */ +@media (max-width: 374px) { + .advantage-section { + width: 98%; + } + + .advantage-card__heading { + font-size: clamp(0.55rem, 0.9vw, 0.9rem); + } + + .advantage-card__heading-wrap { + width: 95%; + gap: 5px; + } + + .advantage-card__description { + width: 95%; + /* 超小屏保持最小高度 */ + min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5); + } +} diff --git a/public/static/index/mobile/css/topic_power_prodline/product_list.css b/public/static/index/mobile/css/topic_power_prodline/product_list.css index 7dbf8968..a630932a 100644 --- a/public/static/index/mobile/css/topic_power_prodline/product_list.css +++ b/public/static/index/mobile/css/topic_power_prodline/product_list.css @@ -1,246 +1,256 @@ -/* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */ -.product-card-box { - width: 90%; - margin: clamp(1rem, 2vw, 1.5rem) auto 0; - padding: 0; -} - -.product-card-container { - width: 100%; - margin: 0 auto; - display: flex; - flex-wrap: nowrap; - overflow: hidden; - padding: 0 clamp(0.2rem, 0.6vw, 0.3rem); -} - -/* ######################################################################### */ -/* 移动端样式(单独配置,max-width: 1023px)- 后续修改仅改这里 */ -/* ######################################################################### */ -@media (max-width: 1023px) { - /* 卡片容器:移动端特有 */ - .product-card-container { - align-items: stretch; - } - - /* 卡片核心:移动端固定宽高比 */ - .product-card { - background: rgb(242, 243, 245); - border-radius: clamp(0.375rem, 1vw, 0.5rem); - cursor: pointer; - width: calc(25% - clamp(0.3rem, 0.5vw, 0.36rem)); - flex: none; - box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) - clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); - margin: 0 clamp(0.16rem, 0.24vw, 0.2rem); - display: flex; - flex-direction: column; - aspect-ratio: 3 / 4.2; - /* 移动端固定宽高比 */ - } - - /* 卡片hover效果:移动端特有 */ - .product-card:hover { - transform: scale(clamp(1.01, 1.02, 1.03)); - transition: transform 0.3s ease; - } - - /* 图片容器:移动端固定占比 */ - .product-card-img { - display: flex; - justify-content: center; - align-items: center; - width: 100%; - flex: 0 0 72%; - /* 移动端图片区占比 */ - margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem); - overflow: hidden; - border-radius: clamp(0.2rem, 0.4vw, 0.25rem); - } - - /* 产品图片:移动端特有 */ - .product-card img { - width: 100%; - height: 100%; - object-fit: contain; - object-position: center; - } - - /* 文字容器:移动端固定占比 */ - .product-card-text { - flex: 0 0 20%; - /* 移动端文字区占比 */ - display: flex; - flex-direction: column; - justify-content: center; - padding-left: clamp(0.8rem, 2vw, 1.5rem); - padding-right: clamp(0.8rem, 2vw, 1.5rem); - } - - /* 标题样式:移动端特有 */ - .product-card-title { - font-size: clamp(0.8rem, 1.3vw, 1.2rem); - font-weight: 600; - color: #333; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - height: 35%; - /* 移动端标题固定高度 */ - line-height: 1.2; - } - - /* 描述样式:移动端固定2行高度 */ - .product-card-desc { - font-size: clamp(0.7rem, 1.1vw, 0.9rem); - color: #656565; - word-break: break-word; - height: 65%; - /* 移动端描述固定高度(2行) */ - overflow: hidden; - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - line-height: 1.4; - } - - /* 链接图标容器:移动端固定占比 */ - .product-card-link { - width: 100%; - display: flex; - align-items: center; - flex: 0 0 10%; - /* 移动端链接区占比 */ - padding: clamp(0.8rem, 2vw, 1.5rem); - } - - /* 链接图标:移动端特有 */ - .product-card-link img { - width: clamp(2.5rem, 5vw, 4.5rem); - height: auto; - object-fit: contain; - } - - /* 移动端768px以上补充样式 */ - @media (min-width: 768px) and (max-width: 1023px) { - .product-card-img { - flex: 0 0 72%; - } - - .product-card-link img { - width: clamp(5rem, 4vw, 6rem); - } - } -} - -/* ######################################################################### */ -/* PC端样式(单独配置,min-width: 1024px)- 后续修改仅改这里 */ -/* ######################################################################### */ -@media (min-width: 1024px) { - /* 卡片容器:PC端特有(高度自适应) */ - .product-card-container { - align-items: stretch; - height: clamp(30vw, 35vw, 480px); - /* PC端容器高度自适应 */ - } - - /* 卡片核心:PC端高度自适应 */ - .product-card { - background: rgb(242, 243, 245); - border-radius: clamp(0.375rem, 1vw, 0.5rem); - cursor: pointer; - width: calc(25% - clamp(0.3rem, 0.5vw, 0.36rem)); - flex: none; - box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) - clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); - margin: 0 clamp(0.16rem, 0.24vw, 0.2rem); - display: flex; - flex-direction: column; - height: 100%; - /* PC端卡片高度继承父容器 */ - } - - /* 卡片hover效果:PC端特有 */ - .product-card:hover { - transform: scale(clamp(1.01, 1.02, 1.03)); - transition: transform 0.3s ease; - } - - /* 图片容器:PC端固定占比 */ - .product-card-img { - display: flex; - justify-content: center; - align-items: center; - width: 100%; - flex: 0 0 72%; - /* PC端图片区占比 */ - margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem); - overflow: hidden; - border-radius: clamp(0.2rem, 0.4vw, 0.25rem); - } - - /* 产品图片:PC端特有 */ - .product-card img { - width: 100%; - height: 100%; - object-fit: contain; - object-position: center; - } - - /* 文字容器:PC端固定占比 */ - .product-card-text { - flex: 0 0 15%; - /* PC端文字区占比 */ - /* display: flex; */ - flex-direction: column; - justify-content: center; - padding-left: clamp(0.8rem, 2vw, 1.5rem); - padding-right: clamp(0.8rem, 2vw, 1.5rem); - } - - /* 标题样式:PC端特有 */ - .product-card-title { - font-size: clamp(0.8rem, 1.3vw, 1.2rem); - font-weight: 600; - color: #333; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - /* height: 35%; */ - /* PC端标题固定高度 */ - line-height: 1.2; - display: flex; - align-items: center; - } - - /* 描述样式:PC端固定2行高度 */ - .product-card-desc { - font-size: clamp(0.7rem, 1.1vw, 0.9rem); - color: #656565; - word-break: break-word; - /* height: 65%; */ - /* PC端描述固定高度(2行) */ - overflow: hidden; - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - line-height: 1.4; - } - - /* 链接图标容器:PC端固定占比 */ - .product-card-link { - width: 100%; - /* display: flex; */ - /* align-items: center; */ - flex: 0 0 12%; - /* PC端链接区占比 */ - padding-left: clamp(0.8rem, 2vw, 1.5rem); - } - - /* 链接图标:PC端特有 */ - .product-card-link img { - width: clamp(2.5rem, 5vw, 4.5rem); - height: auto; - object-fit: contain; - } -} +/* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */ +.product-card-box { + width: 90%; + margin: clamp(1rem, 2vw, 1.5rem) auto 0; + padding: 0; +} + +.product-card-container { + width: 100%; + margin: 0 auto; + display: flex; + flex-wrap: nowrap; + overflow: hidden; + padding: 0 clamp(0.2rem, 0.6vw, 0.3rem); +} + +/* ######################################################################### */ +/* 移动端样式(单独配置,max-width: 1023px)- 后续修改仅改这里 */ +/* ######################################################################### */ +@media (max-width: 1023px) { + /* 卡片容器:移动端特有 */ + .product-card-container { + align-items: stretch; + } + + /* 卡片核心:移动端固定宽高比 */ + .product-card { + background: rgb(242, 243, 245); + border-radius: clamp(0.375rem, 1vw, 0.5rem); + cursor: pointer; + width: calc(25% - clamp(0.3rem, 0.5vw, 0.36rem)); + flex: none; + box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) + clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); + margin: 0 clamp(0.16rem, 0.24vw, 0.2rem); + display: flex; + flex-direction: column; + aspect-ratio: 3 / 4.2; + /* 移动端固定宽高比 */ + } + + /* 卡片hover效果:移动端特有 */ + .product-card:hover { + transform: scale(clamp(1.01, 1.02, 1.03)); + transition: transform 0.3s ease; + } + + /* 图片容器:用视口单位固定高度,彻底不受图片影响 */ + .product-card-img { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + /* 关键:用vw固定高度,基于屏幕宽度计算,和图片本身尺寸无关 */ + height: clamp(8rem, 28vw, 12rem); /* 移动端适配:小屏8rem,大屏12rem,中间按28vw缩放 */ + margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem); + overflow: hidden; + border-radius: clamp(0.2rem, 0.4vw, 0.25rem); + } + /* 产品图片:强制填充容器,消除尺寸差异 */ + .product-card img { + width: 100%; + height: 100%; + object-fit: contain; /* 保留完整图片(如果需要裁剪用cover) */ + object-position: center; + /* 强制图片适应容器,不管原图尺寸 */ + min-width: 80%; /* 防止图片过窄(可选,根据需求调整) */ + max-width: 100%; + } + + /* 文字容器:移动端固定占比 */ + /*.product-card-text {*/ + /* flex: 0 0 20%;*/ + /* 移动端文字区占比 */ + /* display: flex;*/ + /* flex-direction: column;*/ + /* justify-content: center;*/ + /* padding-left: clamp(0.8rem, 2vw, 1.5rem);*/ + /* padding-right: clamp(0.8rem, 2vw, 1.5rem);*/ + /*}*/ + .product-card-text { + width: 100%; + /* 用vw固定文字区域高度,和图片容器高度解耦 */ + height: clamp(3rem, 10vw, 4.5rem); /* 小屏3rem,大屏4.5rem,中间按10vw缩放 */ + display: flex; + flex-direction: column; + justify-content: flex-start; + overflow: hidden; /* 防止文字溢出 */ + padding-left: clamp(0.8rem, 2vw, 1.5rem); + padding-right: clamp(0.8rem, 2vw, 1.5rem); + } + /* 标题样式:移动端特有 */ + .product-card-title { + font-size: clamp(0.75rem, 1.2vw, 0.875rem); + color: #333; + margin-bottom: clamp(0.2rem, 0.3vw, 0.25rem); + /* 最多2行,溢出省略(避免文字过多挤压) */ + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + /* 描述样式:移动端固定2行高度 */ + .product-card-desc { + font-size: clamp(0.7rem, 1.1vw, 0.9rem); + color: #656565; + word-break: break-word; + height: 65%; + /* 移动端描述固定高度(2行) */ + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + line-height: 1.4; + } + + /* 链接图标容器:移动端固定占比 */ + .product-card-link { + width: 100%; + display: flex; + align-items: center; + flex: 0 0 10%; + /* 移动端链接区占比 */ + padding: clamp(0.8rem, 2vw, 1.5rem); + } + + /* 链接图标:移动端特有 */ + .product-card-link img { + width: clamp(2.5rem, 5vw, 4.5rem); + height: auto; + object-fit: contain; + } + + /* 移动端768px以上补充样式 */ + @media (min-width: 768px) and (max-width: 1023px) { + .product-card-img { + flex: 0 0 72%; + } + + .product-card-link img { + width: clamp(5rem, 4vw, 6rem); + } + } +} + +/* ######################################################################### */ +/* PC端样式(单独配置,min-width: 1024px)- 后续修改仅改这里 */ +/* ######################################################################### */ +@media (min-width: 1024px) { + /* 卡片容器:PC端特有(高度自适应) */ + .product-card-container { + align-items: stretch; + height: clamp(30vw, 35vw, 480px); + /* PC端容器高度自适应 */ + } + + /* 卡片核心:PC端高度自适应 */ + .product-card { + background: rgb(242, 243, 245); + border-radius: clamp(0.375rem, 1vw, 0.5rem); + cursor: pointer; + width: calc(25% - clamp(0.3rem, 0.5vw, 0.36rem)); + flex: none; + box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) + clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); + margin: 0 clamp(0.16rem, 0.24vw, 0.2rem); + display: flex; + flex-direction: column; + height: 100%; + /* PC端卡片高度继承父容器 */ + } + + /* 卡片hover效果:PC端特有 */ + .product-card:hover { + transform: scale(clamp(1.01, 1.02, 1.03)); + transition: transform 0.3s ease; + } + + /* 图片容器:PC端固定占比 */ + .product-card-img { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + flex: 0 0 72%; + /* PC端图片区占比 */ + margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem); + overflow: hidden; + border-radius: clamp(0.2rem, 0.4vw, 0.25rem); + } + + /* 产品图片:PC端特有 */ + .product-card img { + width: 100%; + height: 100%; + object-fit: contain; + object-position: center; + } + + /* 文字容器:PC端固定占比 */ + .product-card-text { + flex: 0 0 15%; + /* PC端文字区占比 */ + /* display: flex; */ + flex-direction: column; + justify-content: center; + padding-left: clamp(0.8rem, 2vw, 1.5rem); + padding-right: clamp(0.8rem, 2vw, 1.5rem); + } + + /* 标题样式:PC端特有 */ + .product-card-title { + font-size: clamp(0.8rem, 1.3vw, 1.2rem); + font-weight: 600; + color: #333; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + /* height: 35%; */ + /* PC端标题固定高度 */ + line-height: 1.2; + display: flex; + align-items: center; + } + + /* 描述样式:PC端固定2行高度 */ + .product-card-desc { + font-size: clamp(0.7rem, 1.1vw, 0.9rem); + color: #656565; + word-break: break-word; + /* height: 65%; */ + /* PC端描述固定高度(2行) */ + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + line-height: 1.4; + } + + /* 链接图标容器:PC端固定占比 */ + .product-card-link { + width: 100%; + /* display: flex; */ + /* align-items: center; */ + flex: 0 0 12%; + /* PC端链接区占比 */ + padding-left: clamp(0.8rem, 2vw, 1.5rem); + } + + /* 链接图标:PC端特有 */ + .product-card-link img { + width: clamp(2.5rem, 5vw, 4.5rem); + height: auto; + object-fit: contain; + } +} diff --git a/public/static/index/mobile/images/jiant.png b/public/static/index/mobile/images/jiant.png new file mode 100644 index 00000000..ef08f043 Binary files /dev/null and b/public/static/index/mobile/images/jiant.png differ diff --git a/public/static/index/mobile/images/ljgd.png b/public/static/index/mobile/images/ljgd.png new file mode 100644 index 00000000..b55297de Binary files /dev/null and b/public/static/index/mobile/images/ljgd.png differ diff --git a/public/static/index/pc/css/topic_power_prodline/index.css b/public/static/index/pc/css/topic_power_prodline/index.css index f812eb17..b3e9ad8d 100644 --- a/public/static/index/pc/css/topic_power_prodline/index.css +++ b/public/static/index/pc/css/topic_power_prodline/index.css @@ -1,73 +1,73 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -/* 1. 根字体适配:限制最小根字体为14px,从源头避免文字过小 */ -html { - /* PC端(≥1024px):1rem=16px(原尺寸) */ - font-size: 16px; -} - -/* 平板端(768px~1023px):15px→16px(过渡,最小15px) */ -@media (max-width: 1023px) and (min-width: 768px) { - html { - font-size: calc(15px + (16 - 15) * (100vw - 768px) / (1023 - 768)); - } -} - -/* 移动端(320px~767px):固定14px(不随屏幕缩小而变小,避免文字<12px) */ -@media (max-width: 767px) { - html { - font-size: 14px; - } -} - -/* 超小屏(≤320px):仍固定14px,彻底杜绝文字过小 */ -@media (max-width: 320px) { - html { - font-size: 14px; - } -} -body { - background: rgb(242, 243, 245); -} -a { - text-decoration: none; - display: block; -} -.more { - width: 90%; - margin: 0 auto; - display: flex; - justify-content: flex-end; - padding-top: clamp(1.5rem, 3vw, 3rem); -} -.more-img { - background: #000; - color: #fff; - font-size: clamp(0.6rem, 0.9vw, 0.9rem); - border-radius: clamp(0.875rem, 1.5vw, 1.125rem); - padding: clamp(0.1rem, 0.3vw, 0.2rem); - width: 5rem; - display: flex; - justify-content: center; -} - -.line { - width: 100%; - height: clamp(1.5rem, 3vw, 3rem); -} -.header { - width: 100%; - background: #fff; -} -.header-img { - margin: 0 auto; - width: 90%; - display: flex; - align-items: center; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +/* 1. 根字体适配:限制最小根字体为14px,从源头避免文字过小 */ +html { + /* PC端(≥1024px):1rem=16px(原尺寸) */ + font-size: 16px; +} + +/* 平板端(768px~1023px):15px→16px(过渡,最小15px) */ +@media (max-width: 1023px) and (min-width: 768px) { + html { + font-size: calc(15px + (16 - 15) * (100vw - 768px) / (1023 - 768)); + } +} + +/* 移动端(320px~767px):固定14px(不随屏幕缩小而变小,避免文字<12px) */ +@media (max-width: 767px) { + html { + font-size: 14px; + } +} + +/* 超小屏(≤320px):仍固定14px,彻底杜绝文字过小 */ +@media (max-width: 320px) { + html { + font-size: 14px; + } +} +body { + background: rgb(242, 243, 245); +} +a { + text-decoration: none; + display: block; +} +.more { + width: 90%; + margin: 0 auto; + display: flex; + justify-content: flex-end; + padding-top: clamp(1.5rem, 3vw, 3rem); +} +.more-img { + background: #000; + color: #fff; + font-size: clamp(0.6rem, 0.9vw, 0.9rem); + border-radius: clamp(0.875rem, 1.5vw, 1.125rem); + padding: clamp(0.1rem, 0.3vw, 0.2rem); + width: 5rem; + display: flex; + justify-content: center; +} + +.line { + width: 100%; + height: clamp(2.5rem, 5vw, 15rem); +} +.header { + width: 100%; + background: #fff; +} +.header-img { + margin: 0 auto; + width: 90%; + display: flex; + align-items: center; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} diff --git a/public/static/index/pc/css/topic_power_prodline/product.css b/public/static/index/pc/css/topic_power_prodline/product.css index 29be5ee3..6a9ea497 100644 --- a/public/static/index/pc/css/topic_power_prodline/product.css +++ b/public/static/index/pc/css/topic_power_prodline/product.css @@ -1,147 +1,151 @@ -.product-box { - background: #fff; - padding: clamp(1.5rem, 3vw, 3rem) 0; - /* 产品块之间留间距 */ -} - -.product-title { - width: 90%; - margin: 0 auto; - padding-bottom: clamp(1.5rem, 3vw, 3rem); -} - -.product-title-h2 { - font-size: clamp(1.5rem, 3vw, 2.25rem); - /* padding-top: clamp(1.5rem, 3vw, 3rem); */ -} - -.product-title-p { - font-size: clamp(0.875rem, 1.5vw, 1.125rem); - color: #646464; - margin-top: clamp(0.5rem, 1vw, 0.75rem); -} - -/* 容器布局:两个产品通用 */ -.product-container { - display: flex; - gap: clamp(0.4rem, 1vw, 0.71rem); - margin: 0 auto; - width: 90%; - align-items: flex-start; -} - -/* 左侧容器:两个产品通用 */ -.product-left { - flex: 1.8; - position: relative; - width: 100%; -} - -.product-img { - width: 100%; - height: auto; - border-radius: 10px; - display: block; - /* 取消图片底部空隙 */ -} - -/* 悬浮图公共样式:两个产品尺寸完全一致(100%宽度) */ -.product-img-hover { - position: absolute; - width: 100%; - /* 两个产品悬浮图宽度相同 */ - z-index: 1; -} - -.product-img-hover img { - width: 100%; - /* 图片尺寸100%,无区别 */ - height: auto; - /* max-height: 70%; */ - border-radius: 10px; -} - -/* 第一个产品:悬浮图居中上移(仅定位差异) */ -.product-img-1 { - top: -10%; - left: 50%; - transform: translateX(-50%); -} - -/* 第二个产品:悬浮图上右超出(仅定位差异) */ -.product-img-2 { - top: -10%; - /* 上超出 */ - transform: none; - width: 108%; - /* 取消居中 */ -} - -/* 右侧容器:两个产品通用 */ -.product-right { - flex: 3.2; - position: relative; - border-radius: 10px; - overflow: hidden; - width: 100%; - background-color: #f5f5f5; - align-self: stretch; -} - -.right-content { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: cover; - transition: opacity 0.3s ease; -} - -.right-video { - display: none; -} - -/* PC端适配:仅微调定位参数,尺寸不变 */ -@media (min-width: 1024px) { - .product-container { - width: 90%; - } - - .product-left { - flex: 2; - } - - .product-right { - flex: 5; - } - - /* 宽度保持一致,仅调定位偏移 */ - .product-img-1 { - top: -11%; - } - - .product-img-2 { - top: -12%; - } -} - -/* 超小屏适配:尺寸不变,微调定位 */ -@media (max-width: 375px) { - .product-left { - flex: 1.5; - } - - .product-right { - flex: 3.5; - } - - /* 宽度仍保持一致 */ - .product-img-1 { - top: -6%; - } - - .product-img-2 { - top: -8%; - } -} +.product-box { + background: #fff; + padding: clamp(1.5rem, 3vw, 3rem) 0; + /* 产品块之间留间距 */ +} + +.product-title { + width: 90%; + margin: 0 auto; + padding-bottom: clamp(1.5rem, 3vw, 3rem); +} + +.product-title-h2 { + font-size: clamp(1.5rem, 3vw, 2.25rem); + /* padding-top: clamp(1.5rem, 3vw, 3rem); */ +} + +.product-title-p { + font-size: clamp(0.875rem, 1.5vw, 1.125rem); + color: #646464; + margin-top: clamp(0.5rem, 1vw, 0.75rem); +} + +/* 容器布局:两个产品通用 */ +.product-container { + display: flex; + gap: clamp(0.4rem, 1vw, 0.71rem); + margin: 0 auto; + width: 90%; + align-items: flex-start; +} + +/* 左侧容器:两个产品通用 */ +.product-left { + flex: 1.8; + position: relative; + width: 100%; +} + +.product-img { + width: 100%; + height: auto; + border-radius: 10px; + display: block; + /* 取消图片底部空隙 */ +} + +/* 悬浮图公共样式:两个产品尺寸完全一致(100%宽度) */ +.product-img-hover { + position: absolute; + width: 100%; + /* 两个产品悬浮图宽度相同 */ + z-index: 1; +} + +.product-img-hover img { + width: 100%; + /*max-width: 340px;*/ + /* 图片尺寸100%,无区别 */ + height: auto; + /* max-height: 70%; */ + border-radius: 10px; +} + + + + +/* 第一个产品:悬浮图居中上移(仅定位差异) */ +.product-img-1 { + top: -10%; + left: 50%; + transform: translateX(-50%); +} + +/* 第二个产品:悬浮图上右超出(仅定位差异) */ +.product-img-2 { + top: -10%; + /* 上超出 */ + transform: none; + width: 108%; + /* 取消居中 */ +} + +/* 右侧容器:两个产品通用 */ +.product-right { + flex: 3.2; + position: relative; + border-radius: 10px; + overflow: hidden; + width: 100%; + background-color: #f5f5f5; + align-self: stretch; +} + +.right-content { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + transition: opacity 0.3s ease; +} + +.right-video { + display: none; +} + +/* PC端适配:仅微调定位参数,尺寸不变 */ +@media (min-width: 1024px) { + .product-container { + width: 90%; + } + + .product-left { + flex: 2; + } + + .product-right { + flex: 5; + } + + /* 宽度保持一致,仅调定位偏移 */ + .product-img-1 { + top: -11%; + } + + .product-img-2 { + top: -12%; + } +} + +/* 超小屏适配:尺寸不变,微调定位 */ +@media (max-width: 375px) { + .product-left { + flex: 1.5; + } + + .product-right { + flex: 3.5; + } + + /* 宽度仍保持一致 */ + .product-img-1 { + top: -6%; + } + + .product-img-2 { + top: -8%; + } +} diff --git a/public/static/index/pc/images/jiant.png b/public/static/index/pc/images/jiant.png new file mode 100644 index 00000000..ef08f043 Binary files /dev/null and b/public/static/index/pc/images/jiant.png differ diff --git a/public/static/index/pc/images/ljgd.png b/public/static/index/pc/images/ljgd.png new file mode 100644 index 00000000..b55297de Binary files /dev/null and b/public/static/index/pc/images/ljgd.png differ