进行了一些小修复
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
@import url("resource-meta/part-1.css");
|
||||
@import url("resource-meta/part-2.css");
|
||||
@import url("resource-meta/part-3.css");
|
||||
@import url("resource-meta/part-4.css");
|
||||
@import url("resource-meta/part-5.css");
|
||||
@@ -1,300 +0,0 @@
|
||||
/* ============================================================
|
||||
* 桌面端 .resource-download-box 基础样式
|
||||
* ============================================================ */
|
||||
|
||||
.resource-download-box {
|
||||
padding: 20px;
|
||||
background: var(--surface-page, #fff);
|
||||
border: 1px solid var(--color-line, rgba(0,0,0,0.08));
|
||||
border-radius: var(--main-radius, var(--radius, 8px));
|
||||
box-shadow: 0 2px 12px rgba(0,0,0,0.06), 0 1px 4px rgba(0,0,0,0.04);
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* v2 双栏布局 — 模仿 legacy pay-box
|
||||
* ============================================================ */
|
||||
.resource-download-box--v2 {
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.resource-download-box--v2::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
|
||||
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
|
||||
}
|
||||
|
||||
.resource-download-box__body {
|
||||
display: grid;
|
||||
grid-template-columns: 200px 1fr;
|
||||
gap: 20px;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
/* 缩略图列 */
|
||||
.resource-download-box__thumb-col {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.resource-download-box__thumb {
|
||||
width: 100%;
|
||||
aspect-ratio: 4 / 3;
|
||||
object-fit: cover;
|
||||
border-radius: var(--radius);
|
||||
background: var(--surface-2);
|
||||
}
|
||||
|
||||
.resource-download-box__pay-tag {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
left: 8px;
|
||||
}
|
||||
|
||||
/* 内容列 */
|
||||
.resource-download-box__content-col {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
/* 价格区 */
|
||||
.resource-download-box__pricing {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
.resource-download-box__original-price {
|
||||
font-size: 13px;
|
||||
color: var(--color-ink-4);
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
/* VIP 价格区 */
|
||||
.resource-download-box__vip-pricing {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.resource-download-box__vip-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
padding: 4px 10px;
|
||||
border-radius: 6px;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.resource-download-box__vip-badge--1 {
|
||||
background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.resource-download-box__vip-badge--2 {
|
||||
background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.resource-download-box__vip-badge i {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
/* 服务保障 */
|
||||
.resource-download-box__guarantees {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 12px;
|
||||
padding-top: 12px;
|
||||
border-top: 1px solid var(--color-line-soft);
|
||||
}
|
||||
|
||||
.resource-download-box__guarantee {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 12px;
|
||||
color: var(--color-success, #10B981);
|
||||
}
|
||||
|
||||
.resource-download-box__guarantee i {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* 响应式 */
|
||||
@media (max-width: 640px) {
|
||||
.resource-download-box__body {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.resource-download-box__thumb-col {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.resource-download-box__guarantees {
|
||||
gap: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
/* 头部:标题 + 价格 */
|
||||
.resource-download-box__header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
margin-bottom: 14px;
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 1px solid var(--color-line, rgba(0,0,0,0.06));
|
||||
}
|
||||
|
||||
.resource-download-box__title-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.resource-download-box__title {
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
color: var(--color-ink);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.resource-download-box__title i {
|
||||
color: var(--color-primary, #3B82F6);
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.resource-download-box__count {
|
||||
font-size: 11px;
|
||||
color: var(--color-ink-4, #8A8F98);
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* 价格标签 */
|
||||
.resource-download-box__price {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
padding: 4px 10px;
|
||||
border-radius: 20px;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.resource-download-box__price:not(.is-free) {
|
||||
color: var(--color-error, #EF4444);
|
||||
background: #FEF2F2;
|
||||
}
|
||||
|
||||
.resource-download-box__price.is-free {
|
||||
color: var(--color-success, #10B981);
|
||||
background: #F0FDF4;
|
||||
}
|
||||
|
||||
/* 空状态 */
|
||||
.resource-download-box__notice--empty {
|
||||
padding: 14px 16px;
|
||||
background: var(--surface-2, #F4F5F7);
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.resource-download-box__notice--empty p {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
color: var(--color-ink-3);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
/* 下载源列表 */
|
||||
.resource-download-box__list {
|
||||
list-style: none;
|
||||
margin: 0 0 14px;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.resource-download-box__item {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 下载按钮 */
|
||||
.resource-download-box__btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
min-height: 44px;
|
||||
padding: 10px 18px;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
background: var(--color-primary, #3B82F6);
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease, opacity 0.2s ease;
|
||||
box-shadow: 0 2px 8px rgba(59,130,246,0.25);
|
||||
}
|
||||
|
||||
.resource-download-box__btn:hover {
|
||||
background: var(--color-primary-active, #2563EB);
|
||||
box-shadow: 0 4px 14px rgba(59,130,246,0.35);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.resource-download-box__btn:active {
|
||||
transform: scale(0.97);
|
||||
transition-duration: 0.1s;
|
||||
}
|
||||
|
||||
.resource-download-box__btn i {
|
||||
font-size: 15px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.resource-download-box__btn span {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* 按钮副文案 */
|
||||
.resource-download-box__btn-sub {
|
||||
display: block;
|
||||
font-size: 11px;
|
||||
font-weight: 400;
|
||||
opacity: 0.85;
|
||||
margin-top: 2px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* 类型标签 */
|
||||
.resource-download-box__type-tag {
|
||||
display: inline-flex;
|
||||
@@ -1,300 +0,0 @@
|
||||
align-items: center;
|
||||
padding: 2px 8px;
|
||||
margin-left: auto;
|
||||
border-radius: 10px;
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
background: rgba(255,255,255,0.2);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* -- 按钮状态变体 -- */
|
||||
.resource-download-box__btn--login {
|
||||
background: var(--color-primary, #3B82F6);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--credit-low {
|
||||
background: var(--color-ink-4, #8A8F98) !important;
|
||||
box-shadow: none !important;
|
||||
cursor: not-allowed;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.resource-download-box__btn--credit-low:hover {
|
||||
transform: none !important;
|
||||
}
|
||||
|
||||
.resource-download-box__btn--paid {
|
||||
background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
|
||||
}
|
||||
|
||||
/* 提示文字区 */
|
||||
.resource-download-box__hint {
|
||||
margin: 0 0 14px;
|
||||
padding: 10px 14px;
|
||||
border-radius: 8px;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.resource-download-box__hint i {
|
||||
font-size: 13px;
|
||||
flex-shrink: 0;
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.resource-download-box__hint--login {
|
||||
color: var(--color-primary, #3B82F6);
|
||||
background: rgba(59,130,246,0.06);
|
||||
}
|
||||
|
||||
.resource-download-box__hint--login i {
|
||||
color: var(--color-primary, #3B82F6);
|
||||
}
|
||||
|
||||
.resource-download-box__hint--credit {
|
||||
color: #D97706;
|
||||
background: #FFFBEB;
|
||||
}
|
||||
|
||||
.resource-download-box__hint--credit i {
|
||||
color: #F59E0B;
|
||||
}
|
||||
|
||||
/* 验证码表单区 - bind模式隐藏 */
|
||||
.resource-download-box__captcha {
|
||||
margin: 0 0 14px;
|
||||
padding: 14px;
|
||||
border: 1px dashed var(--color-line, rgba(0,0,0,0.12));
|
||||
border-radius: 8px;
|
||||
background: var(--surface-2, #FAFAFB);
|
||||
}
|
||||
|
||||
/* bind 模式:容器保留但视觉隐藏(仍作为挂载点) */
|
||||
.resource-download-box__captcha--hidden {
|
||||
padding: 0 !important;
|
||||
border: none !important;
|
||||
background: transparent !important;
|
||||
margin: 0 !important;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
/* 极验bind按钮也隐藏,通过JS触发 */
|
||||
}
|
||||
.resource-download-box__captcha--hidden > * {
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* 底部免责 */
|
||||
.resource-download-box__footer {
|
||||
margin: 0;
|
||||
padding-top: 12px;
|
||||
border-top: 1px solid var(--color-line, rgba(0,0,0,0.06));
|
||||
}
|
||||
|
||||
.resource-download-box__notice-text {
|
||||
margin: 0;
|
||||
font-size: 11px;
|
||||
line-height: 1.6;
|
||||
color: var(--color-ink-4, #8A8F98);
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.resource-download-box__notice-text i {
|
||||
font-size: 12px;
|
||||
flex-shrink: 0;
|
||||
margin-top: 2px;
|
||||
color: var(--color-ink-4, #8A8F98);
|
||||
}
|
||||
|
||||
/* 被拦截态(登录/积分不足)不透明 */
|
||||
.resource-download-box.is-blocked {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
|
||||
/* ============================================================
|
||||
* v4.3 资源侧栏下载卡片(垂直布局,适合 300px 侧栏宽度)
|
||||
* ============================================================ */
|
||||
|
||||
.resource-sidebar-sticky {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
/* 下载卡片 */
|
||||
.resource-download-card {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.resource-download-card__thumb {
|
||||
width: 100%;
|
||||
aspect-ratio: 16 / 10;
|
||||
overflow: hidden;
|
||||
border-radius: 8px 8px 0 0;
|
||||
}
|
||||
|
||||
.resource-download-card__thumb img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.resource-download-card__body {
|
||||
padding: 16px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.resource-download-card__title {
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
line-height: 1.35;
|
||||
color: var(--color-ink);
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.resource-download-card__desc {
|
||||
font-size: 13px;
|
||||
color: var(--color-ink-4);
|
||||
line-height: 1.5;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 价格 */
|
||||
.resource-download-card__price {
|
||||
padding: 6px 0;
|
||||
}
|
||||
|
||||
.resource-price {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.resource-price--paid {
|
||||
color: var(--color-error, #ef4444);
|
||||
}
|
||||
|
||||
.resource-price--paid i {
|
||||
color: #f59e0b;
|
||||
}
|
||||
|
||||
.resource-price--paid strong {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.resource-price--paid small {
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: var(--color-ink-4);
|
||||
}
|
||||
|
||||
.resource-price--free {
|
||||
color: var(--color-success, #34a853);
|
||||
}
|
||||
|
||||
/* 下载按钮区 */
|
||||
.resource-download-card__actions {
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
/* 已下载数 */
|
||||
.resource-download-card__sales {
|
||||
font-size: 12px;
|
||||
color: var(--color-ink-4);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
/* 演示链接 */
|
||||
.resource-download-card__demo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 6px;
|
||||
padding: 8px;
|
||||
border-radius: 6px;
|
||||
background: var(--surface-3);
|
||||
color: var(--color-ink-3);
|
||||
font-size: 13px;
|
||||
text-decoration: none;
|
||||
transition: background 0.2s, color 0.2s;
|
||||
}
|
||||
|
||||
.resource-download-card__demo:hover {
|
||||
background: var(--color-primary-soft, rgba(240, 68, 148, 0.12));
|
||||
color: var(--color-primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* 资源属性卡片 */
|
||||
.resource-meta-card__title {
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
margin: 0 0 10px;
|
||||
color: var(--color-ink);
|
||||
}
|
||||
|
||||
.resource-meta-card__list {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.resource-meta-card__row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.resource-meta-card__row dt {
|
||||
color: var(--color-ink-4);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.resource-meta-card__row dd {
|
||||
color: var(--color-ink);
|
||||
font-weight: 500;
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* 服务保障卡片 */
|
||||
.resource-guarantee-card__list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
font-size: 12px;
|
||||
color: var(--color-ink-4);
|
||||
}
|
||||
|
||||
.resource-guarantee-card__list span {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.resource-guarantee-card__list i {
|
||||
color: var(--color-success, #34a853);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@@ -1,300 +0,0 @@
|
||||
/* 移动端:侧栏变为正文下方(由 layout.css 统一处理隐藏) */
|
||||
|
||||
/* ============================================================
|
||||
* v5.0 移动端下载区域重构(992px 以下生效)
|
||||
*
|
||||
* 设计原则:
|
||||
* - 块级卡片容器,匹配 .theme-box.box-body.radius8 风格
|
||||
* - 下载项纵向堆叠,每项独立卡片,触摸友好(min-height:48px)
|
||||
* - 纯色配色,禁止渐变/紫色,使用 Font Awesome 图标包
|
||||
* ============================================================ */
|
||||
|
||||
/* ----- 移动端下载区域容器(块级卡片) ----- */
|
||||
.resource-mobile-download-bar {
|
||||
display: none; /* 默认隐藏,媒体查询中启用 */
|
||||
margin: 16px 0;
|
||||
background: var(--surface-page, #fff);
|
||||
border: 1px solid var(--color-line, rgba(0,0,0,0.08));
|
||||
border-radius: var(--main-radius, var(--radius, 8px));
|
||||
box-shadow: 0 2px 12px rgba(0,0,0,0.06), 0 1px 4px rgba(0,0,0,0.04);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* ===== resource-download-box 组件移动端样式 ===== */
|
||||
|
||||
/* 组件根 */
|
||||
.resource-mobile-download-bar .resource-download-box {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box.is-blocked {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* ---- 头部区:标题 + 价格 + 源数量 ---- */
|
||||
.resource-mobile-download-bar .resource-download-box__header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
padding: 16px 16px 12px;
|
||||
border-bottom: 1px solid var(--color-line, rgba(0,0,0,0.06));
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__title-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__title {
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
color: var(--color-ink);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__title i {
|
||||
color: var(--color-primary, #3B82F6);
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__count {
|
||||
font-size: 11px;
|
||||
color: var(--color-ink-4, #8A8F98);
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* 头部价格标签 */
|
||||
.resource-mobile-download-bar .resource-download-box__price {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
padding: 4px 10px;
|
||||
border-radius: 20px;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__price:not(.is-free) {
|
||||
color: var(--color-error, #EF4444);
|
||||
background: #FEF2F2;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__price.is-free {
|
||||
color: var(--color-success, #10B981);
|
||||
background: #F0FDF4;
|
||||
}
|
||||
|
||||
/* ---- 空状态提示 ---- */
|
||||
.resource-mobile-download-bar .resource-download-box__notice--empty {
|
||||
margin: 16px;
|
||||
padding: 14px 16px;
|
||||
background: var(--surface-2, #F4F5F7);
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__notice--empty p {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
color: var(--color-ink-3);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__notice--empty i {
|
||||
color: var(--color-primary, #3B82F6);
|
||||
}
|
||||
|
||||
/* ---- 下载源列表 ---- */
|
||||
.resource-mobile-download-bar .resource-download-box__list {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 12px 16px 16px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
/* ---- 下载项(每个一行) ---- */
|
||||
.resource-mobile-download-bar .resource-download-box__item {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* ---- 下载按钮(核心交互元素)---- */
|
||||
.resource-mobile-download-bar .resource-download-box__btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
min-height: 50px; /* 触摸友好 */
|
||||
padding: 12px 20px;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
background: var(--color-primary, #3B82F6);
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease, opacity 0.2s ease;
|
||||
box-shadow: 0 2px 8px rgba(59,130,246,0.3);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__btn i {
|
||||
font-size: 16px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__btn span {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* 按钮副文案(来源名称 / 余额信息)*/
|
||||
.resource-mobile-download-bar .resource-download-box__btn-sub {
|
||||
display: block;
|
||||
font-size: 11px;
|
||||
font-weight: 400;
|
||||
opacity: 0.85;
|
||||
margin-top: 2px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* 类型标签(网盘/外链)*/
|
||||
.resource-mobile-download-bar .resource-download-box__type-tag {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 2px 8px;
|
||||
margin-left: auto;
|
||||
border-radius: 10px;
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
background: rgba(255,255,255,0.2);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* -- 按钮状态变体 -- */
|
||||
|
||||
/* 正常态 hover */
|
||||
.resource-mobile-download-bar .resource-download-box__btn:hover {
|
||||
background: var(--color-primary-active, #2563EB);
|
||||
box-shadow: 0 4px 14px rgba(59,130,246,0.4);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
/* active 按压反馈 */
|
||||
.resource-mobile-download-bar .resource-download-box__btn:active {
|
||||
transform: scale(0.97);
|
||||
transition-duration: 0.1s;
|
||||
}
|
||||
|
||||
/* 登录拦截态 */
|
||||
.resource-mobile-download-bar .resource-download-box__btn--login {
|
||||
background: var(--color-primary, #3B82F6);
|
||||
}
|
||||
|
||||
/* 余额不足态(禁用外观)*/
|
||||
.resource-mobile-download-bar .resource-download-box__btn--credit-low {
|
||||
background: var(--color-ink-4, #8A8F98);
|
||||
box-shadow: none;
|
||||
cursor: not-allowed;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__btn--credit-low:hover {
|
||||
transform: none;
|
||||
box-shadow: none;
|
||||
background: var(--color-ink-4, #8A8F98);
|
||||
}
|
||||
|
||||
/* 付费下载态 */
|
||||
.resource-mobile-download-bar .resource-download-box__btn--paid {
|
||||
background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
|
||||
}
|
||||
|
||||
/* ---- 提示文字区 ---- */
|
||||
.resource-mobile-download-bar .resource-download-box__hint {
|
||||
margin: 0 16px 12px;
|
||||
padding: 10px 14px;
|
||||
border-radius: 8px;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__hint i {
|
||||
font-size: 14px;
|
||||
flex-shrink: 0;
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__hint--login {
|
||||
color: var(--color-primary, #3B82F6);
|
||||
background: rgba(59,130,246,0.06);
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__hint--login i {
|
||||
color: var(--color-primary, #3B82F6);
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__hint--credit {
|
||||
color: #D97706;
|
||||
background: #FFFBEB;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__hint--credit i {
|
||||
color: #F59E0B;
|
||||
}
|
||||
|
||||
/* ---- 验证码表单区 ---- */
|
||||
.resource-mobile-download-bar .resource-download-box__captcha {
|
||||
margin: 0 16px 16px;
|
||||
padding: 14px;
|
||||
border: 1px dashed var(--color-line, rgba(0,0,0,0.12));
|
||||
border-radius: 8px;
|
||||
background: var(--surface-2, #FAFAFB);
|
||||
}
|
||||
|
||||
/* ---- 底部免责声明 ---- */
|
||||
.resource-mobile-download-bar .resource-download-box__footer {
|
||||
margin: 0;
|
||||
padding: 12px 16px;
|
||||
border-top: 1px solid var(--color-line, rgba(0,0,0,0.06));
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__notice-text {
|
||||
margin: 0;
|
||||
font-size: 11px;
|
||||
line-height: 1.6;
|
||||
color: var(--color-ink-4, #8A8F98);
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__notice-text i {
|
||||
font-size: 12px;
|
||||
flex-shrink: 0;
|
||||
margin-top: 2px;
|
||||
@@ -1,283 +0,0 @@
|
||||
color: var(--color-ink-4, #8A8F98);
|
||||
}
|
||||
|
||||
|
||||
/* ----- 移动端悬浮下载按钮(FAB) ----- */
|
||||
.resource-mobile-fab {
|
||||
display: none; /* 默认隐藏,移动端媒体查询中启用 */
|
||||
position: fixed;
|
||||
bottom: 72px;
|
||||
right: 20px;
|
||||
z-index: 950;
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 50%;
|
||||
background: var(--color-primary, #3B82F6);
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
display: flex; /* 覆盖上面的 display:none */
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 22px;
|
||||
box-shadow: 0 4px 16px rgba(59,130,246,0.35), 0 2px 6px rgba(0,0,0,0.1);
|
||||
opacity: 0;
|
||||
transform: scale(0.8) translateY(10px);
|
||||
transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease;
|
||||
pointer-events: none;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
animation: fabFadeIn 0.5s 1.5s forwards;
|
||||
}
|
||||
|
||||
@keyframes fabFadeIn {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: scale(1) translateY(0);
|
||||
pointer-events: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.resource-mobile-fab:hover {
|
||||
transform: scale(1.08) translateY(-2px);
|
||||
box-shadow: 0 6px 24px rgba(59,130,246,0.45), 0 4px 10px rgba(0,0,0,0.15);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.resource-mobile-fab:active {
|
||||
transform: scale(0.95);
|
||||
transition-duration: 0.1s;
|
||||
}
|
||||
|
||||
/* FAB脉冲效果(吸引注意) */
|
||||
.resource-mobile-fab::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: -4px;
|
||||
border-radius: 50%;
|
||||
background: transparent;
|
||||
border: 2px solid var(--color-primary, #3B82F6);
|
||||
opacity: 0;
|
||||
animation: fabPulse 2s 2.5s infinite;
|
||||
}
|
||||
|
||||
@keyframes fabPulse {
|
||||
0% { transform: scale(1); opacity: 0.6; }
|
||||
100% { transform: scale(1.4); opacity: 0; }
|
||||
}
|
||||
|
||||
|
||||
/* ============================================================
|
||||
* 响应式媒体查询
|
||||
* ============================================================ */
|
||||
|
||||
/* 移动端/平板(< 992px):显示移动端下载栏和FAB */
|
||||
@media (max-width: 991px) {
|
||||
.resource-mobile-download-bar {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.resource-mobile-fab {
|
||||
display: flex;
|
||||
bottom: calc(72px + env(safe-area-inset-bottom, 0px));
|
||||
right: calc(20px + env(safe-area-inset-right, 0px));
|
||||
}
|
||||
|
||||
/* 超小屏适配(<= 380px) */
|
||||
@media (max-width: 380px) {
|
||||
.resource-mobile-download-bar .resource-download-box__header {
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
padding: 14px 12px 10px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__list {
|
||||
padding: 10px 12px 14px;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__btn {
|
||||
min-height: 46px;
|
||||
padding: 10px 14px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__title {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.resource-mobile-download-bar .resource-download-box__hint,
|
||||
.resource-mobile-download-bar .resource-download-box__footer,
|
||||
.resource-mobile-download-bar .resource-download-box__captcha {
|
||||
margin-left: 12px;
|
||||
margin-right: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 桌面端(>= 992px):隐藏移动端元素,保持原侧栏布局 */
|
||||
@media (min-width: 992px) {
|
||||
.resource-mobile-download-bar {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.resource-mobile-fab {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* 云服务品牌按钮样式
|
||||
* ============================================================ */
|
||||
.resource-download-box__btn--service-baidu {
|
||||
background: linear-gradient(135deg, #1578f8 0%, #0d65d9 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-lanzou {
|
||||
background: linear-gradient(135deg, #f37526 0%, #e06318 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-aliyun {
|
||||
background: linear-gradient(135deg, #6666ff 0%, #5050e0 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-weiyun {
|
||||
background: linear-gradient(135deg, #4facfe 0%, #3a8fd4 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-onedrive {
|
||||
background: linear-gradient(135deg, #0078d4 0%, #006abc 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-tianyi {
|
||||
background: linear-gradient(135deg, #0099ff 0%, #0080e0 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-123pan {
|
||||
background: linear-gradient(135deg, #2b7bff 0%, #1a65e0 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-quark {
|
||||
background: linear-gradient(135deg, #6a5acd 0%, #5a4ab5 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-xunlei {
|
||||
background: linear-gradient(135deg, #00a4ff 0%, #0090e0 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-mega {
|
||||
background: linear-gradient(135deg, #d92323 0%, #c01a1a 100%);
|
||||
}
|
||||
|
||||
.resource-download-box__btn--service-github {
|
||||
background: linear-gradient(135deg, #333333 0%, #1a1a1a 100%);
|
||||
}
|
||||
|
||||
/* 云服务徽章 */
|
||||
.resource-download-box__service-badge {
|
||||
display: inline-block;
|
||||
font-size: 10px;
|
||||
font-weight: 600;
|
||||
padding: 2px 6px;
|
||||
border-radius: 4px;
|
||||
color: #fff;
|
||||
margin-left: 6px;
|
||||
letter-spacing: 0.02em;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* 渐变价格标签(模仿 legacy 渐变 pay-tag)
|
||||
* ============================================================ */
|
||||
.resource-download-box__price--gradient {
|
||||
background: linear-gradient(135deg, #EF4444 0%, #F97316 100%);
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
padding: 5px 12px;
|
||||
border-radius: 20px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.resource-download-box__price--gradient.is-free {
|
||||
background: linear-gradient(135deg, #10B981 0%, #059669 100%);
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* 销量/下载量徽章
|
||||
* ============================================================ */
|
||||
.resource-download-box__sales-badge {
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
right: -8px;
|
||||
background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
|
||||
color: #fff;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
padding: 3px 8px;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 2px 6px rgba(59, 130, 246, 0.3);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* 下载框整体增强 — 模仿 legacy pay-box 视觉重量
|
||||
* ============================================================ */
|
||||
.resource-download-box {
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.resource-download-box::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
|
||||
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* 付费类型徽章 — 模仿 legacy 渐变 pay-tag
|
||||
* ============================================================ */
|
||||
.resource-pay-type-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
padding: 3px 8px;
|
||||
border-radius: 4px;
|
||||
color: #fff;
|
||||
line-height: 1.3;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
|
||||
.resource-pay-type-badge i {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
/* 在归档卡片上的徽章位置 */
|
||||
.post-card .resource-pay-type-badge {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
left: 8px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
/* 在下载框内的徽章 */
|
||||
.resource-download-box__header .resource-pay-type-badge {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* 原价划线 — 模仿 legacy .original-price
|
||||
* ============================================================ */
|
||||
.resource-original-price {
|
||||
font-size: 13px;
|
||||
color: var(--color-ink-4);
|
||||
text-decoration: line-through;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.resource-original-price::before {
|
||||
content: '';
|
||||
@@ -1,54 +0,0 @@
|
||||
position: absolute;
|
||||
left: -2px;
|
||||
right: -2px;
|
||||
top: 50%;
|
||||
height: 1px;
|
||||
background: var(--color-ink-4);
|
||||
transform: rotate(-8deg);
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* 视频播放器容器
|
||||
* ============================================================ */
|
||||
.resource-video-container {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-bottom: 56.25%;
|
||||
margin: 16px 0;
|
||||
border-radius: var(--radius-lg);
|
||||
overflow: hidden;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.resource-video-container iframe {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* 付费图库预览
|
||||
* ============================================================ */
|
||||
.resource-gallery-locked {
|
||||
position: relative;
|
||||
filter: blur(8px);
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.resource-gallery-locked::after {
|
||||
content: '\f023';
|
||||
font-family:"Font Awesome 5 Free";font-weight:900;
|
||||
font-weight: 900;
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 32px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -593,7 +593,13 @@ trait ScriptsPart1b {
|
||||
// 单篇资源专属样式
|
||||
if ($is_single_resource) {
|
||||
$enqueue_module('single-post');
|
||||
$enqueue_module('resource-meta');
|
||||
$resource_meta_path = get_template_directory() . '/assets/css/frontend/resource-meta/part.css';
|
||||
wp_enqueue_style(
|
||||
'aksrt-resource-meta',
|
||||
$base_uri . '/assets/css/frontend/resource-meta/part.css',
|
||||
$deps,
|
||||
file_exists($resource_meta_path) ? (string) filemtime($resource_meta_path) : $version
|
||||
);
|
||||
$enqueue_module('comments');
|
||||
}
|
||||
|
||||
|
||||
@@ -493,3 +493,20 @@ test('single articles enqueue only content and settings driven assets', () => {
|
||||
assert.match(runtime, new RegExp(`singular_assets\\['${requirement}'\\]`));
|
||||
}
|
||||
});
|
||||
|
||||
test('resource meta CSS uses one canonical direct stylesheet', () => {
|
||||
const enqueue = read('src/Core/ScriptsPart1b.php');
|
||||
const canonical = path.join(root, 'assets/css/frontend/resource-meta/part.css');
|
||||
|
||||
assert.ok(fs.existsSync(canonical));
|
||||
assert.match(enqueue, /assets\/css\/frontend\/resource-meta\/part\.css/);
|
||||
assert.doesNotMatch(enqueue, /\$enqueue_module\('resource-meta'\)/);
|
||||
assert.equal(fs.existsSync(path.join(root, 'assets/css/frontend/resource-meta.css')), false);
|
||||
|
||||
for (let part = 1; part <= 5; part += 1) {
|
||||
assert.equal(
|
||||
fs.existsSync(path.join(root, `assets/css/frontend/resource-meta/part-${part}.css`)),
|
||||
false
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user