CSS 平铺+自动换行效果

article/2025/6/5 21:11:42

先上效果图

 

 样式

<template><div class="activity-questions"><h1>活动题库</h1><div v-if="loading" class="loading">加载中...</div><div v-else><div v-if="questions.length === 0" class="no-questions">暂无题库</div><div v-else class="questions-container"><div v-for="question in questions" :key="question.id" class="question-item"><img v-if="question.image_url" :src="question.image_url" alt="题目图片" class="question-image" /><p class="question-text">{{ question.description }}</p><div class="options"><p v-if="question.option_a">A: {{ question.option_a }}</p><p v-if="question.option_b">B: {{ question.option_b }}</p><p v-if="question.option_c">C: {{ question.option_c }}</p><p v-if="question.option_d">D: {{ question.option_d }}</p><p v-if="question.option_e">E: {{ question.option_e }}</p><p v-if="question.option_f">F: {{ question.option_f }}</p><p v-if="question.option_g">G: {{ question.option_g }}</p><p v-if="question.option_h">H: {{ question.option_h }}</p><p v-if="question.option_i">I: {{ question.option_i }}</p><p v-if="question.option_j">J: {{ question.option_j }}</p></div></div></div></div></div>
</template><script>
import { getQuestionsByActivityConfig } from '@/api/biz/biz_question';export default {name: 'ActivityQuestions',data() {return {activityId: null,questions: [],loading: true,};},async created() {const urlParams = new URLSearchParams(window.location.search);this.activityId = urlParams.get('activity_id') || '1';if (this.activityId) {try {const response = await getQuestionsByActivityConfig(this.activityId);if (response && response.code === 200) {this.questions = response.data;} else {console.error('题库加载失败', response);}} catch (error) {console.error('获取题库时发生错误', error);} finally {this.loading = false;}} else {console.error('活动ID未提供');this.loading = false;}},
};
</script><style scoped>
.activity-questions {text-align: center;padding: 20px;
}
.loading {font-size: 18px;color: #888;
}
.no-questions {font-size: 18px;color: #888;
}
.questions-container {display: grid;grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));gap: 20px;justify-content: center;
}
.question-item {border: 1px solid #ddd;border-radius: 8px;padding: 15px;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);text-align: center;
}
.question-image {max-width: 100%;height: auto;border-radius: 4px;
}
.question-text {font-size: 18px;margin-top: 10px;font-weight: bold;
}
.options p {font-size: 16px;margin: 5px 0;
}
</style>


http://www.hkcw.cn/article/LZtIQKXSFQ.shtml

相关文章

苏超火了 “苏大强”的作业怎么抄 全网热潮背后的足球盛宴

“比赛第一,友谊第十四”是这里的原则。近日,江苏省首届城市足球联赛“苏超”火出圈。“苏超”由江苏省体育局与江苏省各设区市政府联合主办,13个设区市各派一队参加。联赛打破了准入的边界,队伍中既有职业球员也有个体工商户、大学生和高中生等业余球员。尽管球员水平与中…

ck-editor5的研究 (7):自定义配置 CKeditor5 的 toolbar 工具栏

文章目录 一、前言二、实现步骤1. 第一步: 搭建目录结构2. 第二步:配置toolbar工具栏的步骤(2-1). 配置粗体和斜体(2-2). 配置链接和标题+正文(2-3). 配置列表和引用(2-4). 配置自动格式化3. 第三步:更多工具三、测试效果和细节四、总结一、前言 在前面的文章中,我们已经对…

Skydel25.4发布:解锁自定义星座,增强C波段与干扰模拟能力

在GNSS模拟技术持续迭代的浪潮中&#xff0c;Skydel迈出创新一步&#xff0c;正式发布25.4.0版本及后续修复版本25.4.1。本次更新的核心突破在于引入了强大的自定义星座功能&#xff0c;赋予用户前所未有的自由度&#xff0c;可创建包含多达400颗卫星的专属星座&#xff0c;突破…

迅为RK3588开发板RKLLM-Toolkit 环境搭建安装 Miniconda

Conda 是一个开源的软件包管理系统和环境管理系统&#xff0c;它可以用于安装、管理和升级软件 包和依赖项&#xff0c;我们这里使用conda 的目的只是构建一个虚拟环境&#xff0c;所以选择轻量话的miniconda。 miniconda 的官方链接如下所示&#xff1a; 进入 miniconda 的…

Oracle双平面适用场景讨论会议

4月28日&#xff0c;我在杭州组织召开了Oracle双平面会议讨论沙龙。在国产化数据库浪潮的今天&#xff0c;Oracle数据库作为国产数据库的应急库&#xff0c;在国产数据库发生故障或者性能下降时&#xff0c;如何更好的使用Oracle。会议主题如下&#xff1a; 1、背景与痛点速览&…

tauri项目绕开plugin-shell直接调用可执行文件并携带任意参数

tauri项目的plugin-shell插件的要求太多了&#xff0c;用起来实在是不顺手&#xff0c;要求参数要求位置等&#xff0c;不行不行&#xff0c;客户要求可以在前端输入任意命令行参数并执行&#xff0c;哪怕是rm -rf都要无条件执行&#xff0c;好好好&#xff0c;满足你。 我们直…

AJ-Report

目录 AJ-Report是什么 CNVD-2024-15077(AJ-Report认证绕过和远程代码执行漏洞) AJ-Report是什么 AJ-Report是完全开源的BI(Business intelligence)平台&#xff0c;旨在帮助用户生成和管理各种类型的报表。它通常用于web应用中&#xff0c;用于分析和展示数据&#xff0c;常用于…

Rust 函数

文章目录 Rust 函数函数参数语句与表达式带返回值的函数代码示例 Rust 函数 函数 函数在 Rust 代码中非常常见。你已经见过了语言中最重要的函数之一&#xff1a;main 函数&#xff0c;它是许多程序的入口点。你还见过 fn 关键字&#xff0c;它允许你声明新的函数。 Rust 代码…

【Typst】3.Typst脚本语法

概述 Typst的核心就是它在标记语法的基础上提供了一个灵活强大的脚本语言&#xff0c;来支持复杂的排版操作。 本节就以一个脚本语言的角度&#xff0c;介绍一下Typst脚本的核心语法。 系列目录 1.Typst概述2.Typst标记语法和基础样式3.Typst脚本语法4.导入、包含和读取5.文…

Java 文件操作 和 IO(5)-- 综合案例练习 -- 示例三

文章目录 题目描述&#xff1a;扫描指定目录&#xff0c;并找到文件名称或文件内容中包含指定字符的所有普通文件&#xff08;不包含目录&#xff09;结果案例演示&#xff1a;设计思路&#xff1a;总体的思路&#xff1a;使用代码&#xff0c;分步实现1. 准备工作&#xff08;…

微深节能 筒仓卸料小车远程智能控制系统 格雷母线

微深节能筒仓卸料小车远程智能控制系统——格雷母线高精度定位解决方案 在现代化筒仓物料管理中&#xff0c;卸料小车的精准定位与远程控制是提升效率、保障安全的关键。武汉市微深节能科技有限公司推出的格雷母线高精度位移测量系统&#xff0c;为筒仓卸料小车提供远程智能控…

股票指数期货的变动与股票价格指数的关系是什么?

很多小伙伴刚接触金融投资的时候&#xff0c;常常会听到“股票指数期货”和“股票价格指数”这两个词&#xff0c;但搞不清楚它们之间的关系。今天&#xff0c;我就给大家讲讲&#xff0c;这两个东西到底是什么关系。 一、股票价格指数是个什么&#xff1f; 股票价格指数&…

2025LitCTF re wp复现

LitCTF2025 wp&&复现 easy_rc4 魔改RC4&#xff0c;直接在异或处下条件断点&#xff0c;动调获取密钥流 FeatureExtraction 定位到main 前面都是一些初始化函数以及把输入的char型字符串转成int型数据 关键加密在sub_401722(Block, des) 加密逻辑就是 unsigned in…

Lovable + Cursor:零基础搭建专业应用的秘密武器

🚀 Lovable + Cursor:零基础搭建专业应用的秘密武器 为什么你需要这个工作流? 想象一下这样的场景:你用Lovable快速搭建了一个漂亮的网页原型,但当你想要添加更复杂的功能时,却发现自己被限制住了。或者你在Cursor里写代码很顺手,但每次从零开始设计界面都让你头疼不…

ARM GIC V3概述

中断类型 locality- specific peripheral interrupt&#xff08;LPI&#xff09;&#xff1a;LPI是一个有针对性的外设中断&#xff0c;通过affinity路由到特定的PE。 为非安全group1中断边沿触发可以通过its进行路由没有active状态&#xff0c;所以不需要明确的停用操作LPI总…

Docker部署与应用、指令

部署 【Docker】在 Ubuntu 22.04 以下版本上安装 Docker 的详细指南_ubuntu 安装docker-CSDN博客 应用 使用指定镜像创建并运行一个新容器 --name&#xff0c;指定容器名称 -d 代表后台运行 nginx 代表容器镜像名 docker ps 查看运行的容器 -a 查看…

内网横向之RDP缓存利用

RDP&#xff08;远程桌面协议&#xff09;在连接过程中会缓存凭据&#xff0c;尤其是在启用了 "保存密码" 或 "凭据管理器" 功能时。这个缓存的凭据通常是用于自动填充和简化后续连接的过程。凭据一般包含了用户的用户名和密码信息&#xff0c;或者是经过加…

从计量到通信,DJSF1352-D为快充桩系统提供了怎样的解决方案?

摘要 随着新能源汽车保有量的不断攀升&#xff0c;直流充电桩成为城市交通与能源基础设施的重要组成部分。电能计量作为充电桩运营、结算和安全管理的核心环节&#xff0c;对计量设备提出了更高的要求。安科瑞DJSF1352D导轨式直流电能表&#xff0c;凭借高精度、高稳定性和通信…

0518蚂蚁暑期实习上机考试题1:数组操作

题目 小红认为一个长度为 n 的数组 a 是好的&#xff0c;当且仅当对于任意的 i &#xff0c;均满足相等&#xff0c;其中数组下标 i 从 1 开始&#xff0c;小红每次可以对一个数加 1 或者减 1 &#xff0c;求把给定的数组变成好数组的最少操作次数。 输入描述&#xff1a;第一…