1638 lines
30 KiB
Plaintext
1638 lines
30 KiB
Plaintext
.container {
|
||
height: 100vh;
|
||
width: 100% !important;
|
||
display: flex;
|
||
flex-direction: column;
|
||
position: relative;
|
||
background: #F5F7FA;
|
||
overflow: hidden;
|
||
touch-action: none;
|
||
padding: 0;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 材料区域样式优化 */
|
||
.material-section {
|
||
position: relative;
|
||
width: auto;
|
||
margin: 10px;
|
||
background: #fff;
|
||
border-radius: 6px;
|
||
border: 1px solid #eee;
|
||
will-change: height;
|
||
transform: translateZ(0);
|
||
-webkit-transform: translateZ(0);
|
||
}
|
||
|
||
/* 拖动手柄样式优化 */
|
||
.resize-handle {
|
||
position: absolute;
|
||
bottom: -12rpx;
|
||
left: 0;
|
||
right: 0;
|
||
height: 24rpx;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
background: #fff;
|
||
z-index: 10;
|
||
touch-action: none;
|
||
cursor: ns-resize;
|
||
}
|
||
|
||
/* 拖动时的状态 */
|
||
.material-section.resizing {
|
||
transition: none !important;
|
||
}
|
||
|
||
.resize-area {
|
||
width: 200rpx;
|
||
height: 100%;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
|
||
.resize-line {
|
||
width: 60rpx;
|
||
height: 4rpx;
|
||
background: #D8D8D8;
|
||
border-radius: 2rpx;
|
||
position: relative;
|
||
}
|
||
|
||
/* .resize-dots {
|
||
position: absolute;
|
||
top: -12rpx;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
width: 32rpx;
|
||
height: 32rpx;
|
||
background: radial-gradient(circle, #999 3rpx, transparent 3rpx) 0 0 / 8rpx 8rpx;
|
||
opacity: 0.5;
|
||
} */
|
||
|
||
.material-title {
|
||
padding: 20rpx 30rpx;
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
border-bottom: 1rpx solid #eee;
|
||
}
|
||
|
||
/* 调整材料内容区域 */
|
||
.material-swiper {
|
||
height: calc(100% - 40rpx);
|
||
z-index: 1;
|
||
}
|
||
|
||
/* 内容区域优化 */
|
||
.material-content {
|
||
height: 100%;
|
||
padding: 20rpx 30rpx;
|
||
width: 92%;
|
||
transform: translateZ(0);
|
||
-webkit-overflow-scrolling: touch;
|
||
overscroll-behavior: none;
|
||
touch-action: pan-y;
|
||
}
|
||
|
||
.material-text {
|
||
font-size: 28rpx;
|
||
line-height: 1.6;
|
||
color: #333;
|
||
word-wrap: break-word;
|
||
}
|
||
|
||
/* 富文本中的段落样式 */
|
||
.material-text p {
|
||
display: inline;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
/* 富文本中的图片样式 */
|
||
.material-text img {
|
||
display: inline-block !important;
|
||
vertical-align: middle !important;
|
||
max-height: 40rpx !important;
|
||
width: auto !important;
|
||
margin: 0 4rpx !important;
|
||
}
|
||
|
||
/* 如果需要某些图片单独成行显示 */
|
||
.material-text img.block {
|
||
display: block !important;
|
||
max-height: none !important;
|
||
max-width: 100% !important;
|
||
margin: 20rpx 0 !important;
|
||
}
|
||
|
||
/* 修改富文本中图片的样式 */
|
||
.material-text rich-text {
|
||
width: 100%;
|
||
display: inline;
|
||
}
|
||
|
||
/* 富文本图片样式 */
|
||
.rich-text-img {
|
||
max-width: 100%;
|
||
height: auto;
|
||
vertical-align: middle;
|
||
/* 确保图片与文字垂直对齐 */
|
||
display: inline-block;
|
||
/* 改为内联块级显示 */
|
||
margin: 0 4rpx;
|
||
/* 添加少许左右间距 */
|
||
}
|
||
|
||
/* 当图片需要单独占一行时的样式 */
|
||
.rich-text-img.block {
|
||
display: block;
|
||
margin: 20rpx 0;
|
||
}
|
||
|
||
.material-index {
|
||
position: absolute;
|
||
bottom: 10rpx;
|
||
right: 40rpx;
|
||
font-size: 24rpx;
|
||
color: #999;
|
||
}
|
||
|
||
/* 材料指示点 */
|
||
.material-dots {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
height: 40rpx;
|
||
margin-top: 10rpx;
|
||
}
|
||
|
||
.dot {
|
||
width: 12rpx;
|
||
height: 12rpx;
|
||
border-radius: 50%;
|
||
background: #ddd;
|
||
margin: 0 8rpx;
|
||
}
|
||
|
||
.dot.active {
|
||
background: #007aff;
|
||
transform: scale(1.2);
|
||
}
|
||
|
||
.question-container {
|
||
background: #fff;
|
||
border-radius: 12rpx;
|
||
margin: 0 20rpx;
|
||
padding: 30rpx;
|
||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
|
||
width: calc(100% - 40rpx);
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.question-header {
|
||
margin-bottom: 20rpx;
|
||
/* 减小底部间距 */
|
||
}
|
||
|
||
.question-type {
|
||
color: #666;
|
||
font-size: 30rpx;
|
||
}
|
||
|
||
/* 当没有材料时的样式 */
|
||
.question-content.no-material {
|
||
height: calc(100vh - 120rpx);
|
||
/* 只减去底部工具栏高度 */
|
||
}
|
||
|
||
/* 当有答案解析时的样式 */
|
||
.question-content.has-explanation {
|
||
padding-bottom: 15rpx;
|
||
padding-top: 15rpx;
|
||
}
|
||
|
||
/* 修改选项列表样式 */
|
||
.options-list {
|
||
margin-top: 30rpx;
|
||
width: 100%;
|
||
}
|
||
|
||
/* 富文本通用样式 */
|
||
rich-text {
|
||
width: 100%;
|
||
display: inline;
|
||
}
|
||
|
||
/* 富文本内容样式覆盖 */
|
||
rich-text .p {
|
||
display: inline;
|
||
/* 改为内联显示 */
|
||
margin: 0;
|
||
/* 移除默认边距 */
|
||
padding: 0;
|
||
}
|
||
|
||
rich-text .img {
|
||
display: inline-block;
|
||
/* 改为内联块级显示 */
|
||
vertical-align: middle;
|
||
/* 垂直居中对齐 */
|
||
max-height: 32rpx;
|
||
/* 限制图片高度与文字行高相近 */
|
||
width: auto;
|
||
/* 宽度自适应 */
|
||
margin: 0 4rpx;
|
||
/* 添加少许左右间距 */
|
||
}
|
||
|
||
/* 如果图片需要单独成行显示时的样式 */
|
||
rich-text .img.block {
|
||
display: block;
|
||
max-height: none;
|
||
max-width: 100%;
|
||
margin: 20rpx 0;
|
||
}
|
||
|
||
rich-text .strong,
|
||
rich-text .b {
|
||
font-weight: bold;
|
||
}
|
||
|
||
rich-text .em,
|
||
rich-text .i {
|
||
font-style: italic;
|
||
}
|
||
|
||
rich-text .u {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
/* 选项基础样式 */
|
||
.option-item {
|
||
margin: 20rpx 0;
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 24rpx 30rpx;
|
||
background: #fff;
|
||
border-radius: 8rpx;
|
||
border: 2rpx solid #E5E5E5;
|
||
position: relative;
|
||
box-sizing: border-box;
|
||
width: 100%;
|
||
transition: all 0.2s ease;
|
||
/* 添加过渡效果 */
|
||
}
|
||
|
||
/* 选中状态样式 */
|
||
.option-selected {
|
||
background-color: #E3F0FF !important;
|
||
border-color: #1A7CFF !important;
|
||
}
|
||
|
||
.option-selected .option-letter,
|
||
.option-selected .option-text,
|
||
.option-selected .separator {
|
||
color: #1A7CFF !important;
|
||
}
|
||
|
||
/* 选项内容样式 */
|
||
.option-content {
|
||
flex: 1;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.option-letter {
|
||
font-size: 32rpx;
|
||
color: #333;
|
||
font-weight: 500;
|
||
min-width: 40rpx;
|
||
}
|
||
|
||
.option-text {
|
||
flex: 1;
|
||
font-size: 32rpx;
|
||
color: #333;
|
||
margin-left: 20rpx;
|
||
}
|
||
|
||
.separator {
|
||
color: #E5E5E5;
|
||
margin: 0 20rpx;
|
||
}
|
||
|
||
/* 添加底部按钮固定样式 */
|
||
.footer {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
background: #fff;
|
||
box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);
|
||
padding-bottom: constant(safe-area-inset-bottom);
|
||
padding-bottom: env(safe-area-inset-bottom);
|
||
z-index: 100;
|
||
}
|
||
|
||
.footer-content {
|
||
height: 100rpx;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
/* 左右两侧分布 */
|
||
align-items: center;
|
||
padding: 0 30rpx;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.timer {
|
||
font-size: 32rpx;
|
||
color: #333;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.question-card-btn {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
min-width: 120rpx;
|
||
/* 确保有足够的宽度 */
|
||
}
|
||
|
||
.card-icon {
|
||
width: 48rpx;
|
||
/* 增大图标尺寸 */
|
||
height: 48rpx;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
.card-text {
|
||
font-size: 24rpx;
|
||
color: #333;
|
||
white-space: nowrap;
|
||
/* 防止文字换行 */
|
||
}
|
||
|
||
/* 试卷信息 */
|
||
.paper-info {
|
||
background: #fff;
|
||
padding: 30rpx;
|
||
border-bottom: 1rpx solid #eee;
|
||
}
|
||
|
||
.paper-title {
|
||
font-size: 32rpx;
|
||
font-weight: bold;
|
||
color: #333;
|
||
margin-bottom: 10rpx;
|
||
}
|
||
|
||
.paper-meta {
|
||
display: flex;
|
||
font-size: 24rpx;
|
||
color: #999;
|
||
}
|
||
|
||
.question-count {
|
||
margin-right: 20rpx;
|
||
}
|
||
|
||
/* 材料区域样式 */
|
||
.material-section {
|
||
background: #fff;
|
||
height: 400rpx;
|
||
position: relative;
|
||
padding: 20rpx 0;
|
||
}
|
||
|
||
.material-subtitle {
|
||
font-size: 26rpx;
|
||
font-weight: bold;
|
||
color: #666;
|
||
margin-bottom: 10rpx;
|
||
}
|
||
|
||
.material-text {
|
||
font-size: 26rpx;
|
||
color: #333;
|
||
line-height: 1.6;
|
||
padding-bottom: 40rpx;
|
||
}
|
||
|
||
.material-image-wrapper {
|
||
width: 100%;
|
||
margin: 20rpx 0;
|
||
}
|
||
|
||
.material-image {
|
||
width: 100%;
|
||
border-radius: 8rpx;
|
||
}
|
||
|
||
/* 题目区域样式 */
|
||
.question-scroll {
|
||
flex: 1;
|
||
overflow: hidden;
|
||
overflow-y: auto;
|
||
background: #ececec;
|
||
height: calc(100vh - 120rpx);
|
||
/* 调整高度 */
|
||
padding-bottom: 160rpx;
|
||
}
|
||
|
||
.question-scroll.no-material {
|
||
/* height: calc(100vh - 200rpx - 120rpx); */
|
||
}
|
||
|
||
/* 底部按钮区域 */
|
||
.footer {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
background: #fff;
|
||
padding: 20rpx 30rpx;
|
||
box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);
|
||
}
|
||
|
||
.button-container {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
padding: 0;
|
||
}
|
||
|
||
.prev-button,
|
||
.next-button,
|
||
.submit-button {
|
||
width: 45%;
|
||
border-radius: 44rpx;
|
||
font-size: 32rpx;
|
||
}
|
||
|
||
.prev-button {
|
||
background: #f5f5f5;
|
||
color: #666;
|
||
}
|
||
|
||
.next-button {
|
||
background: #007aff;
|
||
color: #fff;
|
||
}
|
||
|
||
.submit-button {
|
||
background: #ff6b6b;
|
||
color: #fff;
|
||
}
|
||
|
||
.prev-button[disabled],
|
||
.next-button[disabled],
|
||
.submit-button[disabled] {
|
||
opacity: 0.5;
|
||
}
|
||
|
||
/* 适配 iPhone X 等机型 */
|
||
@supports (padding-bottom: constant(safe-area-inset-bottom)) {
|
||
.footer {
|
||
padding-bottom: calc(20rpx + constant(safe-area-inset-bottom));
|
||
}
|
||
}
|
||
|
||
@supports (padding-bottom: env(safe-area-inset-bottom)) {
|
||
.footer {
|
||
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
|
||
}
|
||
}
|
||
|
||
/* 底部占位区域,确保可以滚动到底部 */
|
||
.bottom-space {
|
||
height: 140rpx;
|
||
/* 与按钮区域高度相近 */
|
||
width: 100%;
|
||
}
|
||
|
||
/* 试题详情:背景层资料 + 前置问题面板(可上下滑动) */
|
||
.detail-wrap {
|
||
position: relative;
|
||
width: 100%;
|
||
height: 100%;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* 背景层:资料标题固定 + 下方内容可滚动 */
|
||
.layer-back {
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
z-index: 0;
|
||
background: #fff;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
/* 资料标题固定不随内容滚动;单条「资料」,多条「资料一」「资料二」 */
|
||
.material-title-fixed {
|
||
flex-shrink: 0;
|
||
padding: 24rpx 28rpx 16rpx;
|
||
background: #fff;
|
||
border-bottom: 1rpx solid #f0f0f0;
|
||
}
|
||
|
||
.material-title-fixed .section-title {
|
||
font-size: 32rpx;
|
||
font-weight: bold;
|
||
color: #333;
|
||
display: block;
|
||
}
|
||
|
||
.material-title-fixed .section-title-underline {
|
||
width: 48rpx;
|
||
height: 6rpx;
|
||
background: #e74c3c;
|
||
margin-top: 8rpx;
|
||
border-radius: 2rpx;
|
||
}
|
||
|
||
/* 多条资料时展示所有 tab(资料一、资料二…) */
|
||
.material-tabs {
|
||
width: 100%;
|
||
padding: 8rpx 0 12rpx;
|
||
}
|
||
|
||
.material-tabs-scroll {
|
||
width: 100%;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.material-tabs-inner {
|
||
display: inline-flex;
|
||
flex-wrap: nowrap;
|
||
gap: 16rpx;
|
||
padding: 0 28rpx;
|
||
}
|
||
|
||
.material-tab {
|
||
display: inline-flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
padding: 12rpx 24rpx 8rpx;
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.material-tab.active {
|
||
color: #333;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.material-tab.active .material-tab-underline {
|
||
display: block;
|
||
}
|
||
|
||
.material-tab-underline {
|
||
display: none;
|
||
width: 48rpx;
|
||
height: 6rpx;
|
||
background: #e74c3c;
|
||
margin-top: 8rpx;
|
||
border-radius: 2rpx;
|
||
}
|
||
|
||
.material-scroll-below-title {
|
||
flex: 1;
|
||
min-height: 0;
|
||
width: 100%;
|
||
background: #fff;
|
||
}
|
||
|
||
.material-placeholder {
|
||
height: 600rpx;
|
||
width: 100%;
|
||
}
|
||
|
||
/* 前置层:问题面板,可上下滑动;area 不拦截触摸,仅面板拦截,这样露出的资料区可上下滑动 */
|
||
.movable-area {
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
right: 0;
|
||
z-index: 1;
|
||
width: 100%;
|
||
pointer-events: none;
|
||
}
|
||
|
||
.movable-panel.question-panel-wrap {
|
||
width: 100%;
|
||
background: #fff;
|
||
border-radius: 24rpx 24rpx 0 0;
|
||
box-shadow: 0 -4rpx 24rpx rgba(0,0,0,0.08);
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
pointer-events: auto;
|
||
}
|
||
|
||
/* 问题面板顶部拖拽条:提示可上下滑动,增大可拖区域 */
|
||
.panel-drag-handle {
|
||
width: 100%;
|
||
height: 56rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
background: #fff;
|
||
padding: 12rpx 0;
|
||
}
|
||
|
||
.panel-drag-bar {
|
||
width: 80rpx;
|
||
height: 8rpx;
|
||
background: #d0d0d0;
|
||
border-radius: 4rpx;
|
||
}
|
||
|
||
/* 通用滚动区(背景层内) */
|
||
.detail-scroll {
|
||
width: 100%;
|
||
height: 100%;
|
||
background: #fff;
|
||
}
|
||
|
||
/* 区块通用 */
|
||
.section {
|
||
background: #fff;
|
||
padding: 0 28rpx 32rpx;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
/* 资料区块 */
|
||
.section-material {
|
||
padding-top: 24rpx;
|
||
}
|
||
|
||
.material-label-bar {
|
||
margin-bottom: 16rpx;
|
||
}
|
||
|
||
.material-label-text {
|
||
font-size: 26rpx;
|
||
color: #666;
|
||
font-weight: 500;
|
||
}
|
||
|
||
/* 区块标题:资料 / 问题,加红色下划线 */
|
||
.section-head {
|
||
margin-bottom: 20rpx;
|
||
}
|
||
|
||
.section-title {
|
||
font-size: 32rpx;
|
||
font-weight: bold;
|
||
color: #333;
|
||
display: block;
|
||
}
|
||
|
||
.section-title-underline {
|
||
width: 48rpx;
|
||
height: 6rpx;
|
||
background: #e74c3c;
|
||
margin-top: 8rpx;
|
||
border-radius: 2rpx;
|
||
}
|
||
|
||
/* 资料内容:左右滑动切换材料一/二/三;给足高度以便资料展示全,超出部分由外层 scroll-view 滚动 */
|
||
.material-content-swiper {
|
||
min-height: 800rpx;
|
||
width: 100%;
|
||
}
|
||
|
||
.content-swiper-item {
|
||
width: 100%;
|
||
min-height: 800rpx;
|
||
}
|
||
|
||
.material-body {
|
||
padding: 8rpx 0 40rpx;
|
||
min-height: 760rpx;
|
||
}
|
||
|
||
.material-rich {
|
||
font-size: 28rpx;
|
||
color: #333;
|
||
line-height: 1.7;
|
||
}
|
||
|
||
/* 问题区块:占满面板剩余空间,题目内容可滚动展示全 */
|
||
.section-question {
|
||
padding-top: 16rpx;
|
||
flex: 1;
|
||
min-height: 0;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.question-content-swiper {
|
||
flex: 1;
|
||
min-height: 60vh;
|
||
width: 100%;
|
||
height: 0;
|
||
}
|
||
|
||
.question-body {
|
||
padding: 8rpx 0 24rpx;
|
||
height: 100%;
|
||
min-height: 280rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.detail-bottom-space {
|
||
height: 120rpx;
|
||
width: 100%;
|
||
}
|
||
|
||
/* 题目滑动容器(保留兼容) */
|
||
.question-swiper {
|
||
flex: 1;
|
||
height: calc(100vh - 120rpx);
|
||
/* 减去底部工具栏高度 */
|
||
z-index: 1;
|
||
padding-top: 10rpx;
|
||
width: 100%;
|
||
}
|
||
|
||
/* 确保题目页垂直布局占满剩余空间,避免被遮挡 */
|
||
.question-page {
|
||
display: flex;
|
||
flex-direction: column;
|
||
min-height: calc(100vh - 120rpx);
|
||
}
|
||
|
||
/* 题目滚动容器占满剩余空间 */
|
||
.question-content {
|
||
flex: 1;
|
||
}
|
||
|
||
/* 底部工具栏:固定盖在问题面板上的另一层,不占布局空间,无明显分割线 */
|
||
.toolbar {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
height: 120rpx;
|
||
background: rgba(255, 255, 255, 0.98);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 0 40rpx;
|
||
z-index: 100;
|
||
}
|
||
|
||
.timer-container {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16rpx;
|
||
/* 增加间距 */
|
||
}
|
||
|
||
.pause-icon {
|
||
width: 40rpx;
|
||
/* 增加图标大小 */
|
||
height: 40rpx;
|
||
}
|
||
|
||
.timer {
|
||
font-size: 32rpx;
|
||
/* 增加字体大小 */
|
||
color: #333;
|
||
font-weight: 500;
|
||
/* 加粗 */
|
||
}
|
||
|
||
.question-card-btn {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
min-width: 120rpx;
|
||
/* 确保有足够的宽度 */
|
||
}
|
||
|
||
.card-icon {
|
||
width: 48rpx;
|
||
/* 增大图标尺寸 */
|
||
height: 48rpx;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
.card-text {
|
||
font-size: 24rpx;
|
||
color: #333;
|
||
white-space: nowrap;
|
||
/* 防止文字换行 */
|
||
}
|
||
|
||
/* 答题卡弹窗样式优化 */
|
||
.question-card-popup {
|
||
position: fixed;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
top: 0;
|
||
z-index: 1000;
|
||
visibility: hidden;
|
||
}
|
||
|
||
.question-card-popup.show {
|
||
visibility: visible;
|
||
}
|
||
|
||
.popup-mask {
|
||
position: absolute;
|
||
left: 0;
|
||
right: 0;
|
||
top: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
.popup-content {
|
||
position: absolute;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: #fff;
|
||
border-radius: 24rpx 24rpx 0 0;
|
||
transform: translateY(100%);
|
||
transition: transform 0.3s ease-out;
|
||
}
|
||
|
||
.question-card-popup.show .popup-content {
|
||
transform: translateY(0);
|
||
}
|
||
|
||
.popup-header {
|
||
padding: 32rpx;
|
||
border-bottom: 1rpx solid #eee;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
|
||
.popup-header text {
|
||
font-size: 32rpx;
|
||
font-weight: 500;
|
||
color: #333;
|
||
}
|
||
|
||
.close-btn {
|
||
padding: 8rpx;
|
||
font-size: 40rpx;
|
||
color: #999;
|
||
line-height: 1;
|
||
}
|
||
|
||
.question-status {
|
||
padding: 24rpx 32rpx;
|
||
border-bottom: 1rpx solid #eee;
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
}
|
||
|
||
.status-item {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-right: 40rpx;
|
||
}
|
||
|
||
.status-item text {
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
}
|
||
|
||
.status-dot {
|
||
width: 24rpx;
|
||
height: 24rpx;
|
||
border-radius: 50%;
|
||
background: #eee;
|
||
margin-right: 12rpx;
|
||
}
|
||
|
||
.status-dot.answered {
|
||
background: #1A7CFF;
|
||
}
|
||
|
||
.numbers-grid {
|
||
flex: 1;
|
||
overflow-y: auto;
|
||
padding: 20rpx 32rpx;
|
||
-webkit-overflow-scrolling: touch;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
/* 确保padding计入宽度 */
|
||
}
|
||
|
||
.grid-container {
|
||
display: grid;
|
||
grid-template-columns: repeat(5, 1fr);
|
||
gap: 12rpx;
|
||
padding: 24rpx;
|
||
justify-items: center;
|
||
}
|
||
|
||
.number-item {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
border-radius: 50%;
|
||
/* 圆形 */
|
||
background: #F5F5F5;
|
||
/* 未答题背景色 */
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin: 12rpx;
|
||
transition: all 0.3s ease;
|
||
}
|
||
|
||
.number-item text {
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
/* 未答题文字颜色 */
|
||
}
|
||
|
||
/* 已答题状态 */
|
||
.number-item.answered {
|
||
background: #E3F0FF;
|
||
border: 2rpx solid #1A7CFF;
|
||
}
|
||
|
||
.number-item.answered text {
|
||
color: #1A7CFF;
|
||
font-weight: 500;
|
||
}
|
||
|
||
/* 当前题目状态 */
|
||
.number-item.current {
|
||
background: #1A7CFF;
|
||
border: 2rpx solid #1A7CFF;
|
||
}
|
||
|
||
.number-item.current text {
|
||
color: #FFFFFF;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.submit-btn {
|
||
margin: 32rpx;
|
||
margin-top: 16rpx;
|
||
height: 88rpx;
|
||
background: #1A7CFF;
|
||
color: #fff;
|
||
border-radius: 44rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-size: 32rpx;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.submit-btn:active {
|
||
opacity: 0.8;
|
||
}
|
||
|
||
/* 自定义加载动画样式 */
|
||
.loading-container {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: #fff;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
z-index: 9999;
|
||
}
|
||
|
||
.loading-content {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
gap: 20rpx;
|
||
}
|
||
|
||
.loading-spinner {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
position: relative;
|
||
}
|
||
|
||
.spinner-circle {
|
||
width: 100%;
|
||
height: 100%;
|
||
border: 6rpx solid #f3f3f3;
|
||
border-top: 6rpx solid #1A7CFF;
|
||
border-radius: 50%;
|
||
animation: spin 1s linear infinite;
|
||
}
|
||
|
||
.loading-text {
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
}
|
||
|
||
@keyframes spin {
|
||
0% {
|
||
transform: rotate(0deg);
|
||
}
|
||
|
||
100% {
|
||
transform: rotate(360deg);
|
||
}
|
||
}
|
||
|
||
/* 拖动时的状态 */
|
||
.resizing .material-section {
|
||
transition: none !important;
|
||
}
|
||
|
||
/* 添加 mp-html 相关样式 */
|
||
.mp-html {
|
||
font-size: 28rpx;
|
||
line-height: 1.6;
|
||
color: #333;
|
||
}
|
||
|
||
/* 暂停遮罩层样式已移至组件 /components/pause-mask/index.wxss */
|
||
|
||
.pause-title {
|
||
font-size: 40rpx;
|
||
font-weight: bold;
|
||
color: #333;
|
||
margin-bottom: 20rpx;
|
||
}
|
||
|
||
.pause-time {
|
||
font-size: 60rpx;
|
||
color: #1A7CFF;
|
||
margin-bottom: 40rpx;
|
||
font-family: monospace;
|
||
}
|
||
|
||
.pause-tip {
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
}
|
||
|
||
/* 状态指示点样式 */
|
||
.question-status {
|
||
padding: 24rpx 32rpx;
|
||
display: flex;
|
||
gap: 40rpx;
|
||
}
|
||
|
||
.status-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12rpx;
|
||
}
|
||
|
||
.status-dot {
|
||
width: 24rpx;
|
||
height: 24rpx;
|
||
border-radius: 50%;
|
||
background: #F5F5F5;
|
||
/* 未答题 */
|
||
}
|
||
|
||
.status-dot.answered {
|
||
background: #E3F0FF;
|
||
border: 2rpx solid #1A7CFF;
|
||
}
|
||
|
||
.status-dot.current {
|
||
background: #1A7CFF;
|
||
}
|
||
|
||
.status-item text {
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
}
|
||
|
||
/* 答案解析样式 */
|
||
.explanation-section {
|
||
margin: 30rpx 20rpx;
|
||
padding: 20rpx;
|
||
background: #f8f8f8;
|
||
border-radius: 8rpx;
|
||
border-left: 6rpx solid #3f7ee8;
|
||
}
|
||
|
||
.explanation-title {
|
||
font-size: 28rpx;
|
||
color: #333;
|
||
font-weight: bold;
|
||
margin-bottom: 16rpx;
|
||
}
|
||
|
||
.explanation-content {
|
||
font-size: 26rpx;
|
||
color: #666;
|
||
line-height: 1.6;
|
||
}
|
||
|
||
/* 用户选择的选项样式 */
|
||
.option-item.user-selected {
|
||
background: #FFF3F3;
|
||
border: 2rpx solid #FF4D4F;
|
||
}
|
||
|
||
.option-item.user-selected .option-letter,
|
||
.option-item.user-selected .option-text,
|
||
.option-item.user-selected .separator {
|
||
color: #FF4D4F;
|
||
}
|
||
|
||
/* 答案解析样式优化 */
|
||
/* .answer-analysis {
|
||
margin-top: 30rpx;
|
||
margin-bottom: 20rpx;
|
||
background: #FFFFFF;
|
||
border-radius: 12rpx;
|
||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
|
||
}
|
||
|
||
.analysis-header {
|
||
padding: 24rpx;
|
||
border-bottom: 1rpx solid #F0F0F0;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
|
||
.analysis-title {
|
||
font-size: 30rpx;
|
||
font-weight: 500;
|
||
color: #333333;
|
||
}
|
||
|
||
.correct-answer {
|
||
font-size: 28rpx;
|
||
color: #52C41A;
|
||
}
|
||
|
||
.analysis-content {
|
||
padding: 24rpx;
|
||
font-size: 28rpx;
|
||
color: #666666;
|
||
line-height: 1.6;
|
||
} */
|
||
|
||
/* 底部留白区域 */
|
||
.bottom-spacing {
|
||
display: none;
|
||
}
|
||
|
||
/* 移除蒙板相关样式 */
|
||
.mask {
|
||
display: none;
|
||
}
|
||
|
||
/* 移除选项点击相关样式 */
|
||
.option-item {
|
||
pointer-events: auto;
|
||
/* 恢复点击事件 */
|
||
}
|
||
|
||
/* 移除选中状态相关样式 */
|
||
.option-item.selected {
|
||
background: none;
|
||
}
|
||
|
||
/* 滚动优化 */
|
||
::-webkit-scrollbar {
|
||
width: 0;
|
||
height: 0;
|
||
color: transparent;
|
||
}
|
||
|
||
/* 修改为具体的选择器 */
|
||
.material-section,
|
||
.material-content,
|
||
.material-title,
|
||
.material-text,
|
||
.resize-handle,
|
||
.resize-line,
|
||
.resize-dots {
|
||
user-select: none;
|
||
-webkit-user-select: none;
|
||
}
|
||
|
||
.material-section-wrapper {
|
||
margin: 24rpx 20rpx 0 20rpx;
|
||
border-radius: 12rpx 12rpx 0 0;
|
||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
|
||
overflow: hidden;
|
||
background: #fff;
|
||
position: relative;
|
||
will-change: height;
|
||
transform: translateZ(0);
|
||
-webkit-transform: translateZ(0);
|
||
}
|
||
|
||
/* 拖动时移除过渡效果 */
|
||
.material-section-wrapper.resizing {
|
||
transition: none !important;
|
||
}
|
||
|
||
/* 非拖动状态添加平滑过渡 */
|
||
.material-section-wrapper:not(.resizing) {
|
||
transition: height 0.3s ease-out;
|
||
}
|
||
|
||
.resize-handle-out {
|
||
height: 44rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background: #fff;
|
||
margin: 0 20rpx;
|
||
border-radius: 0 0 12rpx 12rpx;
|
||
position: relative;
|
||
z-index: 100;
|
||
touch-action: none;
|
||
will-change: transform;
|
||
transform: translateZ(0);
|
||
-webkit-transform: translateZ(0);
|
||
}
|
||
|
||
.resize-line {
|
||
width: 60rpx;
|
||
height: 6rpx;
|
||
background: #1A7CFF;
|
||
border-radius: 3rpx;
|
||
position: relative;
|
||
}
|
||
|
||
/* 拖动时的视觉反馈 */
|
||
.resize-handle-out.resizing .resize-line {
|
||
background: #0052cc;
|
||
transform: scaleY(1.5);
|
||
}
|
||
|
||
.material-section-margin {
|
||
margin: 24rpx 20rpx 24rpx 20rpx;
|
||
}
|
||
|
||
/* 新增:材料内容底部内边距 */
|
||
.material-content-bottom-padding {
|
||
padding-bottom: 32rpx;
|
||
}
|
||
|
||
/* 新增:外部拖动手柄样式 */
|
||
.camp-resize-handle-out {
|
||
width: 100%;
|
||
height: 48rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background: transparent;
|
||
z-index: 100;
|
||
cursor: ns-resize;
|
||
position: relative;
|
||
touch-action: none;
|
||
}
|
||
|
||
.camp-resize-handle {
|
||
width: 120rpx;
|
||
height: 16rpx;
|
||
background: #e0e0e0;
|
||
border-radius: 8rpx;
|
||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08);
|
||
margin: 0 auto;
|
||
}
|
||
|
||
.resize-line {
|
||
width: 60rpx;
|
||
height: 6rpx;
|
||
background: #bbb;
|
||
border-radius: 3rpx;
|
||
}
|
||
|
||
.custom-modal-mask {
|
||
position: fixed;
|
||
left: 0; right: 0; top: 0; bottom: 0;
|
||
background: rgba(0,0,0,0.4);
|
||
z-index: 9999;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
.custom-modal {
|
||
background: #fff;
|
||
border-radius: 16rpx;
|
||
width: 540rpx;
|
||
padding: 40rpx 32rpx 32rpx 32rpx;
|
||
box-shadow: 0 8rpx 32rpx rgba(0,0,0,0.12);
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
}
|
||
.custom-modal-title {
|
||
font-size: 32rpx;
|
||
font-weight: bold;
|
||
margin-bottom: 24rpx;
|
||
color: #333;
|
||
}
|
||
.custom-modal-content {
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
margin-bottom: 32rpx;
|
||
text-align: center;
|
||
}
|
||
.custom-modal-actions {
|
||
display: flex;
|
||
width: 100%;
|
||
justify-content: space-between;
|
||
gap: 32rpx;
|
||
}
|
||
.custom-modal-btn {
|
||
flex: 1;
|
||
/* height: 80rpx; */
|
||
border-radius: 8rpx;
|
||
font-size: 28rpx;
|
||
border: none;
|
||
}
|
||
.custom-modal-btn.cancel {
|
||
background: #f5f5f5;
|
||
color: #666;
|
||
}
|
||
.custom-modal-btn.confirm {
|
||
background: #1A7CFF;
|
||
color: #fff;
|
||
}
|
||
|
||
/* ========== 结果模式样式 ========== */
|
||
.result-overview {
|
||
min-height: 100vh;
|
||
background: #F5F7FA;
|
||
position: relative;
|
||
}
|
||
|
||
/* 确保加载状态在预览页面中正确显示 */
|
||
.result-overview .loading-container {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background-color: rgba(245, 247, 250, 0.9);
|
||
}
|
||
|
||
/* 成绩展示区域 */
|
||
.score-section {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
padding: 40rpx 0;
|
||
background: #fff;
|
||
border-radius: 12rpx;
|
||
margin: 20rpx;
|
||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
|
||
}
|
||
|
||
.score-main {
|
||
font-size: 48rpx;
|
||
font-weight: bold;
|
||
color: #333;
|
||
margin-bottom: 10rpx;
|
||
}
|
||
|
||
.score-desc {
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
}
|
||
|
||
.qualified {
|
||
color: #4CAF50;
|
||
}
|
||
|
||
.unqualified {
|
||
color: #FF5722;
|
||
}
|
||
|
||
/* 统计区域 */
|
||
.stats-section {
|
||
background: #FFFFFF;
|
||
border-radius: 16rpx;
|
||
padding: 30rpx;
|
||
display: flex;
|
||
justify-content: space-around;
|
||
align-items: center;
|
||
margin: 20rpx;
|
||
}
|
||
|
||
.stats-item {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
}
|
||
|
||
.stats-value {
|
||
font-size: 36rpx;
|
||
color: #333333;
|
||
font-weight: 500;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
.stats-label {
|
||
font-size: 24rpx;
|
||
color: #999999;
|
||
}
|
||
|
||
.stats-divider {
|
||
width: 2rpx;
|
||
height: 60rpx;
|
||
background: #EEEEEE;
|
||
}
|
||
|
||
/* 题目列表区域 */
|
||
.questions-list {
|
||
background: #FFFFFF;
|
||
border-radius: 16rpx;
|
||
padding: 30rpx;
|
||
margin: 20rpx;
|
||
}
|
||
|
||
.list-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-bottom: 30rpx;
|
||
}
|
||
|
||
.header-title {
|
||
font-size: 32rpx;
|
||
color: #333333;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.question-items {
|
||
display: grid;
|
||
grid-template-columns: repeat(5, 1fr);
|
||
gap: 20rpx;
|
||
}
|
||
|
||
.question-item {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 修改图例样式 */
|
||
.status-legend {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 20rpx;
|
||
}
|
||
|
||
.legend-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8rpx;
|
||
}
|
||
|
||
.legend-circle {
|
||
width: 32rpx;
|
||
height: 32rpx;
|
||
border-radius: 50%;
|
||
border: 2rpx solid transparent;
|
||
position: relative;
|
||
}
|
||
|
||
/* 正确图例 */
|
||
.legend-circle.correct {
|
||
border: 2rpx solid #52C41A;
|
||
background: #fff;
|
||
}
|
||
|
||
/* 错误图例 */
|
||
.legend-circle.wrong {
|
||
border: 2rpx solid #FF4D4F;
|
||
background: #fff;
|
||
}
|
||
|
||
/* 未答图例 */
|
||
.legend-circle.unanswered {
|
||
border: 2rpx solid #D9D9D9;
|
||
background: #fff;
|
||
}
|
||
|
||
.legend-item text {
|
||
font-size: 24rpx;
|
||
color: #666666;
|
||
}
|
||
|
||
/* 题号空心圆+圆弧 */
|
||
.circle-index {
|
||
position: relative;
|
||
width: 72rpx;
|
||
height: 72rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin: 0 auto;
|
||
}
|
||
|
||
.circle-bg {
|
||
position: absolute;
|
||
width: 72rpx;
|
||
height: 72rpx;
|
||
border-radius: 50%;
|
||
border: 2rpx solid #D9D9D9;
|
||
background: #fff;
|
||
z-index: 1;
|
||
}
|
||
|
||
.circle-arc {
|
||
position: absolute;
|
||
width: 72rpx;
|
||
height: 72rpx;
|
||
border-radius: 50%;
|
||
border: 4rpx solid #D9D9D9;
|
||
z-index: 2;
|
||
}
|
||
|
||
/* 正确答案的边框样式 - 完整的绿色圆 */
|
||
.arc-correct {
|
||
border-color: #52C41A !important;
|
||
}
|
||
|
||
/* 错误答案的边框样式 - 完整的红色圆 */
|
||
.arc-wrong {
|
||
border-color: #FF4D4F !important;
|
||
}
|
||
|
||
/* 未答题的边框样式 - 完整的灰色圆 */
|
||
.arc-unanswered {
|
||
border-color: #D9D9D9 !important;
|
||
}
|
||
|
||
.circle-text {
|
||
position: relative;
|
||
z-index: 3;
|
||
font-size: 28rpx;
|
||
color: #333;
|
||
font-weight: 500;
|
||
text-align: center;
|
||
width: 100%;
|
||
line-height: 72rpx;
|
||
}
|
||
|
||
/* 底部按钮组 */
|
||
.bottom-btns {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
padding: 20rpx 30rpx;
|
||
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
|
||
background: #fff;
|
||
box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);
|
||
display: flex;
|
||
justify-content: space-between;
|
||
gap: 20rpx;
|
||
z-index: 100;
|
||
}
|
||
|
||
.btn-outline, .btn-blue {
|
||
flex: 1;
|
||
text-align: center;
|
||
border-radius: 44rpx;
|
||
font-size: 32rpx;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.btn-outline {
|
||
background: #fff;
|
||
color: #333;
|
||
border: 2rpx solid #ddd;
|
||
}
|
||
|
||
.btn-blue {
|
||
background: #007AFF;
|
||
color: #fff;
|
||
}
|
||
|
||
/* Add padding to the bottom of the content to prevent overlap with fixed buttons */
|
||
.result-overview {
|
||
padding-bottom: calc(128rpx + env(safe-area-inset-bottom));
|
||
width: 100%;
|
||
} |