Files
hesu-JT/css/mobile.css
T
2026-08-27 11:54:26 +08:00

435 lines
15 KiB
CSS

/* ============================================================
mobile.css — 全站移动端适配增强(最后加载,覆盖所有页面)
断点:≤768px(手机) · ≤1024px(平板)
============================================================ */
/* ============================================================
平板(≤1024px)
============================================================ */
@media (max-width: 1024px) {
:root { --header-h: 64px; --container: 100%; }
.container { padding-inline: 20px; }
/* 按钮:触屏最小点击区 */
.btn { min-height: 44px; padding-inline: 22px; }
/* 表单:触摸友好 */
.ct-input, .ct-selectwrap select { min-height: 48px; font-size: 16px; }
.ct-textarea { font-size: 16px; }
/* 卡片 hover 效果关闭(触屏无 hover) */
.bm-card__img, .ae-brand__card, .news-card { transition: none; }
.bm-card:hover .bm-card__img { transform: none; }
.ae-brand:hover .ae-brand__card { transform: none; }
}
/* ============================================================
手机(≤768px)
============================================================ */
@media (max-width: 768px) {
:root { --header-h: 56px; }
.container { padding-inline: 16px; }
.main-nav{
padding: 30px 26px 32px;
}
/* ---------- 首页 hero ---------- */
.hero { min-height: auto; padding-top: var(--header-h); }
.hero-content { padding-top: 20px; padding-bottom: 30px; }
.hero-title { font-size: clamp(2.2rem, 10vw, 3.5rem); }
.hero-sub { font-size: 0.85rem; margin-top: 12px; }
.hero-tag { font-size: 0.8rem; }
.btn-explore { margin-top: 24px; }
.hero-stats { padding: 20px 0; }
.stats-grid { grid-template-columns: 1fr 1fr; gap: 20px 12px; }
.stat-num { font-size: clamp(1.3rem, 5vw, 1.8rem); }
.stat-label { font-size: 0.62rem; }
/* ---------- bento 业务格 ---------- */
.bento-grid {
grid-template-columns: 1fr;
grid-auto-rows: auto;
gap: 12px;
}
.cell-banner {
grid-column: auto; grid-row: auto;
min-height: 120px; padding: 20px;
}
.banner-title { font-size: 1.3rem; }
.cell-media { min-height: 200px; }
.cell-title { font-size: 1rem; }
.cell-auto { min-height: 200px; }
/* ---------- 地图 ---------- */
.map-wrap { margin: 4px auto 16px; }
/* ---------- 卡片轮播 ---------- */
.network-card { flex: 0 0 82vw; height: 260px; }
/* ---------- 合作伙伴 ---------- */
.partner { padding: 56px 0; }
.partner-overlay {
padding: 24px 20px;
border-radius: var(--radius);
}
.partner-title { font-size: 1.1rem; }
.partner-features { grid-template-columns: repeat(4, 1fr); gap: 12px 8px; margin-top: 20px; }
.pf-ico img { width: 40px; height: 40px; }
.partner-features strong { font-size: 0.62rem; }
/* ---------- 新闻 ---------- */
.news { padding: 56px 0; }
.news-head { margin-bottom: 24px; gap: 12px; }
.news-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
.news-img { aspect-ratio: 16/9; }
.news-title { font-size: 1rem; }
.news-meta { font-size: 0.7rem; }
/* ---------- 页脚 ---------- */
.site-footer { padding-top: 36px; }
.footer-top {
align-items: center; gap: 16px;
padding-bottom: 24px;
}
.footer-social { gap: 10px; }
.social { width: 38px; height: 38px; }
.social svg { width: 15px; height: 15px; }
.footer-grid {
grid-template-columns: 1fr 1fr;
gap: 28px 16px;
padding: 28px 0;
}
.footer-intro { grid-column: 1 / -1; }
.footer-slogan { font-size: 0.85rem; }
.footer-contact { font-size: 0.8rem; }
.footer-col h4 { font-size: 0.88rem; margin-bottom: 12px; }
.footer-col ul { gap: 8px; font-size: 0.82rem; }
.footer-bottom { padding: 16px 0; font-size: 0.75rem; }
.footer-bottom .container { flex-direction: column; gap: 8px; text-align: center; }
/* ---------- 业务页 hero(business.css 共享) ---------- */
.bp-hero { min-height: 155px; padding-bottom: 30px; }
.bp-hero__copy { padding-top: 20px; }
.bp-hero__title { font-size: clamp(2rem, 8vw, 3rem); letter-spacing: 0.06em; }
.bp-hero__sub { font-size: 0.95rem; margin-top: 12px; }
.bp-hero__tag { font-size: 0.82rem; margin-top: 8px; }
.bp-hero .btn-explore { margin-top: 22px; }
/* ---------- development-history 专属(完全覆盖桌面布局) ---------- */
.dh-hero { min-height: 155px; }
.dh-hero .bp-hero__copy { padding-top: calc(var(--header-h) + 16px); padding-bottom: 20px; }
.dh-line--lg { font-size: clamp(2rem, 8vw, 3.2rem); margin-bottom: 0.6rem; }
.dh-line--sm { font-size: clamp(1.3rem, 5.5vw, 2.2rem); }
.dh-timeline-section { padding: 40px 0 64px; }
.dh-head {
flex-direction: column !important;
align-items: flex-start !important;
gap: 12px; margin-bottom: 36px;
}
.dh-head__title { font-size: 1.5rem; }
.dh-head__arrow { width: 48px; height: 48px; }
/* 时间线 → Grid 单列(每元素独占一行,彻底解决 flex 重叠) */
.dh-route { display: block !important; overflow: visible; }
.dh-rail, .dh-rail--1, .dh-rail--2 {
display: grid !important;
grid-template-columns: 1fr !important;
max-width: none !important;
width: 100% !important;
gap: 0 !important;
}
.dh-stage {
display: block !important;
width: 100% !important;
flex: none !important;
min-width: 0 !important;
position: static !important;
padding: 12px 0 !important;
box-sizing: border-box !important;
grid-row: auto !important;
clear: both !important;
float: none !important;
}
/* 节点 → 隐藏原元素,用 stage 的伪元素画分隔线 */
.dh-node { display: none !important; }
.dh-stage:not(:last-child)::after {
content: "";
display: block;
width: 100%;
height: 2px;
background: #d9dee6;
margin-top: 20px;
position: relative;
}
.dh-stage:not(:last-child)::before {
content: "📅";
display: block;
text-align: center;
font-size: 18px;
line-height: 1;
margin-top: 8px;
position: relative;
z-index: 1;
background: var(--surface-light);
width: 36px;
height: 36px;
border-radius: 50%;
margin-inline: auto;
display: flex;
align-items: center;
justify-content: center;
margin-top: -19px;
box-shadow: 0 0 0 4px var(--surface-light);
}
.dh-node__cal {
position: relative; z-index: 1;
width: 32px; height: 32px;
display: flex; align-items: center; justify-content: center;
background: var(--surface-light);
border-radius: 50%;
padding: 7px;
}
.dh-node__cal svg { width: 100%; height: 100%; color: var(--orange-700); }
.dh-node__line {
position: absolute;
top: 50%; left: 0; right: 0;
width: auto; height: 2px;
margin: 0;
transform: translateY(-50%);
background: #d9dee6;
}
.dh-node__dot { display: none !important; }
.dh-fold { height: 0 !important; overflow: hidden !important; display: none !important; }
.dh-fold__line, .dh-fold__cal { display: none !important; }
/* 阶段卡片 → 图左文右 */
.dh-stage__card {
display: flex !important;
flex-direction: row !important;
gap: 16px;
align-items: flex-start !important;
width: 100%;
}
.dh-stage__img {
width: 90px !important;
height: 90px !important;
aspect-ratio: 1 !important;
object-fit: cover;
flex-shrink: 0;
border-radius: var(--radius);
box-shadow: 0 6px 18px rgba(16,24,40,.12);
}
.dh-stage__body { padding-top: 0; flex: 1; min-width: 0; }
.dh-stage__year { font-size: 0.95rem; margin-bottom: 6px; }
.dh-stage__text { font-size: 0.82rem; line-height: 1.6; }
/* ---------- 业务页 intro(business.css 共享) ---------- */
.bp-intro { padding: 56px 0 48px; }
.bp-intro__grid { grid-template-columns: 1fr; gap: 40px; }
.bp-intro__text .bp-h2 { font-size: 1.6rem; margin-bottom: 20px; }
.bp-body { font-size: 0.95rem; }
.bp-caps { grid-template-columns: repeat(2, 1fr); gap: 16px 12px; margin-top: 32px; }
.bp-cap__ico { width: 42px; height: 42px; }
.bp-cap__label { font-size: 0.78rem; }
.bp-intro__img { aspect-ratio: 4/3; }
/* ---------- auto-export 专属 ---------- */
.ae-showcase__head { margin-bottom: 32px; }
.ae-showcase { padding: 20px 0 64px; }
.ae-showcase__img { height: 220px; }
.ae-brands { padding: 32px 0 64px; }
.ae-brands__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
.ae-brand__name { font-size: 0.82rem; margin-top: 14px; }
.ae-models { padding: 64px 0; }
.ae-models__tags { gap: 8px; margin-top: 28px; }
.ae-models__tags li { font-size: 0.75rem; padding: 7px 12px; }
.ae-region { padding: 64px 0 40px; }
.ae-region__head { margin-bottom: 32px; }
.ae-map { aspect-ratio: 1135 / 647; height: auto; }
.ae-marker__label { display: none; }
.ae-map__legend { display: flex; margin-top: 16px; }
/* ---------- building-materials 专属 ---------- */
.bm-stock__frame { padding: 0 16px; }
.bm-products { padding: 56px 0 24px; }
.bm-products__head { margin-bottom: 32px; }
.bm-products__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
.bm-card__name { font-size: 0.78rem; margin-top: 12px; }
.bm-viewmore, .ae-viewmore { padding: 32px 0 72px; }
/* ---------- after-sales 专属 ---------- */
.as-services { padding: 56px 0 64px; }
.as-services__head { margin-bottom: 36px; }
.as-services__grid { grid-template-columns: repeat(2, 1fr); gap: 36px 16px; }
.as-svc__ring { width: 120px; }
.as-svc__name { font-size: 0.85rem; }
.as-region { padding: 64px 0 72px; }
.as-region__head { margin-bottom: 32px; }
.as-region__grid { grid-template-columns: 1fr; max-width: 400px; margin-inline: auto; }
.as-loc__body { padding: 20px 20px 24px; }
.as-loc__city { font-size: 1.2rem; }
.as-loc__desc { font-size: 0.85rem; }
/* ---------- global-logistics 专属 ---------- */
.gl-services { padding: 56px 0 24px; }
.gl-services__head { margin-bottom: 32px; }
.gl-services__grid { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; }
.gl-svc__ico { width: 90px; height: 90px; }
.gl-svc__name { font-size: 0.85rem; }
.gl-port__frame { padding: 0 16px; }
/* ---------- about-us 专属 ---------- */
.au-gps { padding: 56px 0; }
.au-gps__title { font-size: 1.5rem; }
.au-gps__text { font-size: 0.9rem; margin-bottom: 36px; }
.au-gps__cards { grid-template-columns: repeat(2, 1fr); gap: 12px; }
.au-gps__wide { margin-top: 48px; padding: 0 16px; }
.au-gps__split {
grid-template-columns: 1fr;
gap: 32px; margin-top: 48px; padding: 0 16px;
}
.au-gps__feature-img { padding: 28px 24px; min-height: 300px; }
.au-gps__feature-list p { line-height: 2.5; }
/* ---------- news 专属 ---------- */
.nw-hero { min-height: 35vh; }
.nw-hero__title { font-size: clamp(2.5rem, 14vw, 5rem); }
.nw-listing { padding: 0px 0 72px; }
.nw-tabs { margin-bottom: 32px; gap: 0; }
.nw-tab { padding: 12px 18px; font-size: 0.88rem; }
.nw-row {
grid-template-columns: 1fr;
height: auto;
}
.nw-row__body { padding: 24px 20px; }
.nw-row__title { font-size: 1.05rem; -webkit-line-clamp: 3; }
.nw-row__excerpt { font-size: 0.88rem; -webkit-line-clamp: 3; }
.nw-row__more { padding: 9px 20px; font-size: 0.72rem; }
.nw-row__media { height: 220px; min-height: 0; }
.nw-pagination { gap: 6px; margin-top: 40px; }
.nw-page { min-width: 38px; height: 38px; font-size: 0.85rem; }
/* ---------- news-detail 专属 ---------- */
.nd-body { padding: 0 16px 72px; }
.nd-back { margin-bottom: 28px; padding-top: 24px; font-size: 0.82rem; }
.nd-title { font-size: 1.4rem; margin-bottom: 28px; }
.nd-meta { gap: 12px; margin-bottom: 18px; }
.nd-meta__cat { font-size: 0.68rem; padding: 3px 10px; }
.nd-article p { font-size: 0.95rem; line-height: 1.85; margin-bottom: 20px; }
.nd-figure { margin: 4px 0 24px; }
.nd-figure img { border-radius: var(--radius); }
.nd-nav { grid-template-columns: 1fr; gap: 12px; margin-top: 48px; }
.nd-nav__item { padding: 14px 18px; }
.nd-nav__title { font-size: 0.88rem; }
/* ---------- contact 专属 ---------- */
.ct-hero { min-height: 40vh; }
.ct-hero__title { font-size: clamp(2rem, 8vw, 3.2rem); }
.ct-form-section { padding: 48px 0 64px; }
.ct-form__grid { grid-template-columns: 1fr; gap: 18px; }
.ct-label { font-size: 0.82rem; margin-bottom: 6px; }
.ct-input, .ct-selectwrap select {
padding: 12px 14px;
font-size: 16px;
min-height: 48px;
}
.ct-textarea { min-height: 110px; }
.ct-submit {
width: 100%; justify-content: center;
padding: 15px 28px; margin-top: 24px;
}
.ct-map { padding: 36px 0 48px; }
.ct-map__frame { height: 300px; }
.ct-map__info { padding: 24px 20px; }
.ct-map__info-title { font-size: 1.3rem; margin-bottom: 20px; }
.ct-map__item { margin-bottom: 14px; }
.ct-map__item dt { font-size: 0.68rem; }
.ct-map__item dd { font-size: 0.9rem; }
.ct-map__item img { width: 18px; height: 18px; }
/* ---------- global-presence 专属 ---------- */
.gp-main { padding-top: var(--header-h); }
.au-slogan-layer{
padding: 12px 16px;
}
.au-inner {
margin: 60px auto 0;
padding: 10px 16px 0;
}
}
/* ============================================================
小屏手机(≤480px)
============================================================ */
@media (max-width: 480px) {
.container { padding-inline: 12px; }
.hero-title { letter-spacing: 0.2em; }
.hero-tag { display: none; }
.stats-grid { grid-template-columns: 1fr 1fr; gap: 16px 8px; }
.stat-num { font-size: 1.2rem; }
.bento-grid { gap: 10px; }
.cell-banner { padding: 16px; }
.banner-title { font-size: 1.1rem; }
.cell-media { min-height: 170px; }
.partner-features { grid-template-columns: repeat(2, 1fr); gap: 10px; }
.pf-ico img { width: 36px; height: 36px; }
.footer-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
.bp-hero__title { letter-spacing: 0.04em; }
.bp-caps { grid-template-columns: 1fr 1fr; gap: 12px 8px; }
.ae-brands__grid { grid-template-columns: repeat(2, 1fr); }
.bm-products__grid { grid-template-columns: repeat(2, 1fr); }
.as-services__grid { grid-template-columns: repeat(2, 1fr); margin-inline: auto; }
.gl-services__grid { grid-template-columns: repeat(2, 1fr); margin-inline: auto; }
.nw-tabs { flex-direction: column; border-bottom: none; }
.nw-tab { border-bottom: 1px solid var(--line); }
.nw-tab.is-active::after { display: none; }
.nw-tab.is-active { color: var(--orange-700); font-weight: 700; }
}
/* ============================================================
触屏优化(指针粗 = 触屏设备)
============================================================ */
@media (pointer: coarse) {
/* 去掉 hover 态(触屏无 hover,避免粘滞) */
.btn:hover { transform: none; }
.social:hover { transform: none; background: transparent; }
.bm-card:hover .bm-card__name { color: inherit; }
/* 滚动条:不显示(触屏原生滑动) */
::-webkit-scrollbar { display: none; }
* { scrollbar-width: none; }
}
/* ============================================================
安全区适配(刘海屏/底部横条)
============================================================ */
@supports (padding: max(0px)) {
.site-header {
padding-top: env(safe-area-inset-top);
height: calc(var(--header-h) + env(safe-area-inset-top));
}
.footer-bottom {
padding-bottom: calc(16px + env(safe-area-inset-bottom));
}
}
/* ============================================================
移动端性能:禁用重效果
============================================================ */
@media (max-width: 768px) {
* { will-change: auto !important; }
.bp-hero__bg { animation: none; }
.nw-hero__bg { animation: none; }
.ct-hero__bg { animation: none; }
}