尺寸调整
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
{extend name="public/base" /}
|
{extend name="public/base" /}
|
||||||
{block name="style"}
|
{block name="style"}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="__CSS__/topic_power_prodline/index.css">
|
<link rel="stylesheet" href="__CSS__/topic_power_prodline/index.css">
|
||||||
<link rel="stylesheet" href="__CSS__/topic_power_prodline/swiper.css">
|
<link rel="stylesheet" href="__CSS__/topic_power_prodline/swiper.css">
|
||||||
<link rel="stylesheet" href="__CSS__/topic_power_prodline/nav.css">
|
<link rel="stylesheet" href="__CSS__/topic_power_prodline/nav.css">
|
||||||
@@ -9,6 +12,7 @@
|
|||||||
<link rel="stylesheet" href="__CSS__/topic_power_prodline/product_list.css">
|
<link rel="stylesheet" href="__CSS__/topic_power_prodline/product_list.css">
|
||||||
<link rel="stylesheet" href="__CSS__/topic_power_prodline/product_card.css">
|
<link rel="stylesheet" href="__CSS__/topic_power_prodline/product_card.css">
|
||||||
<link rel="stylesheet" href="__CSS__/topic_power_prodline/footer.css">
|
<link rel="stylesheet" href="__CSS__/topic_power_prodline/footer.css">
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
{block name="header"}
|
{block name="header"}
|
||||||
<!-- 重置header头为空 -->
|
<!-- 重置header头为空 -->
|
||||||
@@ -92,9 +96,25 @@
|
|||||||
{notempty name="tc_first_section_lr"}
|
{notempty name="tc_first_section_lr"}
|
||||||
<div class="product-right">
|
<div class="product-right">
|
||||||
<img src="{$tc_first_section_lr.image}" alt="{$tc_first_section_lr.title}" class="right-content right-img">
|
<img src="{$tc_first_section_lr.image}" alt="{$tc_first_section_lr.title}" class="right-content right-img">
|
||||||
<video src="{$tc_first_section_lr.video}" class="right-content right-video" muted loop playsinline controls>
|
<video src="{$tc_first_section_lr.video}" class="right-content right-video" muted loop playsinline>
|
||||||
您的浏览器不支持HTML5视频播放,请升级浏览器
|
您的浏览器不支持HTML5视频播放,请升级浏览器
|
||||||
</video>
|
</video>
|
||||||
|
<button class="video-play-btn">
|
||||||
|
<span class="play-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<path d="M9 7L16 12L9 17V7Z" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<!-- 暂停图标(默认隐藏) -->
|
||||||
|
<span class="pause-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<rect x="8" y="7" width="3" height="10" fill="white" />
|
||||||
|
<rect x="13" y="7" width="3" height="10" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
@@ -142,7 +162,7 @@
|
|||||||
<div class="product-container">
|
<div class="product-container">
|
||||||
{assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /}
|
{assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /}
|
||||||
{notempty name="hc_first_section_lf"}
|
{notempty name="hc_first_section_lf"}
|
||||||
<a class="product-left" href="{$tc_first_section_lf.link}">
|
<a class="product-left" href="{$hc_first_section_lf.link}">
|
||||||
<img src="{$hc_first_section_lf.image}" alt="{$hc_first_section_lf.title}" class="product-img">
|
<img src="{$hc_first_section_lf.image}" alt="{$hc_first_section_lf.title}" class="product-img">
|
||||||
<!-- 公共类+定位类:尺寸统一,定位不同 -->
|
<!-- 公共类+定位类:尺寸统一,定位不同 -->
|
||||||
<div class="product-img-hover product-img-1">
|
<div class="product-img-hover product-img-1">
|
||||||
@@ -154,9 +174,25 @@
|
|||||||
{notempty name="hc_first_section_lr"}
|
{notempty name="hc_first_section_lr"}
|
||||||
<div class="product-right">
|
<div class="product-right">
|
||||||
<img src="{$hc_first_section_lr.image}" alt="{$hc_first_section_lr.title}" class="right-content right-img">
|
<img src="{$hc_first_section_lr.image}" alt="{$hc_first_section_lr.title}" class="right-content right-img">
|
||||||
<video src="{$hc_first_section_lr.video}" class="right-content right-video" muted loop playsinline controls>
|
<video src="{$hc_first_section_lr.video}" class="right-content right-video" muted loop playsinline >
|
||||||
您的浏览器不支持HTML5视频播放,请升级浏览器
|
您的浏览器不支持HTML5视频播放,请升级浏览器
|
||||||
</video>
|
</video>
|
||||||
|
<button class="video-play-btn">
|
||||||
|
<span class="play-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<path d="M9 7L16 12L9 17V7Z" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<!-- 暂停图标(默认隐藏) -->
|
||||||
|
<span class="pause-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<rect x="8" y="7" width="3" height="10" fill="white" />
|
||||||
|
<rect x="13" y="7" width="3" height="10" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
@@ -165,7 +201,7 @@
|
|||||||
<div class="product-card-box">
|
<div class="product-card-box">
|
||||||
<div class="product-card-container">
|
<div class="product-card-container">
|
||||||
{volist name="hc_second_section" id="hcs"}
|
{volist name="hc_second_section" id="hcs"}
|
||||||
<a class="product-card-wrap" href="{$tss.link}">
|
<a class="product-card-wrap" href="{$hcs.link}">
|
||||||
<div class="product-card" href="#">
|
<div class="product-card" href="#">
|
||||||
<div class="product-card-img">
|
<div class="product-card-img">
|
||||||
<img src="{$hcs.image}" alt="{$hcs.short_title}">
|
<img src="{$hcs.image}" alt="{$hcs.short_title}">
|
||||||
@@ -203,7 +239,7 @@
|
|||||||
<div class="product-container">
|
<div class="product-container">
|
||||||
{assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /}
|
{assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /}
|
||||||
{notempty name="dc_first_section_lf"}
|
{notempty name="dc_first_section_lf"}
|
||||||
<a class="product-left" href="{$tc_first_section_lf.link}">
|
<a class="product-left" href="{$dc_first_section_lf.link}">
|
||||||
<img src="{$dc_first_section_lf.image}" alt="{$dc_first_section_lf.short_title}" class="product-img">
|
<img src="{$dc_first_section_lf.image}" alt="{$dc_first_section_lf.short_title}" class="product-img">
|
||||||
<!-- 公共类+定位类:尺寸和第一个完全一致,仅定位不同 -->
|
<!-- 公共类+定位类:尺寸和第一个完全一致,仅定位不同 -->
|
||||||
<div class="product-img-hover product-img-2" >
|
<div class="product-img-hover product-img-2" >
|
||||||
@@ -219,9 +255,25 @@
|
|||||||
<!--muted loop playsinline controls-->
|
<!--muted loop playsinline controls-->
|
||||||
<video
|
<video
|
||||||
src="{$dc_first_section_lr.video}"
|
src="{$dc_first_section_lr.video}"
|
||||||
class="right-content right-video" style="display: none;">
|
class="right-content right-video" muted loop playsinline >
|
||||||
您的浏览器不支持HTML5视频播放,请升级浏览器
|
您的浏览器不支持HTML5视频播放,请升级浏览器
|
||||||
</video>
|
</video>
|
||||||
|
<button class="video-play-btn">
|
||||||
|
<span class="play-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<path d="M9 7L16 12L9 17V7Z" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<!-- 暂停图标(默认隐藏) -->
|
||||||
|
<span class="pause-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<rect x="8" y="7" width="3" height="10" fill="white" />
|
||||||
|
<rect x="13" y="7" width="3" height="10" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
@@ -281,9 +333,25 @@
|
|||||||
{notempty name="wc_first_section_lr"}
|
{notempty name="wc_first_section_lr"}
|
||||||
<div class="product-right">
|
<div class="product-right">
|
||||||
<img src="{$wc_first_section_lr.image}" alt="{$wc_first_section_lr.title}" class="right-content right-img">
|
<img src="{$wc_first_section_lr.image}" alt="{$wc_first_section_lr.title}" class="right-content right-img">
|
||||||
<video src="{$wc_first_section_lr.video}" class="right-content right-video" muted loop playsinline controls>
|
<video src="{$wc_first_section_lr.video}" class="right-content right-video" muted loop playsinline>
|
||||||
您的浏览器不支持HTML5视频播放,请升级浏览器
|
您的浏览器不支持HTML5视频播放,请升级浏览器
|
||||||
</video>
|
</video>
|
||||||
|
<button class="video-play-btn">
|
||||||
|
<span class="play-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<path d="M9 7L16 12L9 17V7Z" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<!-- 暂停图标(默认隐藏) -->
|
||||||
|
<span class="pause-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<rect x="8" y="7" width="3" height="10" fill="white" />
|
||||||
|
<rect x="13" y="7" width="3" height="10" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
@@ -326,9 +394,26 @@
|
|||||||
{notempty name="cts_lr"}
|
{notempty name="cts_lr"}
|
||||||
<div class="product-right">
|
<div class="product-right">
|
||||||
<img src="{$cts_lr.image}" alt="{$cts_lr.title}" class="right-content right-img">
|
<img src="{$cts_lr.image}" alt="{$cts_lr.title}" class="right-content right-img">
|
||||||
<video src="{$cts_lr.video}" class="right-content right-video" muted loop playsinline controls>
|
<video src="{$cts_lr.video}" class="right-content right-video" muted loop playsinline>
|
||||||
您的浏览器不支持HTML5视频播放,请升级浏览器
|
您的浏览器不支持HTML5视频播放,请升级浏览器
|
||||||
</video>
|
</video>
|
||||||
|
<!-- 播放图标 -->
|
||||||
|
<button class="video-play-btn">
|
||||||
|
<span class="play-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<path d="M9 7L16 12L9 17V7Z" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<!-- 暂停图标(默认隐藏) -->
|
||||||
|
<span class="pause-icon">
|
||||||
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="12" cy="12" r="10" fill="rgba(0,0,0,0.5)" />
|
||||||
|
<rect x="8" y="7" width="3" height="10" fill="white" />
|
||||||
|
<rect x="13" y="7" width="3" height="10" fill="white" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
@@ -380,7 +465,6 @@
|
|||||||
maskContent.appendChild(scrollContent);
|
maskContent.appendChild(scrollContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function createCloseBtn() {
|
function createCloseBtn() {
|
||||||
if (closeBtnHtml) {
|
if (closeBtnHtml) {
|
||||||
closeBtnHtml.remove();
|
closeBtnHtml.remove();
|
||||||
@@ -485,69 +569,134 @@
|
|||||||
{ passive: false }
|
{ passive: false }
|
||||||
); // passive: false 必须,否则 preventDefault 无效
|
); // passive: false 必须,否则 preventDefault 无效
|
||||||
|
|
||||||
const allVideos = document.querySelectorAll('.right-video');
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
let scrollTimer = null; // 防抖定时器
|
// 初始化所有视频容器
|
||||||
// 停止所有视频播放
|
function initVideoContainers() {
|
||||||
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');
|
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;
|
|
||||||
|
|
||||||
const rect = rightContainer.getBoundingClientRect();
|
productRights.forEach((container, index) => {
|
||||||
// 视口判断:容器进入视口50%以上视为活跃
|
const video = container.querySelector('.right-video');
|
||||||
const isInView =
|
const btn = container.querySelector('.video-play-btn');
|
||||||
rect.top < window.innerHeight * 0.7 &&
|
const img = container.querySelector('.right-img');
|
||||||
rect.bottom > window.innerHeight * 0.3;
|
if (!video || !btn || !img) return;
|
||||||
|
const videoSrc = video.src.trim()
|
||||||
|
// 修复:正确检测有效视频地址
|
||||||
|
// 排除空字符串、null、undefined
|
||||||
|
const hasValidVideo = !!videoSrc && videoSrc.trim() !== '' && videoSrc !== 'undefined' && videoSrc !== 'null';
|
||||||
|
|
||||||
if (isInView) {
|
// 初始化状态:无视频则保持图片显示,永不切换
|
||||||
activeVideo = video;
|
if (!hasValidVideo) {
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 处理活跃视频
|
|
||||||
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';
|
|
||||||
img.style.display = 'block';
|
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 {
|
} else {
|
||||||
stopAllVideos(); // 无活跃视频时停止所有播放
|
btn.style.display = 'block';
|
||||||
|
btn.style.opacity = '1';
|
||||||
|
btn.classList.toggle('paused', !video.paused && !video.ended);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 滚动事件:添加防抖(移动端推荐100-200ms延迟)
|
|
||||||
window.addEventListener('scroll', function () {
|
// 按钮点击事件
|
||||||
// 清除上一次的定时器
|
btn.addEventListener('click', () => {
|
||||||
clearTimeout(scrollTimer);
|
if (video.paused) {
|
||||||
// 滚动停止后150ms再执行核心逻辑
|
video.play().catch(() => syncMediaState());
|
||||||
scrollTimer = setTimeout(handleVideoActive, 150);
|
} else {
|
||||||
|
video.pause();
|
||||||
|
}
|
||||||
|
syncMediaState();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 视频事件监听
|
||||||
|
['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();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 滚动监听 - 优化版
|
||||||
|
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 () {
|
window.onload = function () {
|
||||||
if (typeof Swiper === 'undefined') {
|
if (typeof Swiper === 'undefined') {
|
||||||
|
|||||||
@@ -142,7 +142,7 @@
|
|||||||
<div class="product-container">
|
<div class="product-container">
|
||||||
{assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /}
|
{assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /}
|
||||||
{notempty name="hc_first_section_lf"}
|
{notempty name="hc_first_section_lf"}
|
||||||
<a class="product-left" href="{$tc_first_section_lf.link}">
|
<a class="product-left" href="{$hc_first_section_lf.link}">
|
||||||
<img src="{$hc_first_section_lf.image}" alt="{$hc_first_section_lf.title}" class="product-img">
|
<img src="{$hc_first_section_lf.image}" alt="{$hc_first_section_lf.title}" class="product-img">
|
||||||
<!-- 公共类+定位类:尺寸统一,定位不同 -->
|
<!-- 公共类+定位类:尺寸统一,定位不同 -->
|
||||||
<div class="product-img-hover product-img-1">
|
<div class="product-img-hover product-img-1">
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
<div class="product-card-box">
|
<div class="product-card-box">
|
||||||
<div class="product-card-container">
|
<div class="product-card-container">
|
||||||
{volist name="hc_second_section" id="hcs"}
|
{volist name="hc_second_section" id="hcs"}
|
||||||
<a class="product-card-wrap" href="{$tss.link}">
|
<a class="product-card-wrap" href="{$hcs.link}">
|
||||||
<div class="product-card" href="#">
|
<div class="product-card" href="#">
|
||||||
<div class="product-card-img">
|
<div class="product-card-img">
|
||||||
<img src="{$hcs.image}" alt="{$hcs.short_title}">
|
<img src="{$hcs.image}" alt="{$hcs.short_title}">
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
<div class="product-container">
|
<div class="product-container">
|
||||||
{assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /}
|
{assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /}
|
||||||
{notempty name="dc_first_section_lf"}
|
{notempty name="dc_first_section_lf"}
|
||||||
<a class="product-left" href="{$tc_first_section_lf.link}">
|
<a class="product-left" href="{$dc_first_section_lf.link}">
|
||||||
<img src="{$dc_first_section_lf.image}" alt="{$dc_first_section_lf.short_title}" class="product-img">
|
<img src="{$dc_first_section_lf.image}" alt="{$dc_first_section_lf.short_title}" class="product-img">
|
||||||
<!-- 公共类+定位类:尺寸和第一个完全一致,仅定位不同 -->
|
<!-- 公共类+定位类:尺寸和第一个完全一致,仅定位不同 -->
|
||||||
<div class="product-img-hover product-img-2" >
|
<div class="product-img-hover product-img-2" >
|
||||||
|
|||||||
@@ -1,254 +1,6 @@
|
|||||||
/* 核心模块:固定90%宽度(PC端),优化移动端边距 */
|
/* iPad横屏特殊适配(可选) */
|
||||||
.advantage-section {
|
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
|
||||||
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 {
|
.advantage-card-wrap {
|
||||||
flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
|
aspect-ratio: 1 / 1.6; /* 横屏时调整卡片比例 */
|
||||||
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个 */
|
|
||||||
.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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,148 +1,266 @@
|
|||||||
.product-box {
|
/* 核心模块:固定90%宽度(PC端),优化移动端边距 */
|
||||||
background: #fff;
|
.advantage-section {
|
||||||
padding: clamp(1.5rem, 3vw, 3rem) 0;
|
|
||||||
/* 产品块之间留间距 */
|
|
||||||
}
|
|
||||||
|
|
||||||
.product-title {
|
|
||||||
width: 90%;
|
width: 90%;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding-bottom: clamp(1.5rem, 3vw, 3rem);
|
padding: 2rem 0;
|
||||||
}
|
|
||||||
|
|
||||||
.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;
|
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;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-img-hover img {
|
/* 标题容器:恢复原有居中样式 */
|
||||||
|
.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%;
|
width: 100%;
|
||||||
/*max-width: 340px;*/
|
flex-wrap: nowrap;
|
||||||
/* 图片尺寸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;
|
overflow: hidden;
|
||||||
width: 100%;
|
padding: 0 0.1rem;
|
||||||
background-color: #f5f5f5;
|
|
||||||
align-self: stretch;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-content {
|
/* 新增:卡片外层容器(专门控制圆角,避免缩放时丢失) */
|
||||||
position: absolute;
|
.advantage-card-wrap {
|
||||||
top: 0;
|
flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
|
||||||
left: 0;
|
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%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
object-fit: cover;
|
cursor: pointer;
|
||||||
transition: opacity 0.3s ease;
|
background: #fff;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
/* 关键修复:添加will-change优化渲染,移除原圆角和阴影(移到外层) */
|
||||||
|
will-change: transform; /* 告知浏览器准备变换,避免圆角渲染异常 */
|
||||||
|
transition: transform 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-video {
|
.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: 1024px) { /* 平板断点调整为1024px */
|
||||||
|
.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个 */
|
||||||
|
.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;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PC端适配:仅微调定位参数,尺寸不变 */
|
.advantage-card__img {
|
||||||
@media (min-width: 1024px) {
|
height: 62%;
|
||||||
.product-container {
|
/* 平板/移动端图片占比调整 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.advantage-card__content {
|
||||||
|
height: 38%;
|
||||||
|
/* 平板/移动端文字区域占比调整 */
|
||||||
|
padding: 0.2rem 0.15rem;
|
||||||
|
gap: 6px;
|
||||||
|
/* 间距优化 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 平板/移动端标题容器宽度放宽 */
|
||||||
|
.advantage-card__heading-wrap {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-left {
|
.advantage-card__description {
|
||||||
flex: 2;
|
line-height: 1.2;
|
||||||
|
width: 90%;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
/* 同步添加最小高度 */
|
||||||
|
min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-right {
|
/* 平板/移动端箭头和文字尺寸调整 */
|
||||||
flex: 5;
|
.card-arrow {
|
||||||
|
font-size: clamp(0.45rem, 0.7vw, 0.8rem);
|
||||||
|
width: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 宽度保持一致,仅调定位偏移 */
|
.advantage-card__heading {
|
||||||
.product-img-1 {
|
/* font-size: clamp(1rem, 1vw, 32rem); */
|
||||||
top: -11%;
|
font-size: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-img-2 {
|
.advantage-card__description {
|
||||||
top: -12%;
|
font-size: 22px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 超小屏适配:尺寸不变,微调定位 */
|
/* 移动端适配(小屏手机) */
|
||||||
@media (max-width: 375px) {
|
@media (max-width: 767px) {
|
||||||
.product-left {
|
.advantage-section {
|
||||||
flex: 1.5;
|
width: 95%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-right {
|
.advantage-card__heading {
|
||||||
flex: 3.5;
|
font-size: clamp(0.55rem, 1vw, 0.95rem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 宽度仍保持一致 */
|
/* 超小屏适配 */
|
||||||
.product-img-1 {
|
@media (max-width: 374px) {
|
||||||
top: -6%;
|
.advantage-section {
|
||||||
|
width: 98%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-img-2 {
|
.advantage-card__heading {
|
||||||
top: -8%;
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,23 +9,22 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: nowrap;
|
flex-wrap: wrap; /* 修改为可换行 */
|
||||||
overflow: hidden;
|
overflow: visible; /* 改为可见,显示所有内容 */
|
||||||
/* 关键修改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; /* 保持无内边距,避免间距叠加 */
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 新增:外层容器(承载圆角、阴影、尺寸,避免缩放时圆角丢失) */
|
/* 新增:外层容器(承载圆角、阴影、尺寸,避免缩放时圆角丢失) */
|
||||||
.product-card-wrap {
|
.product-card-wrap {
|
||||||
/* 原卡片的宽度计算逻辑移到外层 */
|
|
||||||
width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4));
|
width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4));
|
||||||
flex: none;
|
flex: none;
|
||||||
border-radius: clamp(0.375rem, 1vw, 0.5rem); /* 外层承载圆角 */
|
border-radius: clamp(0.375rem, 1vw, 0.5rem);
|
||||||
overflow: hidden; /* 裁剪内层缩放的卡片 */
|
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); /* 外层承载阴影 */
|
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;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
margin-bottom: clamp(1rem, 2vw, 1.5rem); /* 添加底部间距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ######################################################################### */
|
/* ######################################################################### */
|
||||||
@@ -35,38 +34,39 @@
|
|||||||
/* 卡片容器:移动端特有 */
|
/* 卡片容器:移动端特有 */
|
||||||
.product-card-container {
|
.product-card-container {
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
|
justify-content: flex-start; /* 左对齐 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 外层容器移动端适配:宽高比移到外层 */
|
/* 外层容器移动端适配:一行2个 */
|
||||||
.product-card-wrap {
|
.product-card-wrap {
|
||||||
|
width: calc(50% - (clamp(0.6rem, 1vw, 0.8rem) * 1 / 2));
|
||||||
aspect-ratio: 3 / 4.2;
|
aspect-ratio: 3 / 4.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 卡片核心:移动端调整(移除圆角、阴影,添加will-change) */
|
/* 卡片核心:移动端调整 */
|
||||||
.product-card {
|
.product-card {
|
||||||
background: rgb(242, 243, 245);
|
background: rgb(242, 243, 245);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
width: 100%; /* 内层卡片占满外层容器 */
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
flex: none;
|
flex: none;
|
||||||
margin: 0; /* 保持无margin,间距由gap控制 */
|
margin: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
will-change: transform; /* 优化渲染,避免圆角异常 */
|
will-change: transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 卡片hover效果:移动端特有 */
|
/* 卡片hover效果 */
|
||||||
.product-card:hover {
|
.product-card:hover {
|
||||||
transform: scale(clamp(1.01, 1.02, 1.03));
|
transform: scale(clamp(1.01, 1.02, 1.03));
|
||||||
transition: transform 0.3s ease;
|
transition: transform 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 外层容器hover增强阴影(更自然的浮起效果) */
|
|
||||||
.product-card-wrap: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);
|
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 {
|
.product-card-img {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
|
border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 产品图片:移动端特有 */
|
/* 产品图片 */
|
||||||
.product-card img {
|
.product-card img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -86,51 +86,51 @@
|
|||||||
object-position: center;
|
object-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 文字容器:移动端固定占比 */
|
/* 文字容器 */
|
||||||
.product-card-text {
|
.product-card-text {
|
||||||
flex: 0 0 20%;
|
/* flex: 0 0 20%; */
|
||||||
display: flex;
|
/* display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center; */
|
||||||
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
||||||
padding-right: clamp(0.8rem, 2vw, 1.5rem);
|
padding-right: clamp(0.8rem, 2vw, 1.5rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 标题样式:移动端特有 */
|
/* 标题样式 */
|
||||||
.product-card-title {
|
.product-card-title {
|
||||||
font-size: clamp(0.8rem, 1.3vw, 1.2rem);
|
font-size:clamp(0.8rem, 1.3vw, 1.9rem);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #333;
|
color: #333;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
height: 35%;
|
/* height: 35%; */
|
||||||
line-height: 1.2;
|
/* line-height: 1.2; */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 描述样式:移动端固定2行高度 */
|
/* 描述样式 */
|
||||||
.product-card-desc {
|
.product-card-desc {
|
||||||
font-size: clamp(0.7rem, 1.1vw, 0.9rem);
|
font-size: clamp(0.8rem, 1.3vw, 1.5rem);
|
||||||
color: #656565;
|
color: #656565;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
height: 65%;
|
/* height: 65%; */
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
|
padding-top:clamp(0.4rem, 3vw, 0.6rem);
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
line-height: 1.4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 链接图标容器:移动端固定占比 */
|
/* 链接图标容器 */
|
||||||
.product-card-link {
|
.product-card-link {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex: 0 0 10%;
|
flex: 1;
|
||||||
padding: clamp(0.8rem, 2vw, 1.5rem);
|
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 链接图标:移动端特有 */
|
/* 链接图标 */
|
||||||
.product-card-link img {
|
.product-card-link img {
|
||||||
width: clamp(2.5rem, 5vw, 4.5rem);
|
width: clamp(2.5rem, 5vw, 4.5rem);
|
||||||
height: auto;
|
height: auto;
|
||||||
@@ -153,45 +153,47 @@
|
|||||||
/* PC端样式(单独配置,min-width: 1024px)- 后续修改仅改这里 */
|
/* PC端样式(单独配置,min-width: 1024px)- 后续修改仅改这里 */
|
||||||
/* ######################################################################### */
|
/* ######################################################################### */
|
||||||
@media (min-width: 1024px) {
|
@media (min-width: 1024px) {
|
||||||
/* 卡片容器:PC端特有(高度自适应) */
|
/* 卡片容器:PC端特有 */
|
||||||
.product-card-container {
|
.product-card-container {
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
height: clamp(30vw, 35vw, 480px);
|
height: clamp(30vw, 35vw, 480px);
|
||||||
/* 关键修改3:PC端同步增大gap间距(与通用容器一致) */
|
|
||||||
gap: clamp(0.6rem, 1vw, 0.8rem);
|
gap: clamp(0.6rem, 1vw, 0.8rem);
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
flex-wrap: nowrap; /* PC端保持不换行 */
|
||||||
|
overflow: hidden; /* PC端隐藏溢出 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 外层容器PC端适配:高度占满容器 */
|
/* 外层容器PC端适配 */
|
||||||
.product-card-wrap {
|
.product-card-wrap {
|
||||||
|
width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4));
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
margin-bottom: 0; /* PC端移除底部间距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 卡片核心:PC端调整(移除圆角、阴影,添加will-change) */
|
/* 卡片核心 */
|
||||||
.product-card {
|
.product-card {
|
||||||
background: rgb(242, 243, 245);
|
background: rgb(242, 243, 245);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
width: 100%; /* 内层卡片占满外层容器 */
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
flex: none;
|
flex: none;
|
||||||
margin: 0; /* 保持无margin */
|
margin: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
will-change: transform; /* 优化渲染,避免圆角异常 */
|
will-change: transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 卡片hover效果:PC端特有 */
|
/* 卡片hover效果 */
|
||||||
.product-card:hover {
|
.product-card:hover {
|
||||||
transform: scale(clamp(1.01, 1.02, 1.03));
|
transform: scale(clamp(1.01, 1.02, 1.03));
|
||||||
transition: transform 0.3s ease;
|
transition: transform 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 外层容器hover增强阴影 */
|
|
||||||
.product-card-wrap: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);
|
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 {
|
.product-card-img {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -203,7 +205,7 @@
|
|||||||
border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
|
border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 产品图片:PC端特有 */
|
/* 产品图片 */
|
||||||
.product-card img {
|
.product-card img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -211,17 +213,17 @@
|
|||||||
object-position: center;
|
object-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 文字容器:PC端固定占比 */
|
/* 文字容器 */
|
||||||
.product-card-text {
|
.product-card-text {
|
||||||
flex: 0 0 15%;
|
flex: 0 0 15%;
|
||||||
display: flex; /* 补充display: flex,原代码遗漏 */
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
||||||
padding-right: clamp(0.8rem, 2vw, 1.5rem);
|
padding-right: clamp(0.8rem, 2vw, 1.5rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 标题样式:PC端特有 */
|
/* 标题样式 */
|
||||||
.product-card-title {
|
.product-card-title {
|
||||||
font-size: clamp(0.8rem, 1.3vw, 1.2rem);
|
font-size: clamp(0.8rem, 1.3vw, 1.2rem);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@@ -234,7 +236,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 描述样式:PC端固定2行高度 */
|
/* 描述样式 */
|
||||||
.product-card-desc {
|
.product-card-desc {
|
||||||
font-size: clamp(0.7rem, 1.1vw, 0.9rem);
|
font-size: clamp(0.7rem, 1.1vw, 0.9rem);
|
||||||
color: #656565;
|
color: #656565;
|
||||||
@@ -246,16 +248,16 @@
|
|||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 链接图标容器:PC端固定占比 */
|
/* 链接图标容器 */
|
||||||
.product-card-link {
|
.product-card-link {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
flex: 0 0 12%;
|
flex: 0 0 12%;
|
||||||
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
||||||
display: flex; /* 补充display: flex,确保图标垂直居中 */
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 链接图标:PC端特有 */
|
/* 链接图标 */
|
||||||
.product-card-link img {
|
.product-card-link img {
|
||||||
width: clamp(2.5rem, 5vw, 4.5rem);
|
width: clamp(2.5rem, 5vw, 4.5rem);
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|||||||
@@ -1,20 +1,25 @@
|
|||||||
/* 核心模块:固定90%宽度(PC端),优化移动端边距 */
|
/* 核心模块:固定90%宽度(PC端),优化移动端边距 */
|
||||||
.advantage-section {
|
.advantage-section {
|
||||||
width: 90%;
|
/* width: 80%; */
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding: 2rem 0;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
max-width: 1690px;
|
||||||
|
padding-bottom: 105px;
|
||||||
|
/* padding-left: 115px; */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 标题容器:恢复原有居中样式 */
|
/* 标题容器:恢复原有居中样式 */
|
||||||
.advantage-section__title {
|
.advantage-section__title {
|
||||||
font-size: clamp(1.5rem, 3vw, 2rem);
|
font-size: 50px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #333;
|
color: #333;
|
||||||
line-height: 1.2;
|
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列不溢出 */
|
/* 列表容器:优化gap,确保移动端5列不溢出 */
|
||||||
@@ -32,8 +37,10 @@
|
|||||||
/* 新增:卡片外层容器(专门控制圆角,避免缩放时丢失) */
|
/* 新增:卡片外层容器(专门控制圆角,避免缩放时丢失) */
|
||||||
.advantage-card-wrap {
|
.advantage-card-wrap {
|
||||||
flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
|
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);
|
/* 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);
|
max-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); */
|
||||||
|
width: 330px;
|
||||||
|
height:470px;
|
||||||
border-radius: 0.5rem; /* 外层容器承担圆角 */
|
border-radius: 0.5rem; /* 外层容器承担圆角 */
|
||||||
overflow: hidden; /* 裁剪内部缩放的卡片 */
|
overflow: hidden; /* 裁剪内部缩放的卡片 */
|
||||||
box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1); /* 阴影移到外层,避免缩放时阴影变形 */
|
box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1); /* 阴影移到外层,避免缩放时阴影变形 */
|
||||||
@@ -97,7 +104,7 @@
|
|||||||
|
|
||||||
/* 卡片标题:居左显示 */
|
/* 卡片标题:居左显示 */
|
||||||
.advantage-card__heading {
|
.advantage-card__heading {
|
||||||
font-size: clamp(0.85rem, 1.5vw, 1.4rem);
|
font-size: 30px;
|
||||||
/* 比原尺寸放大,PC端更醒目,移动端自适应 */
|
/* 比原尺寸放大,PC端更醒目,移动端自适应 */
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #333;
|
color: #333;
|
||||||
@@ -114,7 +121,7 @@
|
|||||||
/* 箭头尺寸跟随标题放大,避免不协调 */
|
/* 箭头尺寸跟随标题放大,避免不协调 */
|
||||||
transition: transform 0.3s ease;
|
transition: transform 0.3s ease;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 16px;
|
width: 32px;
|
||||||
/* 箭头宽度同步增加 */
|
/* 箭头宽度同步增加 */
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
@@ -126,7 +133,7 @@
|
|||||||
|
|
||||||
/* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */
|
/* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */
|
||||||
.advantage-card__description {
|
.advantage-card__description {
|
||||||
font-size: clamp(0.6rem, 0.9vw, 0.9rem);
|
font-size: 22px;
|
||||||
/* PC端描述文字略放大 */
|
/* PC端描述文字略放大 */
|
||||||
color: #666;
|
color: #666;
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
@@ -145,6 +152,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: left;
|
justify-content: left;
|
||||||
|
margin-top:clamp(10px, 0.9vw, 30px)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 卡片hover效果(仅保留缩放,阴影移到外层) */
|
/* 卡片hover效果(仅保留缩放,阴影移到外层) */
|
||||||
@@ -191,15 +199,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.advantage-card__img {
|
.advantage-card__img {
|
||||||
height: 62%;
|
width: 330px;
|
||||||
|
height:330px;
|
||||||
|
/* height: 62%; */
|
||||||
/* 移动端图片占比回到62% */
|
/* 移动端图片占比回到62% */
|
||||||
}
|
}
|
||||||
|
|
||||||
.advantage-card__content {
|
.advantage-card__content {
|
||||||
|
/* width: 330px;
|
||||||
|
height:150px; */
|
||||||
height: 38%;
|
height: 38%;
|
||||||
/* 移动端文字区域占比回到38% */
|
/* 移动端文字区域占比回到38% */
|
||||||
padding: 0.2rem 0.15rem;
|
/* padding: 0.2rem 0.15rem;
|
||||||
gap: 6px;
|
gap: 6px; */
|
||||||
/* 移动端间距略大,易读性更好 */
|
/* 移动端间距略大,易读性更好 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ a {
|
|||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
padding-top: clamp(1.5rem, 3vw, 3rem);
|
padding: 40px 0;
|
||||||
|
/* padding-top: clamp(1.5rem, 3vw, 3rem); */
|
||||||
}
|
}
|
||||||
.more-img {
|
.more-img {
|
||||||
background: #000;
|
background: #000;
|
||||||
|
|||||||
@@ -1,96 +1,83 @@
|
|||||||
.nav-box {
|
.nav-box {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-between; /* 两端对齐,紧贴父容器padding */
|
||||||
width: 90%;
|
width: 90%;
|
||||||
/* 平板/PC端限制最大宽度 */
|
max-width: 1700px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 3.125rem;
|
border-radius:70px;
|
||||||
/* 50px→3.125rem */
|
|
||||||
box-shadow: 0 0.125rem 0.9375rem rgba(0, 0, 0, 0.05);
|
box-shadow: 0 0.125rem 0.9375rem rgba(0, 0, 0, 0.05);
|
||||||
/* 2px→0.125rem,15px→0.9375rem */
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
padding: 0.625rem 0;
|
margin-top: 170px;
|
||||||
/* 10px→0.625rem(原内边距不变) */
|
margin-bottom: 78px;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
|
padding-left: clamp(20px, 12vw, 238px);
|
||||||
|
padding-right: clamp(20px, 12vw, 238px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item {
|
.nav-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 0.625rem;
|
|
||||||
/* 10px→0.625rem */
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 0.625rem 0 1.25rem;
|
|
||||||
/* 10px→0.625rem,20px→1.25rem */
|
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
flex: 1;
|
flex: 0 0 auto; /* 宽度由内容决定 */
|
||||||
min-width: 3rem;
|
width: fit-content; /* 关键:宽度等于内容宽度 */
|
||||||
/* 48px→3rem(适配14px根字体) */
|
padding-bottom: 35px;
|
||||||
max-width: 5rem;
|
|
||||||
/* 80px→5rem */
|
|
||||||
text-align: center;
|
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 {
|
.nav-item img {
|
||||||
width: 4rem;
|
width: 9rem;
|
||||||
height: 4rem;
|
height:9rem;
|
||||||
/* 60px→3.75rem(16px基准),14px根字体下≈52.5px,仍清晰 */
|
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
border-radius: 0.75rem;
|
border-radius: 0.75rem;
|
||||||
/* 12px→0.75rem */
|
margin-top: -70px;
|
||||||
position: absolute;
|
|
||||||
top: -3.125rem;
|
|
||||||
/* -50px→-3.125rem(14px根字体下≈43.75px,超出效果不变) */
|
|
||||||
transform: translateY(0.625rem);
|
transform: translateY(0.625rem);
|
||||||
/* 10px→0.625rem */
|
|
||||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item:hover img {
|
.nav-item:hover img {
|
||||||
transform: translateY(0.3125rem);
|
transform: translateY(0.3125rem);
|
||||||
/* 5px→0.3125rem */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item:active img {
|
.nav-item:active img {
|
||||||
transform: translateY(0.4375rem);
|
transform: translateY(0.4375rem);
|
||||||
/* 7px→0.4375rem */
|
|
||||||
box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.06);
|
box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.06);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 关键:文字单独控制,确保最小12px */
|
|
||||||
.nav-item p {
|
.nav-item p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
/* PC端:15px→0.9375rem(16px根字体) */
|
font-size: 30px;
|
||||||
font-size: 0.9375rem;
|
|
||||||
color: #37373e;
|
color: #37373e;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
position: relative;
|
|
||||||
z-index: 3;
|
|
||||||
top: 1.125rem;
|
|
||||||
/* 18px→1.125rem */
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
padding: 0 0.125rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 平板端文字:14px→0.9375rem(15px根字体下=14px) */
|
/* 平板端文字 */
|
||||||
@media (max-width: 1023px) and (min-width: 768px) {
|
@media (max-width: 1023px) and (min-width: 768px) {
|
||||||
.nav-item p {
|
.nav-item p {
|
||||||
font-size: 0.9375rem;
|
font-size: 0.9375rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 移动端文字:强制12px(用px兜底,避免rem计算后过小) */
|
/* 移动端文字 */
|
||||||
@media (max-width: 767px) {
|
@media (max-width: 767px) {
|
||||||
.nav-item p {
|
.nav-item p {
|
||||||
font-size: 12px;
|
|
||||||
/* 直接用px固定最小尺寸,优先级最高 */
|
|
||||||
font-size: clamp(12px, 0.857rem, 0.9375rem);
|
font-size: clamp(12px, 0.857rem, 0.9375rem);
|
||||||
/* 增强版:最小12px,默认0.857rem(14px根字体下≈12px),最大0.9375rem */
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,24 +1,34 @@
|
|||||||
.product-box {
|
.product-box {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
padding: clamp(1.5rem, 3vw, 3rem) 0;
|
/* padding: clamp(1.5rem, 3vw, 3rem) 0; */
|
||||||
/* 产品块之间留间距 */
|
/* 产品块之间留间距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-title {
|
.product-title {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
|
max-width: 1690px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding-bottom: clamp(1.5rem, 3vw, 3rem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-title-h2 {
|
.product-title-h2 {
|
||||||
font-size: clamp(1.5rem, 3vw, 2.25rem);
|
/* 字体大小:小屏最小30px,大屏最大50px,中间按视口宽度自适应 */
|
||||||
/* padding-top: clamp(1.5rem, 3vw, 3rem); */
|
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 {
|
.product-title-p {
|
||||||
font-size: clamp(0.875rem, 1.5vw, 1.125rem);
|
/* max-width: 1690px; */
|
||||||
|
font-size: clamp(16px, 2vw, 32px);
|
||||||
color: #646464;
|
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;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
object-fit: cover;
|
object-fit: contain;
|
||||||
|
object-position: center; /* 内容居中显示(默认值) */
|
||||||
transition: opacity 0.3s ease;
|
transition: opacity 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,6 +117,7 @@
|
|||||||
@media (min-width: 1024px) {
|
@media (min-width: 1024px) {
|
||||||
.product-container {
|
.product-container {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
|
max-width: 1690px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-left {
|
.product-left {
|
||||||
|
|||||||
@@ -14,10 +14,12 @@
|
|||||||
flex: 1 1 50%;
|
flex: 1 1 50%;
|
||||||
/* 一行2个 */
|
/* 一行2个 */
|
||||||
min-width: 180px;
|
min-width: 180px;
|
||||||
|
max-width: 836px;
|
||||||
|
max-height:530px;
|
||||||
/* 保证图片显示 */
|
/* 保证图片显示 */
|
||||||
/* max-width: calc(50% - 10px); */
|
/* max-width: calc(50% - 10px); */
|
||||||
/* 适配gap */
|
/* 适配gap */
|
||||||
height: 240px;
|
/* height: 240px; */
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
|
||||||
display: flex;
|
display: flex;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@@ -51,7 +53,7 @@
|
|||||||
|
|
||||||
/* 标题:超出一行显示省略号(左对齐) */
|
/* 标题:超出一行显示省略号(左对齐) */
|
||||||
.product-card-title2 {
|
.product-card-title2 {
|
||||||
font-size: clamp(12px, 2vw, 18px);
|
font-size:clamp(0.8rem, 1.3vw, 1.9rem);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #333;
|
color: #333;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
@@ -66,9 +68,10 @@
|
|||||||
|
|
||||||
/* 描述:超出2行显示省略号(左对齐) */
|
/* 描述:超出2行显示省略号(左对齐) */
|
||||||
.product-card-desc2 {
|
.product-card-desc2 {
|
||||||
font-size: clamp(12px, 1.8vw, 14px);
|
font-size: clamp(1rem, 1.3vw, 1.5rem);
|
||||||
color: #656565;
|
color: #656565;
|
||||||
margin-bottom: 15px;
|
margin-top: clamp(12px,1vw, 15px);
|
||||||
|
margin-bottom: clamp(20px,1vw, 50px);
|
||||||
letter-spacing: 0.1px;
|
letter-spacing: 0.1px;
|
||||||
/* 超出2行显示省略号核心样式 */
|
/* 超出2行显示省略号核心样式 */
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
@@ -85,20 +88,24 @@
|
|||||||
|
|
||||||
/* 图片容器:确保移动端显示 */
|
/* 图片容器:确保移动端显示 */
|
||||||
.product-card-img2 {
|
.product-card-img2 {
|
||||||
flex: 1;
|
/* flex: 1; */
|
||||||
display: flex;
|
/* display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
min-width: 70px;
|
min-width: 70px; */
|
||||||
|
flex:1;
|
||||||
|
max-width: 510px;
|
||||||
|
max-height:510px ;
|
||||||
/* 强制保留图片区域,避免被挤压 */
|
/* 强制保留图片区域,避免被挤压 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-card-img2 img {
|
.product-card-img2 img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
max-height: 144px;
|
object-fit: contain
|
||||||
min-height: 80px;
|
/* object-fit: contain;
|
||||||
object-fit: contain;
|
max-width: 510px;
|
||||||
|
max-width: 510px; */
|
||||||
/* 保持图片比例完整,不拉伸 */
|
/* 保持图片比例完整,不拉伸 */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,8 +118,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.product-card-link2 img {
|
.product-card-link2 img {
|
||||||
width: clamp(60px, 4vw, 76px);
|
width: clamp(2.5rem, 5vw, 4.5rem);
|
||||||
margin: 0;
|
height: auto;
|
||||||
|
object-fit: contain;
|
||||||
/* 清除居中margin */
|
/* 清除居中margin */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
/* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */
|
/* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */
|
||||||
.product-card-box {
|
.product-card-box {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
margin: clamp(1rem, 2vw, 1.5rem) auto 0;
|
/* margin: clamp(1rem, 2vw, 1.5rem) auto 0; */
|
||||||
padding: 0;
|
margin:0 auto;
|
||||||
|
padding-top: 40px;
|
||||||
|
max-width: 1690px;
|
||||||
|
padding-bottom:45px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-card-container {
|
.product-card-container {
|
||||||
@@ -12,20 +15,23 @@
|
|||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
/* 关键修改1:增大间距值(原 clamp(0.3rem, 0.5vw, 0.36rem) → 现在放大2倍左右) */
|
/* 关键修改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; /* 保持无内边距,避免间距叠加 */
|
padding: 0; /* 保持无内边距,避免间距叠加 */
|
||||||
|
max-width: 1690px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 新增:外层容器(承载圆角、阴影、尺寸,避免缩放时圆角丢失) */
|
/* 新增:外层容器(承载圆角、阴影、尺寸,避免缩放时圆角丢失) */
|
||||||
.product-card-wrap {
|
.product-card-wrap {
|
||||||
/* 原卡片的宽度计算逻辑移到外层 */
|
/* 原卡片的宽度计算逻辑移到外层 */
|
||||||
width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4));
|
width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4));
|
||||||
flex: none;
|
flex: 1;
|
||||||
border-radius: clamp(0.375rem, 1vw, 0.5rem); /* 外层承载圆角 */
|
border-radius: clamp(0.375rem, 1vw, 0.5rem); /* 外层承载圆角 */
|
||||||
overflow: hidden; /* 裁剪内层缩放的卡片 */
|
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); /* 外层承载阴影 */
|
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;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
max-width: 410px;
|
||||||
|
max-height: 560px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ######################################################################### */
|
/* ######################################################################### */
|
||||||
@@ -33,6 +39,7 @@
|
|||||||
/* ######################################################################### */
|
/* ######################################################################### */
|
||||||
@media (max-width: 1023px) {
|
@media (max-width: 1023px) {
|
||||||
/* 卡片容器:移动端特有 */
|
/* 卡片容器:移动端特有 */
|
||||||
|
|
||||||
.product-card-container {
|
.product-card-container {
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
}
|
}
|
||||||
@@ -160,11 +167,17 @@
|
|||||||
/* 关键修改3:PC端同步增大gap间距(与通用容器一致) */
|
/* 关键修改3:PC端同步增大gap间距(与通用容器一致) */
|
||||||
gap: clamp(0.6rem, 1vw, 0.8rem);
|
gap: clamp(0.6rem, 1vw, 0.8rem);
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
max-width: 1690px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 外层容器PC端适配:高度占满容器 */
|
/* 外层容器PC端适配:高度占满容器 */
|
||||||
.product-card-wrap {
|
.product-card-wrap {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
max-width: 410px;
|
||||||
|
max-height: 560px;
|
||||||
|
flex:1
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 卡片核心:PC端调整(移除圆角、阴影,添加will-change) */
|
/* 卡片核心:PC端调整(移除圆角、阴影,添加will-change) */
|
||||||
@@ -178,6 +191,8 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
will-change: transform; /* 优化渲染,避免圆角异常 */
|
will-change: transform; /* 优化渲染,避免圆角异常 */
|
||||||
|
max-width: 410px;
|
||||||
|
max-height: 560px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 卡片hover效果:PC端特有 */
|
/* 卡片hover效果:PC端特有 */
|
||||||
@@ -201,6 +216,8 @@
|
|||||||
margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem);
|
margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
|
border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
|
||||||
|
max-width: 410px;
|
||||||
|
max-height: 350px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 产品图片:PC端特有 */
|
/* 产品图片:PC端特有 */
|
||||||
@@ -213,17 +230,16 @@
|
|||||||
|
|
||||||
/* 文字容器:PC端固定占比 */
|
/* 文字容器:PC端固定占比 */
|
||||||
.product-card-text {
|
.product-card-text {
|
||||||
flex: 0 0 15%;
|
/* flex: 0 0 15%; */
|
||||||
display: flex; /* 补充display: flex,原代码遗漏 */
|
display: flex; /* 补充display: flex,原代码遗漏 */
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
padding-left: clamp(1.5rem, 2vw, 3rem);
|
||||||
padding-right: clamp(0.8rem, 2vw, 1.5rem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 标题样式:PC端特有 */
|
/* 标题样式:PC端特有 clamp(0.8rem, 1.3vw, 1.5rem);*/
|
||||||
.product-card-title {
|
.product-card-title {
|
||||||
font-size: clamp(0.8rem, 1.3vw, 1.2rem);
|
font-size:clamp(0.8rem, 1.3vw, 1.9rem);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #333;
|
color: #333;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
@@ -234,25 +250,28 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 描述样式:PC端固定2行高度 */
|
/* 描述样式:PC端固定2行高度 clamp(0.7rem, 1.1vw, 0.9rem);*/
|
||||||
.product-card-desc {
|
.product-card-desc {
|
||||||
font-size: clamp(0.7rem, 1.1vw, 0.9rem);
|
font-size: clamp(1rem, 1.3vw, 1.5rem);
|
||||||
color: #656565;
|
color: #656565;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
line-height: 1.4;
|
padding-top:clamp(0.4rem, 3vw, 0.9rem) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 链接图标容器:PC端固定占比 */
|
/* 链接图标容器:PC端固定占比 */
|
||||||
.product-card-link {
|
.product-card-link {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
flex: 0 0 12%;
|
flex: 1;
|
||||||
padding-left: clamp(0.8rem, 2vw, 1.5rem);
|
padding-left: clamp(1.5rem, 2vw, 3rem);
|
||||||
display: flex; /* 补充display: flex,确保图标垂直居中 */
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
/* 1rem=16px,3.125rem=50px */
|
||||||
|
/* padding-top: clamp(1rem, 2vw, 3.125rem);
|
||||||
|
padding-bottom: clamp(1rem, 5vw, 3.125rem); */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 链接图标:PC端特有 */
|
/* 链接图标:PC端特有 */
|
||||||
|
|||||||
Reference in New Issue
Block a user