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