利用 HTML + CSS 实现用户注册页面,效果如下图:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用户注册表单</title>
<style>
/* 全局样式重置,消除默认边距和内外边距 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Microsoft YaHei", sans-serif;
}
/* 页面背景样式,让表单居中显示 */
body {
background-color: #f5f7fa;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 20px;
}
/* 表单容器样式 */
.register-container {
background-color: #ffffff;
padding: 40px 30px;
border-radius: 12px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
width: 100%;
max-width: 500px;
}
/* 表单标题样式 */
.register-title {
text-align: center;
color: #333333;
font-size: 24px;
margin-bottom: 30px;
font-weight: 600;
}
/* 表单组(每个输入项+标签)样式 */
.form-group {
margin-bottom: 25px;
position: relative;
}
/* 标签样式 */
.form-group label {
display: block;
color: #555555;
font-size: 14px;
margin-bottom: 8px;
font-weight: 500;
}
/* 输入框样式 */
.form-group input {
width: 100%;
height: 48px;
padding: 0 15px;
border: 1px solid #e0e0e0;
border-radius: 8px;
font-size: 16px;
color: #333333;
transition: border-color 0.3s ease;
}
/* 输入框聚焦样式 */
.form-group input:focus {
outline: none;
border-color: #409eff;
box-shadow: 0 0 0 3px rgba(64, 158, 255, 0.1);
}
/* 输入框提示文本样式(校验提示) */
.form-group .tip-text {
font-size: 12px;
margin-top: 5px;
visibility: hidden; /* 默认隐藏 */
}
/* 失焦后校验(简单视觉提示,无JS逻辑) */
.form-group input:invalid:not(:focus):not(:placeholder-shown) {
border-color: #f56c6c;
}
.form-group input:invalid:not(:focus):not(:placeholder-shown) + .tip-text {
visibility: visible;
color: #f56c6c;
}
/* 合法输入样式 */
.form-group input:valid:not(:focus):not(:placeholder-shown) {
border-color: #67c23a;
}
.form-group input:valid:not(:focus):not(:placeholder-shown) + .tip-text {
visibility: visible;
color: #67c23a;
content: "输入合法";
}
/* 单选框组样式 */
.radio-group {
display: flex;
gap: 20px;
margin-top: 8px;
}
.radio-group label {
display: flex;
align-items: center;
gap: 6px;
cursor: pointer;
margin-bottom: 0;
}
.radio-group input {
width: 18px;
height: 18px;
cursor: pointer;
}
/* 提交按钮样式 */
.submit-btn {
width: 100%;
height: 50px;
background-color: #409eff;
color: #ffffff;
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: 500;
cursor: pointer;
transition: background-color 0.3s ease;
margin-top: 10px;
}
/* 提交按钮hover样式 */
.submit-btn:hover {
background-color: #66b1ff;
}
/* 底部说明文本样式 */
.footer-text {
text-align: center;
color: #999999;
font-size: 12px;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="register-container">
<h2 class="register-title">用户注册</h2>
<form action="#" method="post">
<!-- 用户名 -->
<div class="form-group">
<label for="username">用户名</label>
<input type="text" id="username" placeholder="请输入3-16位字母/数字/下划线"
pattern="^[a-zA-Z0-9_]{3,16}$" required>
<span class="tip-text">请输入3-16位字母、数字或下划线</span>
</div>
<!-- 手机号 -->
<div class="form-group">
<label for="phone">手机号码</label>
<input type="tel" id="phone" placeholder="请输入11位手机号码"
pattern="^1[3-9]\d{9}$" required>
<span class="tip-text">请输入有效的11位手机号码</span>
</div>
<!-- 邮箱 -->
<div class="form-group">
<label for="email">电子邮箱</label>
<input type="email" id="email" placeholder="请输入你的电子邮箱" required>
<span class="tip-text">请输入有效的电子邮箱格式(如:xxx@xxx.com)</span>
</div>
<!-- 密码 -->
<div class="form-group">
<label for="password">设置密码</label>
<input type="password" id="password" placeholder="请输入6-20位密码"
pattern="^.{6,20}$" required>
<span class="tip-text">请输入6-20位密码</span>
</div>
<!-- 确认密码 -->
<div class="form-group">
<label for="repassword">确认密码</label>
<input type="password" id="repassword" placeholder="请再次输入密码"
pattern="^.{6,20}$" required>
<span class="tip-text">两次输入的密码请保持一致</span>
</div>
<!-- 性别选择 -->
<div class="form-group">
<label>性别</label>
<div class="radio-group">
<label for="male">
<input type="radio" id="male" name="gender" value="male">男
</label>
<label for="female">
<input type="radio" id="female" name="gender" value="female">女
</label>
<label for="other">
<input type="radio" id="other" name="gender" value="other">其他
</label>
</div>
</div>
<!-- 提交按钮 -->
<button type="submit" class="submit-btn">完成注册</button>
<!-- 底部说明 -->
<p class="footer-text">点击注册即表示同意《用户协议》和《隐私政策》</p>
</form>
</div>
</body>
</html>