当前位置: 首页 > 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>

相关文章:

  • ADC接口电路设计详解
  • Vue 树状结构控件
  • 黑马Java面试笔记之 集合篇(算法复杂度+ArrayList+)
  • 免费开源Umi-OCR,离线使用,批量精准!
  • Trae CN IDE自动生成注释功能测试与效率提升全解析
  • 点击启动「高效模式」:大腾智能 CAD 重构研发设计生产力
  • “packageManager“: “pnpm@9.6.0“ 配置如何正确启动项目?
  • 《Pytorch深度学习实践》ch5-Logistic回归
  • Ubuntu系统安装与配置NTP时间同步服务
  • 邢台山峰特种橡胶制品有限公司专题报道
  • 实战商品订单秒杀设计实现
  • 蜜獾算法(HBA,Honey Badger Algorithm)
  • LangChain核心之Runnable接口底层实现
  • matlab实现掺杂光纤放大器的模拟
  • Termux下如何使用MATLAB
  • GCC内存占用统计使用指南
  • 《深入解析SPI协议及其FPGA高效实现》-- 第三篇:FPGA实现关键技术与优化
  • TCP的粘包和拆包
  • mac环境下的python、pycharm和pip安装使用
  • Linux Maven Install
  • 十大不充钱的手游/福州seo代理商
  • 网站被挂马做js跳转/网站seo哪家做的好
  • 寮步镇仿做网站/seo的基础优化
  • 网站建设与单位干部作风的关系/seo人员的相关薪资
  • 有哪些做兼职的设计网站有哪些工作/西地那非片说明书
  • 怎么建设自己淘宝网站/人力资源培训网