新闻中心
CSS初级项目如何制作登录注册切换_tab切换与display控制
登录注册切换功能通过HTML、CSS和J*aScript实现:1. HTML构建包含Tab标签和表单的结构,利用data-tab与id关联;2. CSS设置默认显示登录表单,隐藏注册表单;3. J*aScript监听Tab点击事件,动态切换表单显示与激活状态。

登录注册切换功能是前端开发中常见的交互需求,通过点击不同的标签(Tab)来切换显示登录或注册表单。这个效果可以用原生 J*aScript 结合 CSS 的 display 属性轻松实现,不需要引入复杂框架。
1. 页面结构:HTML 搭建基础布局
我们需要一个容器,包含两个 Tab 标签(登录、注册),以及对应的两个表单内容区域。
<div class="auth-container">
<div class="tabs">
<span class="tab active" data-tab="login">登录</span>
<span class="tab" data-tab="register">注册</span>
</div>
<p><div class="form-container">
<div class="form login-form" id="login">
<h3>用户登录</h3>
<input type="text" placeholder="用户名" />
<input type="password" placeholder="密码" />
<button>登录</button>
</div></p><pre class='brush:php;toolbar:false;'><div class="form register-form" id="register">
<h3>用户注册</h3>
<input type="text" placeholder="用户名" />
<input type="email" placeholder="邮箱" />
<input type="password" placeholder="密码" />
<button>注册</button>
</div>
2. 样式控制:使用 CSS 控制显示与隐藏
默认只显示登录表单,注册表单隐藏。通过设置 display: none 实现隐藏,display: block 显示对应内容。
.auth-container {
width: 300px;
margin: 50p
x auto;
font-family: Arial, sans-serif;
}
<p>.tabs {
display: flex;
border-bottom: 1px solid #ddd;
}</p><p>.tab {
padding: 10px 15px;
cursor: pointer;
background: #f5f5f5;
border: 1px solid #ddd;
border-bottom: none;
margin-right: 5px;
border-radius: 5px 5px 0 0;
}</p><p>.tab.active {
background: #fff;
font-weight: bold;
}</p><p>.form-container {
padding: 20px;
border: 1px solid #ddd;
border-top: none;
min-height: 200px;
}</p><p>.form {
display: none; /<em> 所有表单默认隐藏 </em>/
}</p><p>.form.login-form {
display: block; /<em> 默认显示登录表单 </em>/
}</p>3. 交互逻辑:J*aScript 控制 Tab 切换
为每个 Tab 添加点击事件,根据 data-tab 属性决定显示哪个表单,并更新 Tab 的激活状态。
语鲸
AI智能阅读辅助工具
314
查看详情
document.querySelectorAll('.tab').forEach(tab => {
tab.addEventListener('click', function() {
// 获取当前点击的 tab 对应的内容 ID
const target = this.getAttribute('data-tab');
<pre class='brush:php;toolbar:false;'>// 移除所有 tab 的 active 类
document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));
// 给当前 tab 添加 active 类
this.classList.add('active');
// 隐藏所有表单
document.querySelectorAll('.form').forEach(form => {
form.style.display = 'none';
});
// 显示目标表单
document.getElementById(target).style.display = 'block';}); });
4. 关键点总结
整个实现的核心在于利用 display 属性动态控制元素的显示与隐藏。同时通过自定义属性 data-tab 建立 Tab 与内容之间的映射关系,使代码更清晰易维护。
- HTML 负责结构,用 data-tab 和 id 关联 Tab 与内容
- CSS 设置默认样式,隐藏非激活的表单
- J*aScript 监听点击,切换显示内容并更新视觉状态
- 避免使用多个 display 规则冲突,推荐直接操作 style.display
基本上就这些。不复杂但容易忽略细节,比如初始状态设置和类名清除。掌握这个模式后,可以扩展到更多 Tab 场景,如商品详情页、用户设置面板等。
以上就是CSS初级项目如何制作登录注册切换_tab切换与display控制的详细内容,更多请关注其它相关文章!
# 多个
# 南昌优化网站公司哪家好
# 佛山关键词排名查询
# 成都云网客seo
# 乐山营销推广报价明细
# 京东全站营销推广策略
# 永州购物网站建设素材
# 西城商城网站建设
# 手机网站优化有哪些
# 大学生日常用品营销推广
# 在沈阳怎样进行网站建设
# 自定义
# 中文网
# 相关文章
# 可以用
# 不需要
# css
# 不均匀
# 中不
# 表单
# 用户注
# 点击事件
# 邮箱
# 注册表
# ai
# 前端开发
# ssl
# 前端
# html
# java
# word
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
蛙漫画网页版全站入口 蛙漫热门作品免费浏览
CSS图片焦点样式实现教程:理解与应用tabindex属性
如何使用Node.js csv 包按条件移除含空字段的CSV记录
CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题
Lar*el 递归关系中排除指定分支的教程
Node.js CSV 数据处理:基于字段空值条件过滤整条记录的策略
钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧
Typer应用中动态命令行参数的解析与处理
如何仅使用CSS更改登录界面背景图像图标的颜色
Golang如何使用bytes.Split分割字节切片_Golang bytes切片分割方法
WordPress插件开发:正确注册卸载钩子与避免常见陷阱
怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】
如何使用Go和Martini动态服务解码后的图片
在VS Code中配置和运行Dart程序的完整步骤
深入理解字体排版:Adobe光学字偶距与CSS字偶距的差异与实现
中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】
J*aScript中如何高效提取对象指定属性
Win11网速慢怎么解决 Win11网络设置优化解除限速
KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明
漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址
大象笔记网页版入口 印象笔记网页版登录入口
Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏
魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】
汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口
Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】
抖音网页版平台入口 抖音网页版官网在线访问教程
提升Kafka消费者健壮性:会话超时处理与消息处理语义
如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构
搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具
蛙漫官方正版入口 蛙漫网页在线全集免费观看
谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版
铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】
抖音网页版企业服务中心登录入口_抖音网页版企业登录平台
css绝对定位元素脱离父容器怎么办_确保父元素position非static
解决macOS Tkinter应用双击启动崩溃:PyInstaller打包指南
CSS响应式网页如何实现主次模块比例自适应_flex-grow与flex-shrink调整
在Qt QML中通过Python字典动态更新TextEdit内容的教程
c++20的std::jthread是什么_c++可中断线程与RAII式管理
俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问
顺丰国际快递查询 国际件官方查询入口
Go语言HTML解析:利用Goquery精准获取指定元素内容
TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程
qq游戏跨平台入口_qq游戏多设备同步登录
海棠账号登录入口_登录海棠账户同步阅读记录
LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别
字由网在线版登录地址 字由网网页版安全入口
mc.js官网登录入口 mc.js官方登录入口最新版
妖精动漫免费平台 妖精动漫官网资源观看网址


2025-11-27
浏览次数:次
返回列表
x auto;
font-family: Arial, sans-serif;
}
<p>.tabs {
display: flex;
border-bottom: 1px solid #ddd;
}</p><p>.tab {
padding: 10px 15px;
cursor: pointer;
background: #f5f5f5;
border: 1px solid #ddd;
border-bottom: none;
margin-right: 5px;
border-radius: 5px 5px 0 0;
}</p><p>.tab.active {
background: #fff;
font-weight: bold;
}</p><p>.form-container {
padding: 20px;
border: 1px solid #ddd;
border-top: none;
min-height: 200px;
}</p><p>.form {
display: none; /<em> 所有表单默认隐藏 </em>/
}</p><p>.form.login-form {
display: block; /<em> 默认显示登录表单 </em>/
}</p>