【前端】Vue实现网站导航 以卡片形式显示(附Demo)

目录

  • 前言
  • 1. html版本
  • 2. Vue
    • 2.1 Demo1
    • 2.2 Demo2

前言

单独做一个跳转页面推荐阅读:【前端】实现Vue组件页面跳转的多种方式

但是如果网站多了,推荐卡片式导航,具体可看下文:(以图片显示显示各个网站,图片需要内嵌)
在这里插入图片描述

1. html版本

其实html版本和Vue相差不了多少,只是排版问题而已

这一版主要是卡片形式,但是没有嵌入图片,嵌入图片加个位置即可:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue Website Navigation</title><!-- 引入Vue.js --><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script><style>/* 样式可以根据您的需求进行自定义 */.websites {display: flex;flex-wrap: wrap;justify-content: flex-start;align-items: flex-start;}.website-card {width: calc(33.33% - 20px); /* 计算每个卡片宽度 */padding: 20px;margin: 10px;border: 1px solid #ccc;cursor: pointer;}</style>
</head>
<body><div id="app"><!-- 常用网站导航 --><div class="websites"><divclass="website-card"v-for="(site, index) in websites":key="index"@click="openWebsite(site.url)">{{ site.name }}</div></div>
</div><script>// 创建Vue实例new Vue({el: '#app', // 指定挂载点data: { // 数据websites: [{ name: 'Google', url: 'https://www.google.com' },{ name: 'GitHub', url: 'https://github.com' },{ name: 'Stack Overflow', url: 'https://stackoverflow.com' }]},methods: { // 方法openWebsite(url) {window.open(url);}}});
</script></body>
</html>

2. Vue

以下版本会由浅入深,相应修改

2.1 Demo1

卡片形式存在,但没有嵌入图片形式:

<template><div class="websites"><divclass="website-card"v-for="(site, index) in websites":key="index"@click="openWebsite(site.url)">{{ site.name }}</div></div>
</template><script>
export default {data() {return {websites: [{ name: 'Google', url: 'https://www.google.com' },{ name: 'GitHub', url: 'https://github.com' },{ name: 'Stack Overflow', url: 'https://stackoverflow.com' }// 在这里添加更多的网站]};},methods: {openWebsite(url) {window.open(url);}}
};
</script><style scoped>
/* 样式可以根据您的需求进行自定义 */
.websites {display: flex;flex-wrap: wrap;justify-content: flex-start;align-items: flex-start;
}
.website-card {width: calc(33.33% - 20px); /* 计算每个卡片宽度 */padding: 20px;margin: 10px;border: 1px solid #ccc;cursor: pointer;
}
</style>

如果嵌入图片,完整版如下(对应的网站可以修改为本项目路径等,通过request进行请求):

<template><div class="websites"><divclass="website-card"v-for="(site, index) in websites":key="index"@click="openWebsite(site.url)"><img :src="site.image" alt="Website Logo" class="website-image"><span>{{ site.name }}</span></div></div>
</template><script>
export default {data() {return {websites: [{ name: 'Google', url: 'https://www.google.com', image: 'https://via.placeholder.com/150', },{ name: 'GitHub', url: 'https://github.com', image: 'https://via.placeholder.com/150', },{ name: 'Stack Overflow', url: 'https://stackoverflow.com', image: 'https://via.placeholder.com/150', }// 在这里添加更多的网站]};},methods: {openWebsite(url) {window.open(url);}}
};
</script><style scoped>
/* 样式可以根据您的需求进行自定义 */
.websites {display: flex;flex-wrap: wrap;justify-content: flex-start;align-items: flex-start;
}
.website-card {width: calc(33.33% - 20px); /* 计算每个卡片宽度 */padding: 20px;margin: 10px;border: 1px solid #ccc;cursor: pointer;text-align: center;
}
.website-image {width: 100px; /* 图片宽度 */height: auto; /* 自动调整高度 */margin-bottom: 10px;
}
</style>

2.2 Demo2

以上代码图片可能居中,或者样式不够优美

可以适当让图片填充式的方式拉满整个卡片

<template><div class="websites"><divclass="website-card"v-for="(site, index) in websites":key="index"@click="openWebsite(site.url)"><div class="website-image"><img :src="site.image" alt="Website Logo"></div><div class="website-details"><span class="website-name">{{ site.name }}</span></div></div></div>
</template><script>
export default {data() {return {websites: [{ name: 'Google', url: 'https://www.google.com', image: 'https://via.placeholder.com/150', },{ name: 'GitHub', url: 'https://github.com', image: 'https://via.placeholder.com/150', },{ name: 'Stack Overflow', url: 'https://stackoverflow.com', image: 'https://via.placeholder.com/150', }// 在这里添加更多的网站]};},methods: {openWebsite(url) {window.open(url);}}
};
</script><style scoped>
/* 样式可以根据您的需求进行自定义 */
.websites {display: flex;flex-wrap: wrap;justify-content: flex-start;align-items: flex-start;
}
.website-card {width: calc(33.33% - 20px); /* 设置每个卡片的宽度 */margin: 10px; /* 设置外边距 */border: 1px solid #ccc; /* 设置边框 */cursor: pointer;overflow: hidden;text-align: center;display: flex;flex-direction: column;
}
.website-image {flex: 1;overflow: hidden;
}
.website-image img {width: 100%; /* 图片宽度充满整个卡片 */height: auto;
}
.website-details {padding: 10px;
}
.website-name {font-weight: bold;
}
</style>

使用了Flexbox布局

  • .website-card设置为display: flex;,以确保图片和文字在垂直方向上布局良好

  • .website-image部分设置为flex: 1;,以充满剩余的空间,并通过设置overflow: hidden;来确保图片不会超出卡片

  • .website-details部分包含了文字内容,并添加了一些样式来调整字体加粗等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2777217.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门知识点分享——(二十)继承和方法重写

今天是大年三十&#xff0c;祝大家龙年大吉&#xff0c;当然无论何时何地&#xff0c;我们都不要忘记继续学习。今天介绍的是继承和方法重写这两种面向对象编程特点。继承机制指的是&#xff0c;一个类&#xff08;我们称其为子类或派生类&#xff09;可以使用另一个类&#xf…

拟合案例1:matlab积分函数拟合详细步骤及源码

本文介绍一下基于matlab实现积分函数拟合的过程。采用的工具是lsqcurvefit和nlinfit两个函数工具。关于包含积分运算的函数,这里可以分为两大类啊。我们用具体的案例来展示:一种是积分运算中不包含这个自变量,如下图的第一个公式,也就是说它这个积分运算只有R和Q这两个待定…

女程序员失业半年,某央企以为她已婚已孕,准备发offer,结果发现她未婚未孕,立马反悔,取消offer。...

职场中&#xff0c;性别平等一直是热议的话题。特别是女性职员&#xff0c;在招聘和晋升的过程中&#xff0c;往往面临着不小的挑战。 最近&#xff0c;一个帖子在网上引发了广泛关注。一位女性因为失业半年终于拿到了央企的offer&#xff0c;却因为企业误以为她已婚已孕而准备…

二阶系统的迹-行列式平面方法(trace-determinant methods for 2nd order system)

让我们再次考虑二阶线性系统 d Y d t A Y \frac{d\mathbf{Y}}{dt}A\mathbf{Y} dtdY​AY 我们已经知道&#xff0c;分析这种二阶系统。最主要的是注意它的特征值情形。 &#xff08;此处没有重根的情形&#xff0c;所有是partial&#xff09; 而特征值&#xff0c;也就是系…

三、搜索与图论

DFS 排列数字 #include<iostream> using namespace std; const int N 10; int a[N], b[N]; int n;void dfs(int u){if(u > n){for(int i 1; i < n; i)cout<<a[i]<<" ";cout<<endl;return;}for(int i 1; i < n; i){if(!b[i]){b[…

视觉开发板—K210自学笔记(二)

视觉开发板—K210 一、开发之前的准备 工欲善其事必先利其器。各位同学先下载下面的手册&#xff1a; 1.Sipeed-Maix-Bit 资料下载&#xff1a;https://dl.sipeed.com/shareURL/MAIX/HDK/Sipeed-Maix-Bit/Maix-Bit_V2.0_with_MEMS_microphone 2.Sipeed-Maix-Bit 规格书下载&…

MYSQL笔记:约束条件

MYSQL笔记&#xff1a;约束条件 主键约束 不能为空&#xff0c;值必须是不同的&#xff08;唯一性&#xff09; 一个表只能修饰一个主键 PRIMARY KEY自增约束 AUTO_INCREMENT唯一键约束 可以为空 unique非空约束 not null 默认值约束 default 外键约束 foreign key …

【2023年终总结】感恩南洋经历,2024收拾再启程

新年祝福 值此2024农历新年到来之际&#xff0c;祝一直支持“IT进阶之旅”的各位小伙伴们新的一年伴随着新的开始&#xff0c;新的旅程&#xff0c;新的突破&#xff0c;新的收获&#xff0c;新的期待..... 写在前面 2023&#xff0c;“IT进阶之旅”一直处于“停更”状态&#…

OCP使用web console创建和构建应用

文章目录 环境登录创建project赋予查看权限部署第一个image检查pod扩展应用 部署一个Python应用连接数据库创建secret加载数据并显示国家公园地图 清理参考 环境 RHEL 9.3Red Hat OpenShift Local 2.32 登录 在 crc start 启动crc时&#xff0c;可以看到&#xff1a; .....…

律师小程序,在线咨询,在线问答小程序修复头像

应用介绍 演示前端小程序&#xff1a; #小程序://问卜易学咨询/cVtT0ndctaecDKd 律师小程序是一种智能化的服务平台&#xff0c;提供了多种有益的功能。首先&#xff0c;它能够实现在线法律咨询&#xff0c;用户可以通过文字、语音或视频与律师实时沟通&#xff0c;获得专业意见…

飞天使-linux操作的一些技巧与知识点9-zabbix6.0 容器之纸飞机告警设置

文章目录 zabbix 告警纸飞机方式webhook 方式 zabbix 告警纸飞机方式 第一种方式参考 https://blog.csdn.net/yetugeng/article/details/99682432bash-4.4$ cat telegram.sh #!/bin/bashMSG$1TOKEN"61231432278:AAsdfsdfsdfsdHUxBwPSINc2kfOGhVik" CHAT_ID-41dsdde…

【C++】类的6个默认成员函数

目录 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 5. 运算符重载 5.1运算符重载 5.2赋值运算符重载 5.3前置和后置重载 5.4日期类的实现 6. const成员函数 7. 取地址及const取地址操作符重载 1. 类的6个默认成员函数 对于一个空类&#xff0c;编…

封装sku组件

1. 准备模板渲染规格数据 使用Vite快速创建一个Vue项目&#xff0c;在项目中添加请求插件axios&#xff0c;然后新增一个SKU组件&#xff0c;在根组件中把它渲染出来&#xff0c;下面是规格内容的基础模板 <script setup> import { onMounted, ref } from vue import axi…

【Java面试】数据类型常见面试题

什么是包装类型 将基本类型包装进了对象中得到的类型 基本类型和包装类型有什么区别 用途不同&#xff1a;基本类型一般用于局部变量&#xff0c;包装类型用于其他地方存储方式不同&#xff1a;用于局部变量的基本类型存在虚拟机栈中的局部变量表中&#xff0c;用于成员变量…

[C/C++] -- Boost库、Muduo库编译安装使用

1.Muduo库 Muduo 是一个基于 C11 的高性能网络库&#xff0c;其核心是事件驱动、非阻塞 I/O、线程池等技术&#xff0c;以实现高并发、高性能的网络通信。Muduo 库主要由陈硕先生开发维护&#xff0c;已经成为 C 服务器程序员的常用工具之一。 Muduo 库的主要特点&#xff1a…

每日OJ题_位运算①_位运算解题方法+3道OJ

目录 位运算算法原理 ①力扣191. 位1的个数 解析代码 ②力扣338. 比特位计数 解析代码 ③力扣461. 汉明距离 解析代码 位运算算法原理 常见位运算解题方法&#xff1a; 1. 基础位运算&#xff1a; &&#xff1a;按位与&#xff0c;有0就是0 | &#xff1a;按位或&a…

横扫Spark之 - 22个常见的转换算子

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 1. map()2. flatMap()3. filter()4. mapPartitions()5. mapPartitionsWithIndex()6. groupBy()7. distinct()8. coalesce()9. repartition()10. sortBy()11. intersection()12.union()13.…

蓝桥杯每日一练(python)B组

###来源于dotcpp的蓝桥杯真题 题目 2735: 蓝桥杯2022年第十三届决赛真题-取模&#xff08;Python组&#xff09; 给定 n, m &#xff0c;问是否存在两个不同的数 x, y 使得 1 ≤ x < y ≤ m 且 n mod x n mod y 。 输入格式&#xff1a; 输入包含多组独立的询问。 第一…

二维差分---三维差分算法笔记

文章目录 一.二维差分构造差分二维数组二维差分算法状态dp求b[i][j]数组的二维前缀和图解 二.三维前缀和与差分三维前缀和图解:三维差分核心公式图解:模板题 一.二维差分 给定一个原二维数组a[i][j],若要给a[i][j]中以(x1,y1)和(x2,y2)为对角线的子矩阵中每个数都加上一个常数…

绕过系统访问控制

我们研究了最近NSA/CISA 联合网络安全咨询&#xff0c;该咨询涉及这些组织在红/蓝团队演习中发现的首要网络安全问题。在本文中&#xff0c;您将更深入地了解特定问题&#xff0c;包括适用的实际场景&#xff0c;以及可用于限制或克服该问题的缓解策略。这扩展了 NSA/CISA 报告…