Web前端网页设计与制作(想起来哪里写哪里版)

本文技术栈基于Html+Css+JavaScript制作web页面以及功能实现的部分设计与展示,实际的网站开发会涉及更多的细节,包括但不限于用户认证、数据库存储、前端框架的使用、响应式设计、安全性措施等。

废话不说,直接看源码

1.index

  1. 首页:包含导航栏和一些基本介绍。
  2. 菜单页面:列出所有可选购的商品。
  3. 商品详情页面:当用户点击某个商品时,会展示该商品的详细信息,如价格、介绍等。
  4. 购物车页面:展示用户已选择的商品,并提供跳转至支付界面的选项。
  5. 支付界面:提供支付方式选择,如微信和支付宝。
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>菜单页面</title><link rel="stylesheet" href="css/second.css">
</head>
<body><header><nav><ul><li><a href="menu.html">首页</a></li><li>菜单</a></li><li><a href="second_shopping.html" id="cart-link">购物车</a></li><li><a href="about.html">关于</a></li></ul></nav></header><section id="product-section"><div class="product-item"><h2>红烧肉</h2><img src="img/l1.jpg" alt="红烧肉" class="product-image"><p>价格:¥35</p><p>介绍:红烧肉是一道经典的中式美食,味道鲜美,肉质鲜嫩。</p><button class="add-to-cart" data-product='{"name": "红烧肉", "price": 35}'>加入购物车</button></div><div class="product-item"><h2>黄烧肉</h2><img src="img/l1.jpg" alt="黄烧肉" class="product-image"><p>价格:¥35</p><p>介绍:黄烧肉是一道经典的中式美食,味道鲜美,肉质鲜嫩。</p><button class="add-to-cart" data-product='{"name": "黄烧肉", "price": 35}'>加入购物车</button></div><div class="product-item"><h2>绿烧肉</h2><img src="img/l1.jpg" alt="绿烧肉" class="product-image"><p>价格:¥35</p><p>介绍:绿烧肉是一道经典的中式美食,味道鲜美,肉质鲜嫩。</p><button class="add-to-cart" data-product='{"name": "绿烧肉", "price": 35}'>加入购物车</button></div><div class="product-item"><h2>粉烧肉</h2><img src="img/l3.jpg" alt="粉烧肉" class="product-image"><p>价格:¥35</p><p>介绍:粉烧肉是一道经典的中式美食,味道鲜美,肉质鲜嫩。</p><button class="add-to-cart" data-product='{"name": "粉烧肉", "price": 35}'>加入购物车</button></div><div class="product-item"><h2>黑烧肉</h2><img src="img/l2.jpg" alt="黑烧肉" class="product-image"><p>价格:¥35</p><p>介绍:黑烧肉是一道经典的中式美食,味道鲜美,肉质鲜嫩。</p><button class="add-to-cart" data-product='{"name": "黑烧肉", "price": 35}'>加入购物车</button></div></section><footer><p>&copy; 2024 简易购物网站</p></footer><script src="js/second.js"></script>
</body>
</html>

Css

/* 重置浏览器默认样式 */
* {margin: 0;padding: 0;box-sizing: border-box;
}body {font-family: 'Arial', sans-serif;line-height: 1.6;background-color: #f4f4f4;color: #333;
}/* 导航栏样式 */
header {background-color: #333;color: #fff;padding: 10px 20px;text-align: center;
}nav ul {list-style: none;display: flex;justify-content: space-around;
}nav ul li a {text-decoration: none;color: #fff;padding: 10px 15px;transition: background-color 0.3s ease;
}nav ul li a:hover {background-color: #555;
}/* 商品详情部分样式 */
#product-section {display: flex;flex-wrap: wrap;justify-content: space-around;margin: 20px;padding: 20px;background: #fff;box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}.product-item {flex-basis: calc(20% - 20px);margin: 10px;text-align: center;padding: 20px;background: #f9f9f9;border: 1px solid #ddd;border-radius: 5px;
}.product-image {max-width: 100%;height: auto;margin-bottom: 20px;
}.product-item h2 {color: #d62828;margin-bottom: 10px;
}.product-item p {margin-bottom: 15px;
}/* 按钮样式 */
.add-to-cart {display: inline-block;padding: 10px 20px;background-color: #5cb85c;color: white;border: none;border-radius: 5px;cursor: pointer;transition: background-color 0.3s ease;
}.add-to-cart:hover {background-color: #4cae4c;
}/* 页脚样式 */
footer {background-color: #333;color: #fff;text-align: center;padding: 20px 0;position: relative;bottom: 0;width: 100%;
}

Js 

document.querySelectorAll('.add-to-cart').forEach(button => {button.addEventListener('click', function() {const productData = JSON.parse(this.getAttribute('data-product'));let cart = JSON.parse(localStorage.getItem('cart')) || [];cart.push(productData);localStorage.setItem('cart', JSON.stringify(cart));alert('商品已添加到购物车!');document.getElementById('cart-link').textContent = `购物车 (${cart.length})`;});
});window.onload = function() {const cartItems = JSON.parse(localStorage.getItem('cart')) || [];document.getElementById('cart-link').textContent = `购物车 (${cartItems.length})`;
};

2.index 

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>购物车</title><link rel="stylesheet" href="css/shopping.css">
</head>
<body><header><nav><ul><li><a href="index.html">首页</a></li></ul></nav></header><section id="cart"><h2>购物车</h2><ul id="cart-items"></ul><p id="total">总计:¥0</p> <button id="clear-cart">清空购物车</button> <button id="checkout">结算</button> </section><footer><p>&copy; 2024 简易购物网站</p></footer><script src="js/shopping.js"></script>
</body>
</html>

 此处购物车页面没有做页面美化,只是提供了个大致Model哈便于演示功能设计,加个Style和一些美化元素即可

Css 

/* 重置浏览器默认样式 */
* {margin: 0;padding: 0;box-sizing: border-box;
}body {font-family: 'Arial', sans-serif;line-height: 1.6;background-color: #f4f4f4;color: #333;
}/* 导航栏样式 */
header {background-color: #333;color: #fff;padding: 10px 20px;text-align: center;
}nav ul {list-style: none;display: flex;justify-content: space-around;
}nav ul li a {text-decoration: none;color: #fff;padding: 10px 15px;transition: background-color 0.3s ease;
}nav ul li a:hover {background-color: #555;
}/* 购物车列表样式 */
#cart-items {list-style: none;padding: 0;margin-top: 20px;
}#cart-items li {background: #fff;margin-bottom: 10px;padding: 10px;box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}/* 按钮样式 */
button {display: block;margin: 10px 0;padding: 10px 20px;background-color: #007bff;color: white;border: none;border-radius: 5px;cursor: pointer;transition: background-color 0.3s ease;
}button:hover {background-color: #0056b3;
}/* 页脚样式 */
footer {background-color: #333;color: #fff;text-align: center;padding: 20px 0;position: relative;bottom: 0;width: 100%;
}

Js 

window.onload = function() {displayCart();
};function displayCart() {const cartItems = JSON.parse(localStorage.getItem('cart')) || [];const cartList = document.getElementById('cart-items');let total = 0;cartList.innerHTML = ''; // 清空现有的列表cartItems.forEach((item, index) => {const itemElement = document.createElement('li');itemElement.textContent = `${item.name} - ¥${item.price}`;cartList.appendChild(itemElement);total += item.price; // 计算总价});// 显示总价const totalDisplay = document.getElementById('total');totalDisplay.textContent = `总计:¥${total}`;
}// 清空购物车按钮事件
document.getElementById('clear-cart').addEventListener('click', function() {if (confirm('确定要清空购物车吗?')) {localStorage.removeItem('cart');window.location.reload(); // 重新加载页面}
});// 结算按钮事件
document.getElementById('checkout').addEventListener('click', function() {if (confirm('确认结算吗?')) {// 这里可以添加实际的结算逻辑,比如调用支付APIalert('结算成功!');localStorage.removeItem('cart'); // 清空购物车window.location.href = 'index.html'; // 结算后跳转到首页}
});

 

此处没有做实际的支付功能,只是模拟支付场景,这个示例提供了一个基本的购物车功能,用户可以点击“加入购物车”将商品添加到购物车列表中,点击“结账”会弹出支付成功的提示并清空购物车。实际的支付过程需要与支付服务提供商的API进行集成,这通常涉及到服务器端的逻辑和安全性考虑。

主页以及关于部分,直接连接另外Html页面,根据自己需求书写内容以及样式即可,这里就不一一展示了

 仅供参考,提供思路方法,如有不足,欢迎指正,书写不易,喜欢点赞收藏呦~~

补充:


要在购物车页面显示商品的图片,需要在购物车页面的JavaScript中处理商品信息,并在HTML中为每个商品创建一个包含图片和文本的列表项。以下是实现这一功能的完整代码示例。 

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>购物车</title><link rel="stylesheet" href="css/second.css">
</head>
<body><header><nav><ul><li><a href="index.html">首页</a></li><li><a href="menu.html">菜单</a></li><li><a href="second_shopping.html" id="cart-link">购物车</a></li><li><a href="about.html">关于</a></li></ul></nav></header><section id="cart"><h2>购物车</h2><ul id="cart-items"></ul><p id="total">总计:¥0</p><button id="clear-cart">清空购物车</button><button id="checkout">结算</button></section><footer><p>&copy; 2024 简易购物网站</p></footer><script src="js/shopping.js"></script>
</body>
</html>
/* 重置浏览器默认样式 */
* {margin: 0;padding: 0;box-sizing: border-box;
}body {font-family: 'Arial', sans-serif;line-height: 1.6;background-color: #f4f4f4;color: #333;
}/* 导航栏样式 */
header {background-color: #333;color: #fff;padding: 10px 20px;text-align: center;
}nav ul {list-style: none;display: flex;justify-content: space-around;
}nav ul li a {text-decoration: none;color: #fff;padding: 10px 15px;transition: background-color 0.3s ease;
}nav ul li a:hover {background-color: #555;
}/* 购物车列表样式 */
#cart-items {list-style: none;padding: 0;margin-top: 20px;
}#cart-items li {background: #fff;margin-bottom: 10px;padding: 10px;box-shadow: 0 2px 4px rgba(0,0,0,0.1);display: flex;align-items: center;
}#cart-items img {width: 50px; /* 根据需要调整图片大小 */height: auto;margin-right: 10px;
}/* 按钮样式 */
button {display: block;margin: 10px 0;padding: 10px 20px;background-color: #007bff;color: white;border: none;border-radius: 5px;cursor: pointer;transition: background-color 0.3s ease;
}button:hover {background-color: #0056b3;
}/* 页脚样式 */
footer {background-color: #333;color: #fff;text-align: center;padding: 20px 0;position: relative;bottom: 0;width: 100%;
}
window.onload = function() {displayCart();
};function displayCart() {const cartItems = JSON.parse(localStorage.getItem('cart')) || [];const cartList = document.getElementById('cart-items');let total = 0;cartList.innerHTML = ''; // 清空现有的列表cartItems.forEach((item, index) => {const itemElement = document.createElement('li');const itemImage = document.createElement('img');itemImage.src = `img/${item.name}.jpg`; // 假设图片文件名与商品名称相同itemImage.alt = item.name;itemImage.style.width = '50px'; // 根据需要调整图片大小itemElement.appendChild(itemImage);itemElement.textContent += ` ${item.name} - ¥${item.price}`;cartList.appendChild(itemElement);total += item.price; // 计算总价});// 显示总价const totalDisplay = document.getElementById('total');totalDisplay.textContent = `总计:¥${total}`;
}// 清空购物车按钮事件
document.getElementById('clear-cart').addEventListener('click', function() {if (confirm('确定要清空购物车吗?')) {localStorage.removeItem('cart');window.location.reload(); // 重新加载页面}
});// 结算按钮事件
document.getElementById('checkout').addEventListener('click', function() {if (confirm('确认结算吗?')) {// 这里可以添加实际的结算逻辑,比如调用支付APIalert('结算成功!');localStorage.removeItem('cart'); // 清空购物车window.location.href = 'index.html'; // 结算后跳转到首页}
});

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

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

相关文章

【漏洞复现】泛微e-cology9 WorkflowServiceXml SQL注入漏洞

文章目录 前言漏洞描述影响范围 漏洞复现nuclei脚本 安全修复 前言 泛微协同管理应用平台e-cology是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。 漏洞…

算法学习day16——刷题(仍然是数组)

一、图片平滑器 图像平滑器 是大小为 3 x 3 的过滤器&#xff0c;用于对图像的每个单元格平滑处理&#xff0c;平滑处理后单元格的值为该单元格的平均灰度。 每个单元格的 平均灰度 定义为&#xff1a;该单元格自身及其周围的 8 个单元格的平均值&#xff0c;结果需向下取整…

使用llama-cpp-python制作api接口

文章目录 概要整体操作流程技术细节小结 概要 使用llama-cpp-python制作api接口&#xff0c;可以接入gradio当中&#xff0c;参考上一节。 llama-cpp-python的github网址 整体操作流程 下载llama-cpp-python。首先判断自己是在CPU的环境下还是GPU的环境下。以下操作均在魔搭…

应用层——HTTP

像我们电脑和手机使用的应用软件就是在应用层写的&#xff0c;当我们的数据需要传输的时候换将数据传递到传输层。 应用层专门给用户提供应用功能&#xff0c;比如HTTP,FTP… 我们程序员写的一个个解决我们实际的问题都在应用层&#xff0c;我们今天来聊一聊HTTP。 协议 协议…

Java案例遍历集合中的自定义对象

目录 一&#xff1a;案例要求&#xff1a; 二案例分析&#xff1a; ​编辑三&#xff1a;具体代码&#xff1a; 四&#xff1a;运行结果&#xff1a; 一&#xff1a;案例要求&#xff1a; 二案例分析&#xff1a; 三&#xff1a;具体代码&#xff1a; Ⅰ&#xff1a; pack…

pyinstaller用法详解3

本文使用创作助手。 大家好&#xff0c;时隔多日&#xff0c;我又更新了pyinstaller的用法详解&#xff01; 当然&#xff0c;这一次要比之前更详细&#xff0c;十分详细。 谢谢大家的支持&#xff0c;我们现在开始&#xff01; 一、快速开始使用pyinstaller 我之前的文章…

Web3时代的教育技术革新:智能合约在学习管理中的应用

随着区块链技术的发展和普及&#xff0c;Web3时代正在为教育技术带来前所未有的革新和机遇。智能合约作为区块链技术的核心应用之一&#xff0c;不仅在金融和供应链管理等领域展示了其巨大的潜力&#xff0c;也在教育领域中逐渐探索和应用。本文将探讨智能合约在学习管理中的具…

Java 中的迭代器

Iterator (迭代器) 正是由于每一个容器都有取出元素的功能&#xff0c;这些功能定义都一样&#xff0c;所以对共性的取出功能进行了抽取&#xff0c;从而出现了Iterator接口。由于每一个容器的数据结构不一样&#xff0c;所以具体的实现方式也不同&#xff0c;每一个容器都在其…

[激光原理与应用-115]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 19 - 主要硬件的介绍、安装与调试

目录 一、概述 1.1 前言 1.2 系统组成 1.2.1 机柜版&#xff1a; 1.2.2 非机柜版 1.3适用范围 1.4 工作条件 1.5 安全说明 1.6 装箱清单 二、硬件安装 2.1 光学传感器安装 2.1.1 转接件安装 2.1.2 光路校准模块的安装与光路校准 2.1.3 光学传感器的安装 2.2 通…

Docker安装mysql详细教程, mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘(已解决)

文章目录 一、下载MySQL的docker镜像二、启动MySQL容器2.1 命令2.2 报错mysqld: Cant read dir of /etc/mysql/conf.d/ (Errcode: 2 - No such file or directory) 三、进入mysql容器四、修改mysql默认配置4.1 查看mysql挂载的文件夹4.2 mysql配置 五、补充 如果还没在虚拟机/服…

新版本cesium编译1.103之后的版本

cesium1.1之后的版本文件结构域1.1之前的版本有了很大的差别&#xff0c;源码也全部移到了packages目录中。有很多依赖包没有写在根目录的package.json文件中。npm i 后直接编译会保持。 cesium源码git https://github.com/CesiumGS/cesium 1、添加缺少的包&#xff0c;缺少的…

《昇思25天学习打卡营第25天|onereal》

初学入门/初学教程/08-模型训练.ipynb 模型训练 模型训练一般分为四个步骤&#xff1a; 构建数据集。定义神经网络模型。定义超参、损失函数及优化器。输入数据集进行训练与评估。 现在我们有了数据集和模型后&#xff0c;可以进行模型的训练与评估。 构建数据集 首先从数…

SSD实现

一、模型 此模型主要由基础网络组成&#xff0c;其后是几个多尺度特征块。基本网络用于从输入图像中提取特征&#xff0c;因此它可以使用深度卷积神经网络。 单发多框检测选用了在分类层之前截断的VGG&#xff0c;现在也常用ResNet替代&#xff1b;可以设计基础网络&#xff0c…

synchronized的实现原理和锁升级 面试重点

1.synchronized的实现原理 synchronized是Java 中的一个很重要的关键字&#xff0c;主要用来加锁&#xff0c;synchronized所添加的锁有以下几个特点。synchronized的使用方法比较简单&#xff0c;主要可以用来修饰方法和代码块。根据其锁定的对象不同&#xff0c;可以用来定义…

生命周期的妙用——Vue3

Vue3的生命周期 从Vue2到Vue3&#x1f47e;不只onMounted又见keep-alive主要属性被你包裹应用场景 ) 从Vue2到Vue3&#x1f47e; Vue 3 保留了大多数 Vue 2 的生命周期钩子&#xff0c;同时引入了组合 API 中的生命周期钩子。以下是 Vue 3 中的生命周期钩子&#xff1a; 不…

数据库管理的艺术(MySQL):DDL、DML、DQL、DCL及TPL的实战应用(下:数据操作与查询)

文章目录 DML数据操作语言1、新增记录2、删除记录3、修改记录 DQL数据查询语言1、查询记录2、条件筛选3、排序4、函数5、分组条件6、嵌套7、模糊查询8、limit分页查询 集合操作union关键字和运算符in关键字any关键字some关键字all关键字 联合查询1、广义笛卡尔积2、等值连接3、…

HTML+JS+CSS计算练习

可填 题目数量 数字范围 计算符号 题目做完后会弹窗提示正确率、用时 效果图 源代码在图片后面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevic…

【深度学习】inpaint图像中的alpha混合图的边缘处理

比如原图是&#xff1a; 红圈内就是文字水印&#xff0c;经过inpaint后得到图和原图混合&#xff0c;如何处理边界呢&#xff0c;这个代码可以干这事&#xff1a; 越是中心就直接用inpaint图&#xff0c;否则就用原图&#xff0c;这样进行alpha混合。 import numpy as np i…

js reduce 的别样用法

let mergedItems list.reduce((accumulator, currentItem) > {let existingItem accumulator.find((item) > item.manObject_name currentItem.manObject_name);if (existingItem) {existingItem.laborCostHand currentItem.laborCostHand; //劳务费existingItem.wor…

windows下使用make编译C/C++程序 gcc编译 MinGW编译器

文章目录 1、概要2、编译环境搭建3、创建工程目录结构4、 编写程序4.1 编写头文件4.2 编写源文件 5、编写makefile及相关文件5.1 编写清理编译生成文件的批处理文件&#xff0c;供makefile调用5.2 编写makefile文件 6、编译工程6.1 打开命令行6.2 使用make命令编译程序6.3 编译…