当前位置: 首页 > news >正文

CSS 平铺+自动换行效果

先上效果图

 

 样式

<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.lqws.cn/news/98425.html

相关文章:

  • IT运维工具推荐
  • Web前端为什么要打包?Webpack 和 Vite 如何助力现代开发?
  • 统信 UOS 服务器版离线部署 DeepSeek 攻略
  • vue-14(使用 ‘router.push‘ 和 ‘router.replace‘ 进行编程导航)
  • 芒果深度学习检测:开启农业新视界(猫脸码客第230期)
  • CentOS Stream 8 Unit network.service not found
  • 美尔斯通携手北京康复辅具技术中心开展公益活动,科技赋能助力银龄健康管理
  • dvwa5——File Upload
  • 智能氮气柜的发展历程和前景展望
  • 星野录(博客系统)测试报告
  • 从“Bucharest”谈起:词语翻译的音译与意译之路
  • 项目任务,修改svip用户的存储空间。
  • 帝可得 - 设备管理
  • Spring中@Controller和@RestControlle注解的区别
  • Spring AI Advisor机制
  • 用 Vue 做一个轻量离线的“待办清单 + 情绪打卡”小工具
  • LangChain实战:文档加载、分割与向量存储详解
  • Linux或者Windows下PHP版本查看方法总结
  • 浅谈机械硬盘存储技术与磁盘格式化
  • ORA-12899: value too large for column LONG_TYPE (actual: 30, maximum: 20)
  • 谷歌地图高清卫星地图2026中文版下载|谷歌地图3D卫星高清版 V7.3.6.9796 最新免费版下载 - 前端工具导航
  • UniRig:如何在矩池云一站式解决 3D 模型绑定难题
  • Flink03-学习-套接字分词流自动写入工具
  • 剑指offer14_二进制中1的个数
  • 用HTML5 Canvas打造交互式心形粒子动画:从基础到优化实战
  • 链表题解——反转链表【LeetCode】
  • (三)动手学线性神经网络:从数学原理到代码实现
  • 机器学习——主成分分析PCA
  • 数据库密码加密
  • lanqiaoOJ 1508:N皇后问题 ← dfs