网站登录页面代码
一个登录页面,网站核心就三样东西:两个输入框、登录代码一个按钮、页面一段验证逻辑。网站听起来简单,登录代码但真正写起来,页面坑不少。网站
先看最基础的登录代码 HTML 结构。很多人一上来就 div 套 div,页面嵌套五六层,网站其实完全没必要。登录代码一个 form 元素就能搞定大半:
<form id="loginForm"> <input type="text" id="username" placeholder="用户名"> <input type="password" id="password" placeholder="密码"> <button type="submit">登录</button> </form> 就这四行,页面骨架已经立住了。网站input 的登录代码 type 属性别乱写,密码框必须用 type="password",页面否则明文显示,用户当场关页面走人。placeholder 是提示文字,不是标签,别拿它当 label 用——输入内容后提示就消失了,用户回头根本不知道这框填的是什么。老实加个 <label>,或者用 aria-label 兜底。
样式方面,我见过太多登录页死在“居中”这件事上。flex 三行代码的事,有人非要用绝对定位加负 margin,窗口一缩放就歪。直接给 body 上 flex:
body { display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; background: #f5f5f5; } 输入框别用默认样式交差。默认的边框又细又灰,聚焦时那个蓝色轮廓在不同浏览器里长得都不一样。手动统一一下:
input { display: block; width: 100%; padding: 12px; margin-bottom: 16px; border: 1px solid #ccc; border-radius: 6px; font-size: 16px; box-sizing: border-box; } input:focus { outline: none; border-color: #4a90d9; box-shadow: 0 0 0 3px rgba(74,144,217,0.15); } box-sizing: border-box 不加的话,padding 会把宽度撑出去,两个输入框宽度对不齐,看着特别扭。font-size 设成 16px 是有原因的——iOS Safari 里小于 16px 的输入框会自动放大页面,用户体验稀碎。
按钮别用 <div> 冒充,用 <button type="submit">,这样回车键能直接提交表单。样式上给个明确的背景色和 hover 状态:
button { width: 100%; padding: 12px; background: #4a90d9; color: #fff; border: none; border-radius: 6px; font-size: 16px; cursor: pointer; } button:hover { background: #3a7bc8; } 到这一步,页面能看了。但真正决定登录页好不好用的,是验证逻辑。
前端验证永远只是辅助,后端必须再验一遍。我见过有人前端校验完直接跳转,后端接口裸奔,改个 JS 就能绕过。前端验证的目的是减少无效请求,不是保障安全。
用户名和密码的非空检查是最基本的:
document.getElementById('loginForm').addEventListener('submit', function(e) { e.preventDefault(); var username = document.getElementById('username').value.trim(); var password = document.getElementById('password').value; if (!username || !password) { alert('用户名和密码不能为空'); return; } // 发送请求 fetch('/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: username, password: password }) }) .then(function(res) { return res.json(); }) .then(function(data) { if (data.success) { window.location.href = '/dashboard'; } else { alert(data.message || '登录失败'); } }); }); trim() 那一下别省。用户复制粘贴用户名时经常带空格,不处理的话后端匹配不上,用户还以为自己密码错了。
密码框旁边可以加个“显示密码”的切换。实现很简单,点一下把 type 在 password 和 text 之间切:
var toggle = document.getElementById('togglePassword'); toggle.addEventListener('click', function() { var pwd = document.getElementById('password'); if (pwd.type === 'password') { pwd.type = 'text'; toggle.textContent = '隐藏'; } else { pwd.type = 'password'; toggle.textContent = '显示'; } }); 还有一件事:别在客户端存密码。什么 localStorage、sessionStorage,统统不要碰。登录成功后拿到的 token 可以存,密码本身绝对不能落地。
最后说个细节。提交按钮在请求发出后应该禁用,防止用户狂点导致重复提交。加一行 button.disabled = true,请求回来再恢复。这种小地方,用户不会夸你,但不做的话,出了问题就是实打实的麻烦。
登录页代码量不大,但每一行都跟安全、体验挂钩。写完自己拿手机试一遍,拿不同浏览器试一遍,比看十篇教程都管用。
(责任编辑:时尚)
-
一个县的网信办,管着本地几百家网站,真正能联系上的,不到三分之一。剩下的,要么服务器在境外,要么ICP备案是假的,要么就是个空壳。这就是属地网站管理的日常。 去年某地发生火灾,本地论坛有人发帖说死了二
...[详细]
-
打开浏览器控制台,输入navigator.webdriver,回车。如果返回true,说明你正被自动化工具操控——但这和“安全防护”没关系。真正要检测的东西,藏在更深的地方。 我去年帮朋友排查一个诡异
...[详细]
-
《渗透17集在线观看》这个标题,你要是真点进去,大概率会看到一个让你血压升高的画面——满屏的“加载失败”和“请升级VIP”。我昨晚就试了,换了三个网站,两个直接弹赌博广告,一个卡在片头曲转了十圈。最后
...[详细]
-
我在电脑上打开一个可疑的安卓安装包时,第一反应永远是把它扔给apk分析网站。这习惯是从三年前开始的,那时我在某个论坛下载了个所谓的“破解游戏”,装完手机立刻变成广告弹窗轰炸机。后来我学会了一招:先上传
...[详细]
-
我打开e福州官网首页,第一眼看到的不是登录框,而是满屏的“数字生活”宣传图。滚动到右上角,那个“登录”按钮安静地缩在角落,蓝底白字,小得有点过分。这大概就是政府网站的通病——功能越重要,界面越低调。
...[详细]
-
我打开浏览器,输入chat.openai.com,点了一下“Try ChatGPT”。页面加载了三秒,弹出一个对话框,像所有聊天软件一样干净。但对面坐着的不是人,而是一个能写代码、能改论文、能编冷笑话
...[详细]
-
阿根廷女球迷掀衣庆祝未打码视频在网络上炸了锅。画面里,她亢奋得满脸通红,双手把球衣往上一撩,露出黑色运动内衣,周围人群欢呼声几乎掀翻看台。没有马赛克,没有剪裁,就那么直愣愣地传遍了推特、Instagr
...[详细]
-
Windows的蓝屏死机BSOD)是每个用电脑的人都不想碰到的噩梦。但如果你真的遇到了,最让人抓狂的往往不是蓝屏本身,而是屏幕上那几行看不懂的十六进制代码一闪而过,然后电脑自动重启,一切归于平静,你根
...[详细]
-
吉时开奖网官方网站,这个域名我盯了它快三个月。不是因为想买彩票,纯粹出于好奇——一个声称能“预测吉时开奖”的网站,到底靠什么活着? 首页很干净。没有花哨的弹窗,没有闪烁的跑马灯,只有一行大字:“今日吉
...[详细]
-
打开json文件这件事,很多人第一步就卡住了。双击它,系统弹出一个记事本,满屏挤在一起的代码看得人眼晕。其实json不是给人看的,是给机器交换数据用的,但偶尔你得手动改个配置、查个接口返回,这时候就
...[详细]

福彩3d内部黑客资料
阜阳市第三方检测机构
即墨招聘服装质检
怎么获取网页cookies
