From c8d56618566239d91d85ddc4cb687df8a1fdce1f Mon Sep 17 00:00:00 2001 From: liqian <735273025@qq.com> Date: Thu, 27 Nov 2025 18:38:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=BA=E5=AF=B8=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/topic_power_prodline/index.html | 287 +++++++++++---- .../view/pc/topic_power_prodline/index.html | 6 +- .../css/topic_power_prodline/advantage.css | 254 +------------ .../css/topic_power_prodline/product.css | 342 ++++++++++++------ .../css/topic_power_prodline/product_list.css | 104 +++--- .../pc/css/topic_power_prodline/advantage.css | 36 +- .../pc/css/topic_power_prodline/index.css | 3 +- .../index/pc/css/topic_power_prodline/nav.css | 67 ++-- .../pc/css/topic_power_prodline/product.css | 28 +- .../css/topic_power_prodline/product_card.css | 32 +- .../css/topic_power_prodline/product_list.css | 51 ++- 11 files changed, 635 insertions(+), 575 deletions(-) diff --git a/app/index/view/mobile/topic_power_prodline/index.html b/app/index/view/mobile/topic_power_prodline/index.html index 8e00ab89..72b1e0f2 100644 --- a/app/index/view/mobile/topic_power_prodline/index.html +++ b/app/index/view/mobile/topic_power_prodline/index.html @@ -1,5 +1,8 @@ {extend name="public/base" /} {block name="style"} + + + @@ -9,6 +12,7 @@ + {/block} {block name="header"} @@ -92,9 +96,25 @@ {notempty name="tc_first_section_lr"}
{$tc_first_section_lr.title} -
{/notempty} @@ -142,7 +162,7 @@
{assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /} {notempty name="hc_first_section_lf"} - + {$hc_first_section_lf.title}
@@ -154,9 +174,25 @@ {notempty name="hc_first_section_lr"}
{$hc_first_section_lr.title} -
{/notempty}
@@ -165,7 +201,7 @@
{volist name="hc_second_section" id="hcs"} - + @@ -380,8 +465,7 @@ maskContent.appendChild(scrollContent); } - - function createCloseBtn() { + function createCloseBtn() { if (closeBtnHtml) { closeBtnHtml.remove(); } @@ -484,71 +568,136 @@ }, { passive: false } ); // passive: false 必须,否则 preventDefault 无效 + + document.addEventListener('DOMContentLoaded', () => { + // 初始化所有视频容器 + function initVideoContainers() { + const productRights = document.querySelectorAll('.product-right'); - const allVideos = document.querySelectorAll('.right-video'); - let scrollTimer = null; // 防抖定时器 - // 停止所有视频播放 - function stopAllVideos() { - allVideos.forEach((video) => { - video.pause(); - video.style.display = 'none'; - // 显示对应图片 - const img = video.parentElement.querySelector('.right-img'); - if (img) img.style.display = 'block'; - }); - } - // 处理视频/图片切换的核心逻辑(抽离为独立函数) -// 处理视频/图片切换的核心逻辑(抽离为独立函数) -function handleVideoActive() { - const productRights = document.querySelectorAll('.product-right'); - let activeVideo = null; - // 找出当前在视口中的视频容器 - productRights.forEach((rightContainer) => { - const img = rightContainer.querySelector('.right-img'); - const video = rightContainer.querySelector('.right-video'); - const videoSrc = video.src.trim(); - if (!img || !video || !videoSrc) return; + productRights.forEach((container, index) => { + const video = container.querySelector('.right-video'); + const btn = container.querySelector('.video-play-btn'); + const img = container.querySelector('.right-img'); + if (!video || !btn || !img) return; + const videoSrc = video.src.trim() + // 修复:正确检测有效视频地址 + // 排除空字符串、null、undefined + const hasValidVideo = !!videoSrc && videoSrc.trim() !== '' && videoSrc !== 'undefined' && videoSrc !== 'null'; - const rect = rightContainer.getBoundingClientRect(); - // 视口判断:容器进入视口50%以上视为活跃 - const isInView = - rect.top < window.innerHeight * 0.7 && - rect.bottom > window.innerHeight * 0.3; - - if (isInView) { - activeVideo = video; - } - }); - - // 处理活跃视频 - if (activeVideo) { - stopAllVideos(); // 先停止其他视频 - const img = activeVideo.parentElement.querySelector('.right-img'); - img.style.display = 'none'; - activeVideo.style.display = 'block'; - - // 自动播放(兼容原生控制栏,用户手动暂停后不会强制播放) - if (activeVideo.paused) { - activeVideo.play().catch((err) => { - console.log('视频播放失败(浏览器限制):', err); - // 播放失败时回退到图片 - activeVideo.style.display = 'none'; + // 初始化状态:无视频则保持图片显示,永不切换 + if (!hasValidVideo) { img.style.display = 'block'; + video.style.display = 'none'; + btn.style.display = 'none'; + // 绑定空方法,防止调用报错 + video.switchMedia = function() {}; + console.log(`容器${index}:无有效视频(src="${videoSrc}"),保持图片显示`); + return; + } + + // 有有效视频的情况 + console.log(`容器${index}:有有效视频(src="${videoSrc}"),初始化播放逻辑`); + + // 初始状态 + video.style.display = 'none'; + video.pause(); + img.style.display = 'block'; + btn.style.display = 'none'; + btn.style.opacity = '0'; + + // 同步状态函数 + function syncMediaState() { + if (img.style.display === 'block') { + btn.style.display = 'none'; + btn.style.opacity = '0'; + } else { + btn.style.display = 'block'; + btn.style.opacity = '1'; + btn.classList.toggle('paused', !video.paused && !video.ended); + } + } + + // 按钮点击事件 + btn.addEventListener('click', () => { + if (video.paused) { + video.play().catch(() => syncMediaState()); + } else { + video.pause(); + } + syncMediaState(); }); - } - } else { - stopAllVideos(); // 无活跃视频时停止所有播放 + + // 视频事件监听 + ['play', 'pause', 'ended', 'playing', 'waiting'].forEach(event => { + video.addEventListener(event, syncMediaState); + }); + + // 滚动切换函数 + video.switchMedia = function(showVideo) { + // 只处理有有效视频的情况 + if (showVideo) { + img.style.display = 'none'; + video.style.display = 'block'; + video.play().catch(() => { + console.log(`容器${index}:自动播放失败,需要用户交互`); + syncMediaState(); + }); + } else { + video.pause(); + img.style.display = 'block'; + video.style.display = 'none'; + } + syncMediaState(); + }; + + // 初始同步 + syncMediaState(); + }); } -} - // 滚动事件:添加防抖(移动端推荐100-200ms延迟) -window.addEventListener('scroll', function () { - // 清除上一次的定时器 - clearTimeout(scrollTimer); - // 滚动停止后150ms再执行核心逻辑 - scrollTimer = setTimeout(handleVideoActive, 150); -}); + + // 滚动监听 - 优化版 + function setupScrollWatcher() { + let ticking = false; + + function updateVideoVisibility() { + const productRights = document.querySelectorAll('.product-right'); + + productRights.forEach(container => { + const video = container.querySelector('.right-video'); + if (!video || !video.switchMedia) return; + + // 检查是否在视口中 + const rect = container.getBoundingClientRect(); + const viewHeight = window.innerHeight || document.documentElement.clientHeight; + const isInView = rect.top < viewHeight * 0.7 && rect.bottom > viewHeight * 0.3; + + // 只对有有效视频的元素调用switchMedia + video.switchMedia(isInView); + }); + + ticking = false; + } + + // 使用requestAnimationFrame优化性能 + window.addEventListener('scroll', () => { + if (!ticking) { + requestAnimationFrame(updateVideoVisibility); + ticking = true; + } + }); + } + + // 初始化 + initVideoContainers(); + setupScrollWatcher(); - + // 初始检查一次 + setTimeout(() => { + const event = new Event('scroll'); + window.dispatchEvent(event); + }, 300); +}); + window.onload = function () { if (typeof Swiper === 'undefined') { console.error('Swiper加载失败,请刷新页面重试'); diff --git a/app/index/view/pc/topic_power_prodline/index.html b/app/index/view/pc/topic_power_prodline/index.html index 4d7bd28d..be02a4aa 100644 --- a/app/index/view/pc/topic_power_prodline/index.html +++ b/app/index/view/pc/topic_power_prodline/index.html @@ -142,7 +142,7 @@
{assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /} {notempty name="hc_first_section_lf"} - + {$hc_first_section_lf.title}
@@ -165,7 +165,7 @@
{volist name="hc_second_section" id="hcs"} - +
{$hcs.short_title} @@ -203,7 +203,7 @@
{assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /} {notempty name="dc_first_section_lf"} - + {$dc_first_section_lf.short_title}
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 67dbfd1e..e6fd0b14 100644 --- a/public/static/index/mobile/css/topic_power_prodline/advantage.css +++ b/public/static/index/mobile/css/topic_power_prodline/advantage.css @@ -1,254 +1,6 @@ -/* 核心模块:固定90%宽度(PC端),优化移动端边距 */ -.advantage-section { - width: 90%; - margin: 0 auto; - padding: 2rem 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-wrap { - 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); /* 阴影移到外层,避免缩放时阴影变形 */ - position: relative; - z-index: 1; - aspect-ratio: 1 / 1.7; -} - -/* 卡片核心:优化宽高比和尺寸计算 */ -.advantage-card { - width: 100%; - height: 100%; - cursor: pointer; - background: #fff; - position: relative; - z-index: 1; - /* 关键修复:添加will-change优化渲染,移除原圆角和阴影(移到外层) */ - will-change: transform; /* 告知浏览器准备变换,避免圆角渲染异常 */ - transition: transform 0.3s ease; -} - -.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; - font-size: clamp(0.7rem, 1vw, 1rem); - /* 箭头尺寸跟随标题放大,避免不协调 */ - transition: transform 0.3s ease; - display: inline-block; - width: 16px; - /* 箭头宽度同步增加 */ - 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: #666; - 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; -} - -/* 外层容器hover时增强阴影(更自然的浮起效果) */ -.advantage-card-wrap:hover { - box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15); -} - -/* 移动端适配 - 核心修改:一行2个,显示2行,隐藏第5个 */ -@media (max-width: 767px) { - .advantage-card:active { - transform: scale(1.01); - } - - .advantage-section { - width: 95%; - /* 移动端扩大容器宽度 */ - } - - .advantage-section__list { - gap: 0.5rem; /* 优化间距,更美观 */ - flex-wrap: wrap; /* 允许换行 */ - overflow: visible; /* 取消溢出隐藏,显示多行 */ - justify-content: space-between; /* 两端对齐,确保2个卡片均匀分布 */ - } - - /* 移动端卡片宽度:一行2个 */ +/* iPad横屏特殊适配(可选) */ +@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) { .advantage-card-wrap { - flex: 0 0 calc(50% - 0.25rem); /* 50%宽度减去一半间距,避免溢出 */ - min-width: calc(50% - 0.25rem); - max-width: calc(50% - 0.25rem); - aspect-ratio: 1 / 1.8; - margin-bottom: 0.5rem; /* 行与行之间的间距 */ - } - - /* 隐藏第5个卡片 */ - .advantage-card-wrap:nth-child(5) { - display: none; - } - - .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); + aspect-ratio: 1 / 1.6; /* 横屏时调整卡片比例 */ } } \ No newline at end of file diff --git a/public/static/index/mobile/css/topic_power_prodline/product.css b/public/static/index/mobile/css/topic_power_prodline/product.css index 0ecd9e15..eca63b09 100644 --- a/public/static/index/mobile/css/topic_power_prodline/product.css +++ b/public/static/index/mobile/css/topic_power_prodline/product.css @@ -1,148 +1,266 @@ -.product-box { - background: #fff; - padding: clamp(1.5rem, 3vw, 3rem) 0; - /* 产品块之间留间距 */ +/* 核心模块:固定90%宽度(PC端),优化移动端边距 */ +.advantage-section { + width: 90%; + margin: 0 auto; + padding: 2rem 0; + position: relative; + z-index: 1; } -.product-title { - width: 90%; - margin: 0 auto; - padding-bottom: clamp(1.5rem, 3vw, 3rem); +/* 标题容器:恢复原有居中样式 */ +.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); } -.product-title-h2 { - font-size: clamp(1.5rem, 3vw, 2.25rem); - /* padding-top: clamp(1.5rem, 3vw, 3rem); */ +/* 列表容器:优化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; } -.product-title-p { - font-size: clamp(0.875rem, 1.5vw, 1.125rem); - color: #646464; - margin-top: clamp(0.5rem, 1vw, 0.75rem); +/* 新增:卡片外层容器(专门控制圆角,避免缩放时丢失) */ +.advantage-card-wrap { + 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); /* 阴影移到外层,避免缩放时阴影变形 */ + position: relative; + z-index: 1; + aspect-ratio: 1 / 1.7; } -/* 容器布局:两个产品通用 */ -.product-container { - display: flex; - gap: clamp(0.4rem, 1vw, 0.71rem); - margin: 0 auto; - width: 90%; - align-items: flex-start; +/* 卡片核心:优化宽高比和尺寸计算 */ +.advantage-card { + width: 100%; + height: 100%; + cursor: pointer; + background: #fff; + position: relative; + z-index: 1; + /* 关键修复:添加will-change优化渲染,移除原圆角和阴影(移到外层) */ + will-change: transform; /* 告知浏览器准备变换,避免圆角渲染异常 */ + transition: transform 0.3s ease; } -/* 左侧容器:两个产品通用 */ -.product-left { - flex: 1.8; - position: relative; - width: 100%; +.advantage-card__img { + width: 100%; + height: 72%; + /* PC端图片占比提升至72%,文字区域压缩 */ + object-fit: cover; + background-color: #f9f9f9; + display: block; } -.product-img { - width: 100%; - height: auto; - border-radius: 10px; - 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; + /* 标题和描述之间的垂直间距,避免贴边 */ } -/* 悬浮图公共样式:两个产品尺寸完全一致(100%宽度) */ -.product-img-hover { - position: absolute; - width: 100%; - /* 两个产品悬浮图宽度相同 */ - z-index: 1; +/* 标题容器:水平居中+内部两端对齐,同时垂直居中 */ +.advantage-card__heading-wrap { + display: flex; + align-items: center; + /* 内部标题和箭头垂直对齐 */ + justify-content: space-between; + /* 文字左、箭头右 */ + gap: 8px; + width: 80%; + /* 限制宽度,体现居中效果 */ + /* 移除底部margin,通过父容器gap控制间距 */ } -.product-img-hover img { - width: 100%; - /*max-width: 340px;*/ - /* 图片尺寸100%,无区别 */ - height: auto; - /* max-height: 70%; */ - border-radius: 10px; +/* 卡片标题:居左显示 */ +.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; } -/* 第一个产品:悬浮图居中上移(仅定位差异) */ -.product-img-1 { - top: -10%; - left: 50%; - transform: translateX(-50%); +/* 卡片标题右侧箭头:居右显示 */ +.card-arrow { + color: #409eff; + font-size: clamp(0.7rem, 1vw, 1rem); + /* 箭头尺寸跟随标题放大,避免不协调 */ + transition: transform 0.3s ease; + display: inline-block; + width: 16px; + /* 箭头宽度同步增加 */ + text-align: center; } -/* 第二个产品:悬浮图上右超出(仅定位差异) */ -.product-img-2 { - top: -10%; - /* 上超出 */ - transform: none; - width: 108%; - /* 取消居中 */ +/* 卡片hover时箭头动画 */ +.advantage-card:hover .card-arrow { + transform: translateX(3px); } -/* 右侧容器:两个产品通用 */ -.product-right { - flex: 3.2; - position: relative; - border-radius: 10px; - overflow: hidden; - width: 100%; - background-color: #f5f5f5; - align-self: stretch; +/* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */ +.advantage-card__description { + font-size: clamp(0.6rem, 0.9vw, 0.9rem); + /* PC端描述文字略放大 */ + color: #666; + 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; } -.right-content { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: cover; - transition: opacity 0.3s ease; +/* 卡片hover效果(仅保留缩放,阴影移到外层) */ +.advantage-card:hover { + transform: scale(1.03); + z-index: 10; } -.right-video { - display: none; +/* 外层容器hover时增强阴影(更自然的浮起效果) */ +.advantage-card-wrap:hover { + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15); } -/* PC端适配:仅微调定位参数,尺寸不变 */ -@media (min-width: 1024px) { - .product-container { - width: 90%; - } +/* 平板+移动端适配 - 核心修改:一行2个,显示2行,隐藏第5个 */ +@media (max-width: 1024px) { /* 平板断点调整为1024px */ + .advantage-card:active { + transform: scale(1.01); + } - .product-left { - flex: 2; - } + .advantage-section { + width: 95%; + /* 平板/移动端扩大容器宽度 */ + } - .product-right { - flex: 5; - } + .advantage-section__list { + gap: 0.5rem; /* 优化间距,更美观 */ + flex-wrap: wrap; /* 允许换行 */ + overflow: visible; /* 取消溢出隐藏,显示多行 */ + justify-content: space-between; /* 两端对齐,确保2个卡片均匀分布 */ + } - /* 宽度保持一致,仅调定位偏移 */ - .product-img-1 { - top: -11%; - } + /* 平板/移动端卡片宽度:一行2个 */ + .advantage-card-wrap { + flex: 0 0 calc(50% - 0.25rem); /* 50%宽度减去一半间距,避免溢出 */ + min-width: calc(50% - 0.25rem); + max-width: calc(50% - 0.25rem); + aspect-ratio: 1 / 1.8; + margin-bottom: 0.5rem; /* 行与行之间的间距 */ + } - .product-img-2 { - top: -12%; - } + /* 隐藏第5个卡片 */ + .advantage-card-wrap:nth-child(5) { + display: none; + } + + .advantage-card__img { + height: 62%; + /* 平板/移动端图片占比调整 */ + } + + .advantage-card__content { + height: 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(1rem, 1vw, 32rem); */ + font-size: 50px; + } + + .advantage-card__description { + font-size: 22px; + } } -/* 超小屏适配:尺寸不变,微调定位 */ -@media (max-width: 375px) { - .product-left { - flex: 1.5; - } +/* 移动端适配(小屏手机) */ +@media (max-width: 767px) { + .advantage-section { + width: 95%; + } - .product-right { - flex: 3.5; - } - - /* 宽度仍保持一致 */ - .product-img-1 { - top: -6%; - } - - .product-img-2 { - top: -8%; - } + .advantage-card__heading { + font-size: clamp(0.55rem, 1vw, 0.95rem); + } } + +/* 超小屏适配 */ +@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); + } +} \ No newline at end of file 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 e18841b6..2640d75d 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 @@ -9,23 +9,22 @@ width: 100%; margin: 0 auto; display: flex; - flex-wrap: nowrap; - overflow: hidden; - /* 关键修改1:增大间距值(原 clamp(0.3rem, 0.5vw, 0.36rem) → 现在放大2倍左右) */ + flex-wrap: wrap; /* 修改为可换行 */ + overflow: visible; /* 改为可见,显示所有内容 */ gap: clamp(0.6rem, 1vw, 0.8rem); - padding: 0; /* 保持无内边距,避免间距叠加 */ + padding: 0; } /* 新增:外层容器(承载圆角、阴影、尺寸,避免缩放时圆角丢失) */ .product-card-wrap { - /* 原卡片的宽度计算逻辑移到外层 */ width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4)); flex: none; - border-radius: clamp(0.375rem, 1vw, 0.5rem); /* 外层承载圆角 */ - overflow: hidden; /* 裁剪内层缩放的卡片 */ - box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); /* 外层承载阴影 */ + border-radius: clamp(0.375rem, 1vw, 0.5rem); + overflow: hidden; + box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); position: relative; z-index: 1; + margin-bottom: clamp(1rem, 2vw, 1.5rem); /* 添加底部间距 */ } /* ######################################################################### */ @@ -35,38 +34,39 @@ /* 卡片容器:移动端特有 */ .product-card-container { align-items: stretch; + justify-content: flex-start; /* 左对齐 */ } - /* 外层容器移动端适配:宽高比移到外层 */ + /* 外层容器移动端适配:一行2个 */ .product-card-wrap { + width: calc(50% - (clamp(0.6rem, 1vw, 0.8rem) * 1 / 2)); aspect-ratio: 3 / 4.2; } - /* 卡片核心:移动端调整(移除圆角、阴影,添加will-change) */ + /* 卡片核心:移动端调整 */ .product-card { background: rgb(242, 243, 245); cursor: pointer; - width: 100%; /* 内层卡片占满外层容器 */ + width: 100%; height: 100%; flex: none; - margin: 0; /* 保持无margin,间距由gap控制 */ + margin: 0; display: flex; flex-direction: column; - will-change: transform; /* 优化渲染,避免圆角异常 */ + will-change: transform; } - /* 卡片hover效果:移动端特有 */ + /* 卡片hover效果 */ .product-card:hover { transform: scale(clamp(1.01, 1.02, 1.03)); transition: transform 0.3s ease; } - /* 外层容器hover增强阴影(更自然的浮起效果) */ .product-card-wrap:hover { box-shadow: 0 clamp(0.2rem, 0.4vw, 0.25rem) clamp(0.5rem, 1vw, 0.8rem) rgba(0, 0, 0, 0.08); } - /* 图片容器:移动端固定占比 */ + /* 图片容器 */ .product-card-img { display: flex; justify-content: center; @@ -78,7 +78,7 @@ border-radius: clamp(0.2rem, 0.4vw, 0.25rem); } - /* 产品图片:移动端特有 */ + /* 产品图片 */ .product-card img { width: 100%; height: 100%; @@ -86,51 +86,51 @@ object-position: center; } - /* 文字容器:移动端固定占比 */ + /* 文字容器 */ .product-card-text { - flex: 0 0 20%; - display: flex; + /* flex: 0 0 20%; */ + /* display: flex; flex-direction: column; - justify-content: center; + 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-size:clamp(0.8rem, 1.3vw, 1.9rem); font-weight: 600; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - height: 35%; - line-height: 1.2; + /* height: 35%; */ + /* line-height: 1.2; */ } - /* 描述样式:移动端固定2行高度 */ + /* 描述样式 */ .product-card-desc { - font-size: clamp(0.7rem, 1.1vw, 0.9rem); + font-size: clamp(0.8rem, 1.3vw, 1.5rem); color: #656565; word-break: break-word; - height: 65%; + /* height: 65%; */ overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; + padding-top:clamp(0.4rem, 3vw, 0.6rem); -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); + flex: 1; + padding-left: clamp(0.8rem, 2vw, 1.5rem); } - /* 链接图标:移动端特有 */ + /* 链接图标 */ .product-card-link img { width: clamp(2.5rem, 5vw, 4.5rem); height: auto; @@ -153,45 +153,47 @@ /* PC端样式(单独配置,min-width: 1024px)- 后续修改仅改这里 */ /* ######################################################################### */ @media (min-width: 1024px) { - /* 卡片容器:PC端特有(高度自适应) */ + /* 卡片容器:PC端特有 */ .product-card-container { align-items: stretch; height: clamp(30vw, 35vw, 480px); - /* 关键修改3:PC端同步增大gap间距(与通用容器一致) */ gap: clamp(0.6rem, 1vw, 0.8rem); padding: 0; + flex-wrap: nowrap; /* PC端保持不换行 */ + overflow: hidden; /* PC端隐藏溢出 */ } - /* 外层容器PC端适配:高度占满容器 */ + /* 外层容器PC端适配 */ .product-card-wrap { + width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4)); height: 100%; + margin-bottom: 0; /* PC端移除底部间距 */ } - /* 卡片核心:PC端调整(移除圆角、阴影,添加will-change) */ + /* 卡片核心 */ .product-card { background: rgb(242, 243, 245); cursor: pointer; - width: 100%; /* 内层卡片占满外层容器 */ + width: 100%; height: 100%; flex: none; - margin: 0; /* 保持无margin */ + margin: 0; display: flex; flex-direction: column; - will-change: transform; /* 优化渲染,避免圆角异常 */ + will-change: transform; } - /* 卡片hover效果:PC端特有 */ + /* 卡片hover效果 */ .product-card:hover { transform: scale(clamp(1.01, 1.02, 1.03)); transition: transform 0.3s ease; } - /* 外层容器hover增强阴影 */ .product-card-wrap:hover { box-shadow: 0 clamp(0.2rem, 0.4vw, 0.25rem) clamp(0.5rem, 1vw, 0.8rem) rgba(0, 0, 0, 0.08); } - /* 图片容器:PC端固定占比 */ + /* 图片容器 */ .product-card-img { display: flex; justify-content: center; @@ -203,7 +205,7 @@ border-radius: clamp(0.2rem, 0.4vw, 0.25rem); } - /* 产品图片:PC端特有 */ + /* 产品图片 */ .product-card img { width: 100%; height: 100%; @@ -211,17 +213,17 @@ object-position: center; } - /* 文字容器:PC端固定占比 */ + /* 文字容器 */ .product-card-text { flex: 0 0 15%; - display: flex; /* 补充display: flex,原代码遗漏 */ + 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; @@ -234,7 +236,7 @@ align-items: center; } - /* 描述样式:PC端固定2行高度 */ + /* 描述样式 */ .product-card-desc { font-size: clamp(0.7rem, 1.1vw, 0.9rem); color: #656565; @@ -246,16 +248,16 @@ line-height: 1.4; } - /* 链接图标容器:PC端固定占比 */ + /* 链接图标容器 */ .product-card-link { width: 100%; flex: 0 0 12%; padding-left: clamp(0.8rem, 2vw, 1.5rem); - display: flex; /* 补充display: flex,确保图标垂直居中 */ + display: flex; align-items: center; } - /* 链接图标:PC端特有 */ + /* 链接图标 */ .product-card-link img { width: clamp(2.5rem, 5vw, 4.5rem); height: auto; diff --git a/public/static/index/pc/css/topic_power_prodline/advantage.css b/public/static/index/pc/css/topic_power_prodline/advantage.css index 67dbfd1e..6e2e3fea 100644 --- a/public/static/index/pc/css/topic_power_prodline/advantage.css +++ b/public/static/index/pc/css/topic_power_prodline/advantage.css @@ -1,20 +1,25 @@ /* 核心模块:固定90%宽度(PC端),优化移动端边距 */ .advantage-section { - width: 90%; + /* width: 80%; */ margin: 0 auto; - padding: 2rem 0; position: relative; z-index: 1; + max-width: 1690px; + padding-bottom: 105px; + /* padding-left: 115px; */ + } /* 标题容器:恢复原有居中样式 */ .advantage-section__title { - font-size: clamp(1.5rem, 3vw, 2rem); + font-size: 50px; font-weight: 700; text-align: center; color: #333; line-height: 1.2; - margin-bottom: clamp(1.5rem, 2vw, 2.5rem); + /* margin-bottom: clamp(1.5rem, 2vw, 2.5rem); */ + padding-top: 55px; + padding-bottom: 65px; } /* 列表容器:优化gap,确保移动端5列不溢出 */ @@ -32,8 +37,10 @@ /* 新增:卡片外层容器(专门控制圆角,避免缩放时丢失) */ .advantage-card-wrap { 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); + /* 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); */ + width: 330px; + height:470px; border-radius: 0.5rem; /* 外层容器承担圆角 */ overflow: hidden; /* 裁剪内部缩放的卡片 */ box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1); /* 阴影移到外层,避免缩放时阴影变形 */ @@ -97,7 +104,7 @@ /* 卡片标题:居左显示 */ .advantage-card__heading { - font-size: clamp(0.85rem, 1.5vw, 1.4rem); + font-size: 30px; /* 比原尺寸放大,PC端更醒目,移动端自适应 */ font-weight: 600; color: #333; @@ -114,7 +121,7 @@ /* 箭头尺寸跟随标题放大,避免不协调 */ transition: transform 0.3s ease; display: inline-block; - width: 16px; + width: 32px; /* 箭头宽度同步增加 */ text-align: center; } @@ -126,7 +133,7 @@ /* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */ .advantage-card__description { - font-size: clamp(0.6rem, 0.9vw, 0.9rem); + font-size: 22px; /* PC端描述文字略放大 */ color: #666; line-height: 1.2; @@ -145,6 +152,7 @@ display: flex; align-items: center; justify-content: left; + margin-top:clamp(10px, 0.9vw, 30px) } /* 卡片hover效果(仅保留缩放,阴影移到外层) */ @@ -191,15 +199,19 @@ } .advantage-card__img { - height: 62%; + width: 330px; + height:330px; + /* height: 62%; */ /* 移动端图片占比回到62% */ } .advantage-card__content { + /* width: 330px; + height:150px; */ height: 38%; /* 移动端文字区域占比回到38% */ - padding: 0.2rem 0.15rem; - gap: 6px; + /* padding: 0.2rem 0.15rem; + gap: 6px; */ /* 移动端间距略大,易读性更好 */ } 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 e567fe25..cce70674 100644 --- a/public/static/index/pc/css/topic_power_prodline/index.css +++ b/public/static/index/pc/css/topic_power_prodline/index.css @@ -43,7 +43,8 @@ a { margin: 0 auto; display: flex; justify-content: flex-end; - padding-top: clamp(1.5rem, 3vw, 3rem); + padding: 40px 0; + /* padding-top: clamp(1.5rem, 3vw, 3rem); */ } .more-img { background: #000; diff --git a/public/static/index/pc/css/topic_power_prodline/nav.css b/public/static/index/pc/css/topic_power_prodline/nav.css index b0d2342d..666de33e 100644 --- a/public/static/index/pc/css/topic_power_prodline/nav.css +++ b/public/static/index/pc/css/topic_power_prodline/nav.css @@ -1,96 +1,83 @@ .nav-box { display: flex; - justify-content: space-around; + justify-content: space-between; /* 两端对齐,紧贴父容器padding */ width: 90%; - /* 平板/PC端限制最大宽度 */ + max-width: 1700px; margin: 0 auto; background-color: #fff; - border-radius: 3.125rem; - /* 50px→3.125rem */ + border-radius:70px; box-shadow: 0 0.125rem 0.9375rem rgba(0, 0, 0, 0.05); - /* 2px→0.125rem,15px→0.9375rem */ position: relative; z-index: 1; - padding: 0.625rem 0; - /* 10px→0.625rem(原内边距不变) */ + margin-top: 170px; + margin-bottom: 78px; overflow: visible; + padding-left: clamp(20px, 12vw, 238px); + padding-right: clamp(20px, 12vw, 238px); } .nav-item { display: flex; flex-direction: column; align-items: center; - gap: 0.625rem; - /* 10px→0.625rem */ cursor: pointer; - padding: 0.625rem 0 1.25rem; - /* 10px→0.625rem,20px→1.25rem */ position: relative; z-index: 2; - flex: 1; - min-width: 3rem; - /* 48px→3rem(适配14px根字体) */ - max-width: 5rem; - /* 80px→5rem */ + flex: 0 0 auto; /* 宽度由内容决定 */ + width: fit-content; /* 关键:宽度等于内容宽度 */ + padding-bottom: 35px; text-align: center; + /* 可选:添加左右内边距,避免内容贴边 */ + /* padding: 0 0.5rem; */ +} + +/* 可选:如果需要第一个和最后一个元素完全贴紧父容器padding,移除它们的左右内边距 */ +.nav-item:first-child { + padding-left: 0; +} +.nav-item:last-child { + padding-right: 0; } .nav-item img { - width: 4rem; - height: 4rem; - /* 60px→3.75rem(16px基准),14px根字体下≈52.5px,仍清晰 */ + width: 9rem; + height:9rem; object-fit: contain; border-radius: 0.75rem; - /* 12px→0.75rem */ - position: absolute; - top: -3.125rem; - /* -50px→-3.125rem(14px根字体下≈43.75px,超出效果不变) */ + margin-top: -70px; transform: translateY(0.625rem); - /* 10px→0.625rem */ transition: transform 0.3s ease, box-shadow 0.3s ease; } .nav-item:hover img { transform: translateY(0.3125rem); - /* 5px→0.3125rem */ } .nav-item:active img { transform: translateY(0.4375rem); - /* 7px→0.4375rem */ box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.06); } -/* 关键:文字单独控制,确保最小12px */ .nav-item p { margin: 0; - /* PC端:15px→0.9375rem(16px根字体) */ - font-size: 0.9375rem; + font-size: 30px; color: #37373e; font-weight: 500; - position: relative; - z-index: 3; - top: 1.125rem; - /* 18px→1.125rem */ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - padding: 0 0.125rem; } -/* 平板端文字:14px→0.9375rem(15px根字体下=14px) */ +/* 平板端文字 */ @media (max-width: 1023px) and (min-width: 768px) { .nav-item p { font-size: 0.9375rem; } } -/* 移动端文字:强制12px(用px兜底,避免rem计算后过小) */ +/* 移动端文字 */ @media (max-width: 767px) { .nav-item p { - font-size: 12px; - /* 直接用px固定最小尺寸,优先级最高 */ font-size: clamp(12px, 0.857rem, 0.9375rem); - /* 增强版:最小12px,默认0.857rem(14px根字体下≈12px),最大0.9375rem */ } -} +} \ No newline at end of file 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..ae571832 100644 --- a/public/static/index/pc/css/topic_power_prodline/product.css +++ b/public/static/index/pc/css/topic_power_prodline/product.css @@ -1,24 +1,34 @@ .product-box { background: #fff; - padding: clamp(1.5rem, 3vw, 3rem) 0; + /* padding: clamp(1.5rem, 3vw, 3rem) 0; */ /* 产品块之间留间距 */ } .product-title { - width: 90%; + width: 90%; + max-width: 1690px; 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); */ + /* 字体大小:小屏最小30px,大屏最大50px,中间按视口宽度自适应 */ + font-size: clamp(30px, 4vw, 50px); + /* 顶部内边距:小屏最小80px,大屏最大160px,自适应缩放 */ + padding-top: clamp(80px, 10vw, 160px); + /* 底部内边距:小屏最小15px,大屏最大30px,自适应缩放 */ + padding-bottom: clamp(15px, 2vw, 30px); + /* 可选:限制最大宽度并居中,优化大屏显示 */ + max-width: 1690px; + margin: 0 auto; } .product-title-p { - font-size: clamp(0.875rem, 1.5vw, 1.125rem); + /* max-width: 1690px; */ + font-size: clamp(16px, 2vw, 32px); color: #646464; - margin-top: clamp(0.5rem, 1vw, 0.75rem); + padding-bottom: clamp(40px, 6vw, 110px); + /* margin: 0 auto; */ } /* 容器布局:两个产品通用 */ @@ -94,7 +104,8 @@ left: 0; width: 100%; height: 100%; - object-fit: cover; + object-fit: contain; + object-position: center; /* 内容居中显示(默认值) */ transition: opacity 0.3s ease; } @@ -106,6 +117,7 @@ @media (min-width: 1024px) { .product-container { width: 90%; + max-width: 1690px; } .product-left { diff --git a/public/static/index/pc/css/topic_power_prodline/product_card.css b/public/static/index/pc/css/topic_power_prodline/product_card.css index 8a07f532..2a8531d9 100644 --- a/public/static/index/pc/css/topic_power_prodline/product_card.css +++ b/public/static/index/pc/css/topic_power_prodline/product_card.css @@ -14,10 +14,12 @@ flex: 1 1 50%; /* 一行2个 */ min-width: 180px; + max-width: 836px; + max-height:530px; /* 保证图片显示 */ /* max-width: calc(50% - 10px); */ /* 适配gap */ - height: 240px; + /* height: 240px; */ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); display: flex; text-decoration: none; @@ -51,7 +53,7 @@ /* 标题:超出一行显示省略号(左对齐) */ .product-card-title2 { - font-size: clamp(12px, 2vw, 18px); + font-size:clamp(0.8rem, 1.3vw, 1.9rem); font-weight: 600; color: #333; margin-bottom: 5px; @@ -66,9 +68,10 @@ /* 描述:超出2行显示省略号(左对齐) */ .product-card-desc2 { - font-size: clamp(12px, 1.8vw, 14px); + font-size: clamp(1rem, 1.3vw, 1.5rem); color: #656565; - margin-bottom: 15px; + margin-top: clamp(12px,1vw, 15px); + margin-bottom: clamp(20px,1vw, 50px); letter-spacing: 0.1px; /* 超出2行显示省略号核心样式 */ display: -webkit-box; @@ -85,20 +88,24 @@ /* 图片容器:确保移动端显示 */ .product-card-img2 { - flex: 1; - display: flex; + /* flex: 1; */ + /* display: flex; justify-content: center; align-items: center; - min-width: 70px; + min-width: 70px; */ + flex:1; + max-width: 510px; + max-height:510px ; /* 强制保留图片区域,避免被挤压 */ } .product-card-img2 img { width: 100%; height: auto; - max-height: 144px; - min-height: 80px; - object-fit: contain; + object-fit: contain + /* object-fit: contain; + max-width: 510px; + max-width: 510px; */ /* 保持图片比例完整,不拉伸 */ } @@ -111,8 +118,9 @@ } .product-card-link2 img { - width: clamp(60px, 4vw, 76px); - margin: 0; + width: clamp(2.5rem, 5vw, 4.5rem); + height: auto; + object-fit: contain; /* 清除居中margin */ } diff --git a/public/static/index/pc/css/topic_power_prodline/product_list.css b/public/static/index/pc/css/topic_power_prodline/product_list.css index e18841b6..b19ae451 100644 --- a/public/static/index/pc/css/topic_power_prodline/product_list.css +++ b/public/static/index/pc/css/topic_power_prodline/product_list.css @@ -1,8 +1,11 @@ /* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */ .product-card-box { width: 90%; - margin: clamp(1rem, 2vw, 1.5rem) auto 0; - padding: 0; + /* margin: clamp(1rem, 2vw, 1.5rem) auto 0; */ + margin:0 auto; + padding-top: 40px; + max-width: 1690px; + padding-bottom:45px; } .product-card-container { @@ -12,20 +15,23 @@ flex-wrap: nowrap; overflow: hidden; /* 关键修改1:增大间距值(原 clamp(0.3rem, 0.5vw, 0.36rem) → 现在放大2倍左右) */ - gap: clamp(0.6rem, 1vw, 0.8rem); + /* gap: clamp(0.6rem, 1vw, 0.8rem); */ padding: 0; /* 保持无内边距,避免间距叠加 */ + max-width: 1690px; } /* 新增:外层容器(承载圆角、阴影、尺寸,避免缩放时圆角丢失) */ .product-card-wrap { /* 原卡片的宽度计算逻辑移到外层 */ width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4)); - flex: none; + flex: 1; border-radius: clamp(0.375rem, 1vw, 0.5rem); /* 外层承载圆角 */ overflow: hidden; /* 裁剪内层缩放的卡片 */ box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); /* 外层承载阴影 */ position: relative; z-index: 1; + max-width: 410px; + max-height: 560px; } /* ######################################################################### */ @@ -33,6 +39,7 @@ /* ######################################################################### */ @media (max-width: 1023px) { /* 卡片容器:移动端特有 */ + .product-card-container { align-items: stretch; } @@ -160,11 +167,17 @@ /* 关键修改3:PC端同步增大gap间距(与通用容器一致) */ gap: clamp(0.6rem, 1vw, 0.8rem); padding: 0; + max-width: 1690px; + display: flex; + justify-content: space-between; } /* 外层容器PC端适配:高度占满容器 */ .product-card-wrap { height: 100%; + max-width: 410px; + max-height: 560px; + flex:1 } /* 卡片核心:PC端调整(移除圆角、阴影,添加will-change) */ @@ -178,6 +191,8 @@ display: flex; flex-direction: column; will-change: transform; /* 优化渲染,避免圆角异常 */ + max-width: 410px; + max-height: 560px; } /* 卡片hover效果:PC端特有 */ @@ -201,6 +216,8 @@ margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem); overflow: hidden; border-radius: clamp(0.2rem, 0.4vw, 0.25rem); + max-width: 410px; + max-height: 350px; } /* 产品图片:PC端特有 */ @@ -213,17 +230,16 @@ /* 文字容器:PC端固定占比 */ .product-card-text { - flex: 0 0 15%; + /* flex: 0 0 15%; */ display: flex; /* 补充display: flex,原代码遗漏 */ flex-direction: column; justify-content: center; - padding-left: clamp(0.8rem, 2vw, 1.5rem); - padding-right: clamp(0.8rem, 2vw, 1.5rem); + padding-left: clamp(1.5rem, 2vw, 3rem); } - /* 标题样式:PC端特有 */ + /* 标题样式:PC端特有 clamp(0.8rem, 1.3vw, 1.5rem);*/ .product-card-title { - font-size: clamp(0.8rem, 1.3vw, 1.2rem); + font-size:clamp(0.8rem, 1.3vw, 1.9rem); font-weight: 600; color: #333; white-space: nowrap; @@ -234,25 +250,28 @@ align-items: center; } - /* 描述样式:PC端固定2行高度 */ + /* 描述样式:PC端固定2行高度 clamp(0.7rem, 1.1vw, 0.9rem);*/ .product-card-desc { - font-size: clamp(0.7rem, 1.1vw, 0.9rem); + font-size: clamp(1rem, 1.3vw, 1.5rem); color: #656565; word-break: break-word; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; - line-height: 1.4; + padding-top:clamp(0.4rem, 3vw, 0.9rem) ; } /* 链接图标容器:PC端固定占比 */ .product-card-link { width: 100%; - flex: 0 0 12%; - padding-left: clamp(0.8rem, 2vw, 1.5rem); - display: flex; /* 补充display: flex,确保图标垂直居中 */ - align-items: center; + flex: 1; + padding-left: clamp(1.5rem, 2vw, 3rem); + display: flex; + align-items: center; + /* 1rem=16px,3.125rem=50px */ + /* padding-top: clamp(1rem, 2vw, 3.125rem); + padding-bottom: clamp(1rem, 5vw, 3.125rem); */ } /* 链接图标:PC端特有 */