HTML+BootStrap实现蛋糕商城Demo

news/2025/12/1 16:30:02/文章来源:https://www.cnblogs.com/longkui-site/p/19293353

HTML+BootStrap实现蛋糕商城Demo

原文链接:HTML+BootStrap实现蛋糕商城Demo – 每天进步一点点

 

0.背景

本文主要是实现《Java Web程序设计任务教程》第2版第一章中的任务:蛋糕商城。

技术:HTML+BootStrap

工具:vscode

1.创建项目

我们在电脑D盘下创建一个文件夹,名称就叫cake,使用VSCode打开这个文件夹,然后创建第一个文件,index.html,写下基础代码框架

可以把BootStrap下载下下来,也可以使用在线版本

简介 · Bootstrap v4 中文文档 v4.6 | Bootstrap 中文网

CDN地址:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

参考代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>蛋糕商城</title>
<!-- 引入Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
</head>
<body>
 
这是body
<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-7ymO4nGrkm372HoSbq1OY2DP4pEZnMiA+E0F3zPr+JQQtQ82gQ1HPY3QIVtztVua" crossorigin="anonymous"></script>
</body>
</html>

基础效果如下:

2.网页跳转

我们在网站中经常使用页面跳转功能,原生的HTML一般使用网页的堆叠的形式。

比如我当前创建index.html,我如果创建一个header.html,一般情况下需要把index.html里面的内容全部复制到header.html,然后再编写header.html里面的具体内容,类似于“增量开发”,这种方式比较费时费力,目前想最新的vue、angular等前端开发框架,早就可以实现“组件式”开发了。

本文为了演示,使用原始的方式进行操作。

3.创建header.html

我们在项目文件夹中创建header.html文件,参考代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>蛋糕商城</title>
<!-- 引入Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
</head>
<body>
<!-- 导航栏 -->
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">蛋糕商城</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="header.html">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">商品分类</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">热销</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">新品</a>
</li>
<li class="nav-item">
<a class="nav-link" href="register.html">注册</a>
</li>
<li class="nav-item">
<a class="nav-link" href="login.html">登录</a>
</li>
 
</ul>
</div>
</div>
</nav>
 
<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

效果如下:

使用样式优化一下,加入样式、首页欢迎词、下拉框和图标

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>蛋糕商城</title>
<!-- 引入Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<!-- 引入Bootstrap ICON -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
 
 
<style>
.navbar-custom {
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #000; /* 导航栏背景为黑色 */
}
.navbar-custom .navbar-brand,
.navbar-custom .nav-link {
color: #fff; /* 字体颜色为白色 */
font-size: 18px; /* 加大字体字号 */
}
.navbar-custom .nav-link:hover {
color: #ccc; /* 鼠标悬停时字体颜色变浅 */
}
.navbar-custom .icons {
margin-left: auto; /* 将图标推到最右侧 */
}
.navbar-custom .icons i {
font-size: 24px; /* 图标变大 */
font-weight: bold; /* 图标加粗 */
}
</style>
</head>
<body>
<!-- 导航栏 -->
 
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand" href="index.html">蛋糕商城</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="header.html">首页</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
商品分类
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="#">生日蛋糕</a></li>
<li><a class="dropdown-item" href="#">婚礼蛋糕</a></li>
<li><a class="dropdown-item" href="#">儿童蛋糕</a></li>
<li><a class="dropdown-item" href="#">定制蛋糕</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="#">热销</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">新品</a>
</li>
<li class="nav-item">
<a class="nav-link" href="register.html">注册</a>
</li>
<li class="nav-item">
<a class="nav-link" href="login.html">登录</a>
</li>
 
</ul>
<!-- 搜索和购物车图标 -->
<div class="icons">
<a href="#" class="text-white me-3"><i class="bi bi-search"></i></a>
<a href="#" class="text-white"><i class="bi bi-cart"></i></a>
</div>
</div>
</div>
</nav>
 
 
<!-- 内容栏 -->
<div class="container mt-4">
<h1>欢迎来到蛋糕商城</h1>
<p>这里有各种美味的蛋糕,欢迎选购!</p>
</div>
 
<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

效果如下:

4.创建footer

footer主要用于描述友情链接于作者署名内容,一般放在页面的底部。如果单独写一个footer.html,那么它的代码大概如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>蛋糕商城</title>
<!-- 引入Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<!-- 引入Bootstrap ICON -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
 
 
<style>
footer {
position: fixed; /* 固定定位 */
bottom: 0; /* 固定在页面底部 */
width: 100%; /* 宽度占满整个页面 */
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit; color: rgb(139, 233, 253);">rgba(0, 0, 0, 0.2); /* 页脚背景色 */
text-align: center;
padding: 10px 0;
}
</style>
</head>
<body>
 
<!-- 页脚 -->
<footer>
<div class="text-center p-3">
© 2023 蛋糕商城. 版权所有.
</div>
</footer>
 
<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

效果如下:

我们把footer这段代码整合到header中,这样就是一个比较完整的页面了。

参考代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>蛋糕商城</title>
<!-- 引入Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<!-- 引入Bootstrap ICON -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
 
 
<style>
.navbar-custom {
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #000; /* 导航栏背景为黑色 */
}
.navbar-custom .navbar-brand,
.navbar-custom .nav-link {
color: #fff; /* 字体颜色为白色 */
font-size: 18px; /* 加大字体字号 */
}
.navbar-custom .nav-link:hover {
color: #ccc; /* 鼠标悬停时字体颜色变浅 */
}
.navbar-custom .icons {
margin-left: auto; /* 将图标推到最右侧 */
}
.navbar-custom .icons i {
font-size: 24px; /* 图标变大 */
font-weight: bold; /* 图标加粗 */
}
footer {
position: fixed; /* 固定定位 */
bottom: 0; /* 固定在页面底部 */
width: 100%; /* 宽度占满整个页面 */
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit; color: rgb(139, 233, 253);">rgba(0, 0, 0, 0.2); /* 页脚背景色 */
text-align: center;
padding: 10px 0;
}
</style>
</head>
<body>
<!-- 导航栏 -->
 
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand" href="index.html">蛋糕商城</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="header.html">首页</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
商品分类
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="#">生日蛋糕</a></li>
<li><a class="dropdown-item" href="#">婚礼蛋糕</a></li>
<li><a class="dropdown-item" href="#">儿童蛋糕</a></li>
<li><a class="dropdown-item" href="#">定制蛋糕</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="#">热销</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">新品</a>
</li>
<li class="nav-item">
<a class="nav-link" href="register.html">注册</a>
</li>
<li class="nav-item">
<a class="nav-link" href="login.html">登录</a>
</li>
 
</ul>
<!-- 搜索和购物车图标 -->
<div class="icons">
<a href="#" class="text-white me-3"><i class="bi bi-search"></i></a>
<a href="#" class="text-white"><i class="bi bi-cart"></i></a>
</div>
</div>
</div>
</nav>
 
 
<!-- 内容栏 -->
<div class="container mt-4">
<h1>欢迎来到蛋糕商城</h1>
<p>这里有各种美味的蛋糕,欢迎选购!</p>
</div>
 
 
<!-- 页脚 -->
<footer>
<div class="text-center p-3">
© 2023 蛋糕商城. 版权所有.
</div>
</footer>
 
<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

这样的话,基础骨架就搭建完了,下面开始搭建其他页面。

5.登录页面login.html

我们创建login.html文件,把header.html里面的代码全部复制过来(删掉欢迎内容),然后编写login.html的主体内容:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>蛋糕商城</title>
<!-- 引入Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<!-- 引入Bootstrap ICON -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
 
 
<style>
.navbar-custom {
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #000; /* 导航栏背景为黑色 */
}
.navbar-custom .navbar-brand,
.navbar-custom .nav-link {
color: #fff; /* 字体颜色为白色 */
font-size: 18px; /* 加大字体字号 */
}
.navbar-custom .nav-link:hover {
color: #ccc; /* 鼠标悬停时字体颜色变浅 */
}
.navbar-custom .icons {
margin-left: auto; /* 将图标推到最右侧 */
}
.navbar-custom .icons i {
font-size: 24px; /* 图标变大 */
font-weight: bold; /* 图标加粗 */
}
footer {
position: fixed; /* 固定定位 */
bottom: 0; /* 固定在页面底部 */
width: 100%; /* 宽度占满整个页面 */
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit; color: rgb(139, 233, 253);">rgba(0, 0, 0, 0.2); /* 页脚背景色 */
text-align: center;
padding: 10px 0;
}
.login-container {
max-width: 400px; /* 表单最大宽度 */
margin: 100px auto; /* 居中 */
padding: 20px;
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #fff; /* 表单背景色 */
border-radius: 8px; /* 圆角 */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* 阴影 */
}
.form-icon {
font-size: 24px; /* 图标大小 */
color: #6c757d; /* 图标颜色 */
}
.form-control {
padding-left: 40px; /* 输入框左边距 */
}
.btn-login {
width: 100%; /* 按钮宽度 */
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #007bff; /* 按钮背景色 */
color: #fff; /* 按钮文字颜色 */
}
.btn-login:hover {
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #0056b3; /* 按钮悬停背景色 */
}
</style>
</head>
<body>
<!-- 导航栏 -->
 
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand" href="index.html">蛋糕商城</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="header.html">首页</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
商品分类
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="#">生日蛋糕</a></li>
<li><a class="dropdown-item" href="#">婚礼蛋糕</a></li>
<li><a class="dropdown-item" href="#">儿童蛋糕</a></li>
<li><a class="dropdown-item" href="#">定制蛋糕</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="#">热销</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">新品</a>
</li>
<li class="nav-item">
<a class="nav-link" href="register.html">注册</a>
</li>
<li class="nav-item">
<a class="nav-link" href="login.html">登录</a>
</li>
 
</ul>
<!-- 搜索和购物车图标 -->
<div class="icons">
<a href="#" class="text-white me-3"><i class="bi bi-search"></i></a>
<a href="#" class="text-white"><i class="bi bi-cart"></i></a>
</div>
</div>
</div>
</nav>
 
 
<!-- 登录 -->
 
<div class="login-container">
<h2 class="text-center mb-4">登录</h2>
<form>
<!-- 用户名输入框 -->
<div class="mb-3 position-relative">
<i class="bi bi-person-fill form-icon position-absolute start-0 top-50 translate-middle-y ms-3"></i>
<input type="text" class="form-control" id="username" placeholder="用户名" required>
</div>
<!-- 密码输入框 -->
<div class="mb-3 position-relative">
<i class="bi bi-lock-fill form-icon position-absolute start-0 top-50 translate-middle-y ms-3"></i>
<input type="password" class="form-control" id="password" placeholder="密码" required>
</div>
<!-- 登录按钮 -->
<button type="submit" class="btn btn-login">登录</button>
</form>
</div>
 
 
<!-- 页脚 -->
<footer>
<div class="text-center p-3">
© 2023 蛋糕商城. 版权所有.
</div>
</footer>
 
<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

效果如下:

测试跳转效果:

6.登录页面register.html

我们创建register.html文件,把header.html里面的代码全部复制过来(删掉欢迎内容),然后编写register.html的主体内容:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>蛋糕商城</title>
<!-- 引入Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<!-- 引入Bootstrap ICON -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
 
 
<style>
.navbar-custom {
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #000; /* 导航栏背景为黑色 */
}
.navbar-custom .navbar-brand,
.navbar-custom .nav-link {
color: #fff; /* 字体颜色为白色 */
font-size: 18px; /* 加大字体字号 */
}
.navbar-custom .nav-link:hover {
color: #ccc; /* 鼠标悬停时字体颜色变浅 */
}
.navbar-custom .icons {
margin-left: auto; /* 将图标推到最右侧 */
}
.navbar-custom .icons i {
font-size: 24px; /* 图标变大 */
font-weight: bold; /* 图标加粗 */
}
footer {
position: fixed; /* 固定定位 */
bottom: 0; /* 固定在页面底部 */
width: 100%; /* 宽度占满整个页面 */
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit; color: rgb(139, 233, 253);">rgba(0, 0, 0, 0.2); /* 页脚背景色 */
text-align: center;
padding: 10px 0;
}
.register-container {
max-width: 500px; /* 表单最大宽度 */
margin: 50px auto; /* 居中 */
padding: 20px;
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #fff; /* 表单背景色 */
border-radius: 8px; /* 圆角 */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* 阴影 */
}
.form-icon {
font-size: 24px; /* 图标大小 */
color: #6c757d; /* 图标颜色 */
}
.form-control {
padding-left: 40px; /* 输入框左边距 */
}
.btn-register {
width: 100%; /* 按钮宽度 */
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #28a745; /* 按钮背景色 */
color: #fff; /* 按钮文字颜色 */
}
.btn-register:hover {
-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; line-height: inherit; font-size: 1.25em; font-family: inherit;"> #218838; /* 按钮悬停背景色 */
}
</style>
</head>
<body>
<!-- 导航栏 -->
 
<nav class="navbar navbar-expand-lg navbar-custom">
<div class="container-fluid">
<a class="navbar-brand" href="index.html">蛋糕商城</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="header.html">首页</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
商品分类
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="#">生日蛋糕</a></li>
<li><a class="dropdown-item" href="#">婚礼蛋糕</a></li>
<li><a class="dropdown-item" href="#">儿童蛋糕</a></li>
<li><a class="dropdown-item" href="#">定制蛋糕</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="#">热销</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">新品</a>
</li>
<li class="nav-item">
<a class="nav-link" href="register.html">注册</a>
</li>
<li class="nav-item">
<a class="nav-link" href="login.html">登录</a>
</li>
 
</ul>
<!-- 搜索和购物车图标 -->
<div class="icons">
<a href="#" class="text-white me-3"><i class="bi bi-search"></i></a>
<a href="#" class="text-white"><i class="bi bi-cart"></i></a>
</div>
</div>
</div>
</nav>
<div class="register-container">
<h2 class="text-center mb-4">注册</h2>
<form action="/user_register" method="post">
<!-- 用户名输入框 -->
<div class="mb-3 position-relative">
<i class="bi bi-person-fill form-icon position-absolute start-0 top-50 translate-middle-y ms-3"></i>
<input type="text" class="form-control" id="username" placeholder="用户名" required>
</div>
<!-- 密码输入框 -->
<div class="mb-3 position-relative">
<i class="bi bi-lock-fill form-icon position-absolute start-0 top-50 translate-middle-y ms-3"></i>
<input type="password" class="form-control" id="password" placeholder="密码" required>
</div>
<!-- 邮箱输入框 -->
<div class="mb-3 position-relative">
<i class="bi bi-envelope-fill form-icon position-absolute start-0 top-50 translate-middle-y ms-3"></i>
<input type="email" class="form-control" id="email" placeholder="邮箱" required>
</div>
<!-- 收货人输入框 -->
<div class="mb-3 position-relative">
<i class="bi bi-person-badge-fill form-icon position-absolute start-0 top-50 translate-middle-y ms-3"></i>
<input type="text" class="form-control" id="receiver" placeholder="收货人" required>
</div>
<!-- 电话输入框 -->
<div class="mb-3 position-relative">
<i class="bi bi-telephone-fill form-icon position-absolute start-0 top-50 translate-middle-y ms-3"></i>
<input type="tel" class="form-control" id="phone" placeholder="电话" required>
</div>
<!-- 收货地址输入框 -->
<div class="mb-3 position-relative">
<i class="bi bi-geo-alt-fill form-icon position-absolute start-0 top-50 translate-middle-y ms-3"></i>
<input type="text" class="form-control" id="address" placeholder="收货地址" required>
</div>
<!-- 注册按钮 -->
<button type="submit" class="btn btn-register">注册</button>
</form>
</div>
 
 
<!-- 页脚 -->
<footer>
<div class="text-center p-3">
© 2023 蛋糕商城. 版权所有.
</div>
</footer>
 
<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

单页面效果如下:

跳转效果如下:

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年全屋智能品牌实力榜发布:系统稳定性与生态开放度成行业核心标准

随着AI、本地边缘计算和物联网协议的加速发展,全屋智能系统已经从早期的“能够互联”迈向“能够长期稳定运行”。根据多家行业机构发布的研究数据,2025年中国智能家居市场规模突破千亿元大关,而用户对“系统稳定性、…

2025博士申请比较,前十留学咨询机构精准度拉满

2025博士申请进入白热化,选对留学机构能帮你少走大半弯路。如何选博士留学中介?核心看专业适配度、背景提升能力和性价比筛选,这三点直接决定申请成功率。下面这份百分制测评,从真实服务细节出发,带你看清10家机构…

前瞻布局:2025年一次性纸杯机与纸碗机优选指南 — 揭秘高效益生产的核心厂商

想买一次性纸杯机器却怕踩坑?2025年,当“全自动”“生产线”“厂家推荐”这些关键词同时出现在搜索引擎里,90%的创业者其实只想搞清楚三件事:谁家的机器速度快、换模简单、售后不用等。今天这篇长文,就把“一次性…

111110

整合Elasticsearch,为博客系统添加了全文检索功能。

完善T型二维表

示例图实现跟excle一样复制粘贴功能 拖动选中单元格实现按delete和backspace后删除单元格 键盘箭头上、下、左、右、回车单元格会往上、下、左、右、下一格二维表组件代码<template><div class="fixed-t…

小杯具大市场大市场:2025纸咖啡杯机与超声波纸杯机厂商巡礼及创富路径富路径

随着新式茶饮行业的蓬勃发展,纸咖啡杯机设备在2025年迎来了新一轮需求高峰。无论是连锁咖啡品牌的扩张,还是小型创业者的入局,选择合适的纸咖啡杯机制造商成为成功的关键因素。一台性能稳定的纸咖啡杯制造机不仅能保…

110111

拥抱Spring Boot,体验了其自动配置与快速启动的魅力。

C# 编程:深入探索高级特性与底层原理,解锁代码的真正力量!

C# 编程:深入探索高级特性与底层原理,解锁代码的真正力量!原文链接:C# 编程:深入探索高级特性与底层原理,解锁代码的真正力量! – 每天进步一点点C# 不仅仅是一门简单的编程语言,它背后蕴含着丰富的设计哲学和…

flink 在技术架构中的配套服务 - 实践

flink 在技术架构中的配套服务 - 实践2025-12-01 16:20 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

110010

使用JUnit对Service层业务逻辑进行了单元测试。

110110

为博客列表添加了基于PageHelper的分页查询。

序列重复项检查

地址:D:\1CAAS\Lab\songqianlin\Cas新蛋白\Cas12\cas12_lmnopq_fasta\重复项去除点击查看代码 from collections import defaultdictfasta_file = (r"D:\1CAAS\Lab\生物信息操作\结构域划分\PLV\IscB\PLV_IscB_v…

GIT提交规范--大模型使用约束

Git 提交规范文档 一、提交信息格式 基本格式 no type subjectbody格式说明no: 需求任务管理平台中任务或缺陷的ID编号(如:sop-72) type: 提交类型(见下方类型表) subject: 提交内容简要说明(不超过50字符) bod…

小型化时代的挑战:选用贴片整流二极管的实用指南-ASIM阿赛姆

电子设备日趋小型化,对元器件的体积提出了极致要求。表面贴装(SMD)整流二极管如何选型?本文从封装、热管理和焊接工艺角度,结合阿赛姆(ASIM)的小封装产品,提供详细指南。 一、行业热点:为何SMD二极管选型越来…

101001

设计了RESTful风格的API接口,用于前后端分离。

110001

集成了SLF4J与Logback,规范了项目的日志输出。

110000

使用Hibernate Validator配合@Valid注解进行了后端数据校验。

最高法--在债务履行期届满后的以物抵债中,只有在债权人催告后合理期间仍不履行,才可触发回归旧债的权利

最高法--在债务履行期届满后的以物抵债中,只有在债权人催告后合理期间仍不履行,才可触发回归旧债的权利2025-12-01 16:20 wwx的个人博客 阅读(0) 评论(0) 收藏 举报最高院民法典合同通则篇司法解释第27条理解与适…

八种基础缓存投毒攻击深度剖析(HackerOne、GitHub、Shopify案例)- 上篇

本文深入分析了基于HackerOne、GitHub、Shopify等平台八个历史案例的基础缓存投毒攻击。文章揭示了早期逻辑缺陷,如无校验的X-Forwarded-Host头、缓存与后端对Content-Type处理差异、标头规范化问题等,这些是理解现代…

2025年河南十大干锅鸭必吃品牌推荐:口碑不错、味道好、食材

本榜单依托实地探店测评、消费者真实口碑与食材溯源调研,深度筛选出十家兼具口感与品质的干锅鸭品牌,为食客提供客观参考,助力精准找到心仪的干锅鸭美食。 TOP1 推荐:商丘任广涛餐饮管理有限公司(任广涛干锅鸭) …