安全初級——網頁

網頁代碼

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>用戶登錄</title><script src="https://cdn.tailwindcss.com"></script><link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet"><script>tailwind.config = {theme: {extend: {colors: {primary: '#165DFF',secondary: '#6B7280',accent: '#3B82F6',light: '#F3F4F6',dark: '#1F2937'},fontFamily: {inter: ['Inter', 'sans-serif'],},}}}</script><style type="text/tailwindcss">@layer utilities {.content-auto {content-visibility: auto;}.card-shadow {box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);}.input-focus {@apply focus:ring-2 focus:ring-primary/50 focus:border-primary focus:outline-none;}@keyframes float {0%, 100% { transform: translateY(0); }50% { transform: translateY(-50px); }
}}</style>
</head>
<body class="bg-black font-inter min-h-screen flex items-center justify-center p-4 text-white"><div class="w-full max-w-md"><div class="bg-gradient-to-br from-blue-200 to-blue-400 rounded-2xl p-8 shadow-xl transition-all duration-300 animate-float duration-2000 cubic-bezier(0.2, 0.8, 0.2, 1)"><div class="text-center mb-8"><h1 class="text-[clamp(1.5rem,3vw,2rem)] font-bold text-white">用戶登錄</h1><p class="text-blue-100 mt-2">歡迎回來,請登錄您的賬號</p></div><form id="loginForm" class="space-y-6"><div><label for="username" class="block text-sm font-medium text-blue-100 mb-1">用戶名</label><div class="relative"><span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-400"><i class="fa fa-user"></i></span><input type="text" id="username" name="username" requiredclass="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus transition-all"placeholder="請輸入用戶名"></div></div><div><div class="flex justify-between items-center mb-1"><label for="password" class="block text-sm font-medium text-blue-100">密碼</label><a href="#" class="text-sm text-primary hover:text-primary/80 transition-colors" id="forgotPassword">忘記密碼?</a></div><div class="relative"><span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-400"><i class="fa fa-lock"></i></span><input type="password" id="password" name="password" requiredclass="w-full pl-10 pr-10 py-3 border border-gray-300 rounded-lg input-focus transition-all"placeholder="請輸入密碼"><button type="button" id="togglePassword" class="absolute inset-y-0 right-0 flex items-center pr-3 text-gray-400 hover:text-gray-600 transition-colors"><i class="fa fa-eye"></i></button></div></div><button type="submit" class="w-full bg-primary hover:bg-primary/90 text-white font-medium py-3 px-4 rounded-lg transition-all transform hover:scale-[1.02] active:scale-[0.98] focus:ring-4 focus:ring-primary/20">登錄</button></form><div class="mt-8 text-center"><p class="text-blue-100">還沒有賬號? <a href="#" class="text-primary font-medium hover:text-primary/80 transition-colors" id="registerLink">立即注冊</a></p></div></div></div><script>// 密碼顯示/隱藏切換const togglePassword = document.getElementById('togglePassword');const passwordInput = document.getElementById('password');togglePassword.addEventListener('click', () => {const type = passwordInput.getAttribute('type') === 'password' ? 'text' : 'password';passwordInput.setAttribute('type', type);togglePassword.querySelector('i').classList.toggle('fa-eye');togglePassword.querySelector('i').classList.toggle('fa-eye-slash');});// 表單提交處理const loginForm = document.getElementById('loginForm');loginForm.addEventListener('submit', (e) => {e.preventDefault();const username = document.getElementById('username').value;const password = document.getElementById('password').value;// 簡單的表單驗證if (!username || !password) {alert('請輸入用戶名和密碼');return;}// 這里可以添加實際的登錄邏輯alert(`登錄成功!用戶名: ${username}`);});// 忘記密碼鏈接document.getElementById('forgotPassword').addEventListener('click', (e) => {e.preventDefault();alert('忘記密碼功能將在后續版本中實現');});// 注冊鏈接document.getElementById('registerLink').addEventListener('click', (e) => {e.preventDefault();alert('注冊功能將在后續版本中實現');});// 添加輸入框獲得焦點時的動畫效果const inputs = document.querySelectorAll('input');inputs.forEach(input => {input.addEventListener('focus', () => {input.parentElement.classList.add('scale-[1.01]');input.parentElement.style.transition = 'transform 0.2s ease';});input.addEventListener('blur', () => {input.parentElement.classList.remove('scale-[1.01]');});});</script>
</body>
</html>

生成效果

核心部分

文檔聲明與根元素

- <!DOCTYPE html> 聲明文檔類型為HTML5
- <html lang="zh-CN"> 定義根元素并指定頁面語言為簡體中文

頭部區域<head>:包含頁面數據及自愿引用

主題內容<body>:使用Flex布局實現內容居中,包含登錄卡片容器

核心組件結構

標題區域 :包含頁面標題和歡迎文本

登錄表單 :包含用戶名/密碼輸入框、表單驗證和提交按鈕

輔助鏈接 :包含"忘記密碼"和"立即注冊"功能鏈接

交互腳本 :位于頁面底部,處理表單提交、密碼顯示切換等交互邏輯

部分解釋

1、頭部文檔(head)

`index.html` 的頭部區域定義了頁面元數據和外部資源引用:

使用 <meta charset="UTF-8"> 指定字符編碼

通過 <meta name="viewport"> 設置響應式視口

引入Tailwind CSS和Font Awesome圖標庫

配置Tailwind自定義主題(顏色、字體等)

定義浮動動畫關鍵幀和工具類

2、頁面主體(body)

主體部分采用黑色背景( bg-black )和白色文字( text-white ),通過Flex布局將內容垂直和水平居中:<body class="bg-black font-inter min-h-screen flex items-center justify-center p-4 text-white">

3、登錄卡片容器

核心登錄區域使用藍色漸變背景( bg-gradient-to-br from-blue-200 to-blue-400 )和浮動動畫( animate-float ):<div class="bg-gradient-to-br from-blue-200 to-blue-400 rounded-2xl p-8 shadow-xl transition-all duration-300 animate-float duration-2000 cubic-bezier(0.2, 0.8, 0.2, 1)">

rounded-2xl 創建圓角效果

shadow-xl 添加陰影深度

animate-float 應用上下浮動動畫

4、表單結構

登錄表單包含以下元素:

用戶名輸入框:帶有用戶圖標和必填驗證

密碼輸入框:帶有鎖圖標、顯示/隱藏切換功能

"忘記密碼"鏈接:點擊觸發提示框

登錄按鈕:帶有懸停縮放效果

注冊鏈接:點擊觸發提示框

5、響應式設計

頁面通過以下方式實現響應式布局:

使用 max-w-md 限制卡片最大寬度

clamp() 函數動態調整標題大小

百分比寬度和內邊距適應不同屏幕尺寸

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92673.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92673.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM原理及其機制(二)

目錄 一 . 垃圾回收機制&#xff08;GC&#xff09; 二 . 垃圾回收的具體步驟 &#xff08;1&#xff09;先找出誰是垃圾 方案一&#xff1a;引用計數 方案二&#xff1a;可達性分析 &#xff08;2&#xff09;釋放垃圾的內存空間 方案一&#xff1a;標記清除 方案二…

Solo:基于 zkHE 的身份驗證協議,構建 Web3 可信匿名身份層

“Solo 正在基于其獨創的 zkHE 架構&#xff0c;構建一套“可信匿名”的鏈上身份系統&#xff0c;有望打破長期困擾 Web3 的“不可能三角”&#xff0c;即在隱私保護、身份唯一性與去中心化可驗證性之間實現兼得。”前不久&#xff0c;Web3 身份層項目 Solo 宣布完成 120 萬美元…

【Excel函數】將數據非空的字段篩選出來放在新列

一、需求描述 將對應數據不為空的字段篩選出來放在新的列里 二、解析 IFERROR(INDEX(B$2:B$10,SMALL(IF(C$2:C$10<>"",ROW(C$2:C$10)-ROW(C$2)1),ROW(A1))),"") 1. IF(C$2:C$10<>"", ROW(C$2:C$10)-ROW(C$2)1) 作用&#xff1a;…

【unity游戲開發入門到精通——組件篇】unity的粒子系統力場 (Particle System Force Field)實現如旋風、吸引力、風吹效果等

文章目錄前言一、參數介紹二、Particle System Force Field 的核心特性三、如何使用1、粒子系統開啟外力選項2、然后再添加粒子系統力場 (Particle System Force Field)即可參考專欄推薦完結前言 Unity的粒子系統是一個非常強大的工具&#xff0c;可以用來創建各種動態效果&am…

JS逆向基礎( AES 解密密文WordArray和Uint8Array實戰②)

1. Uint8Array 就像「快遞柜」 每個格子固定放「1 瓶飲料」(1 字節 = 8 位,范圍 0-255 就像飲料編號) 比如裝了 3 瓶:可樂(編號 255)、雪碧(10)、礦泉水(0) 這是超市通用的標準貨架,任何工具(JS 內置功能)都認識這種擺放方式 用途:運輸、存儲所有二進制東西(圖片…

論文閱讀:《針對多目標優化和應用的 NSGA-II 綜述》一些關于優化算法的簡介

前言 提醒&#xff1a; 文章內容為方便作者自己后日復習與查閱而進行的書寫與發布&#xff0c;其中引用內容都會使用鏈接表明出處&#xff08;如有侵權問題&#xff0c;請及時聯系&#xff09;。 其中內容多為一次書寫&#xff0c;缺少檢查與訂正&#xff0c;如有問題或其他拓展…

Elasticsearch(ES)安裝

docker下安裝ES 拉取鏡像docker pull elasticsearch:7.4.0 創建文件夾 權限賦值 chmod -R 777 /usr/local/docker/es 創建配置 #可訪問IP http.host: 0.0.0.0 # 跨域 http.cors.enabled: true http.cors.allow-origin: "*" 編寫腳本并賦權 首先先返回上一級目錄&…

Pycharm、Python安裝及配置小白教程

本篇博客主要介紹了如何使用工具軟件快速安裝Pycharm和Python并完成基礎配置。 目錄 一、Python與Pycharm是什么&#xff1f; 二、安裝工具軟件 三、安裝Python 四、安裝Pycharm 五、配置Pycharm 1. 基礎設置 2. 配置解釋器 一、Python與Pycharm是什么&#xff1f; …

Redis數據庫入門教程

Redis&#xff08;Remote Dictionary Server&#xff09;是一個開源的、基于內存的高性能鍵值存儲系統&#xff0c;它可以用作數據庫、緩存和消息中間件。本教程將帶你從零開始全面學習Redis&#xff0c;涵蓋基礎概念、安裝配置、數據結構、持久化機制以及與Python的交互等內容…

工業儀表識別(一)環境安裝

儀表識別環境安裝 &#xff11;&#xff0e;cuda cuda 11.8 intall&#xff08;cuda11.8、cuda12.6按照需求安裝&#xff09; ref: https://developer.nvidia.com/cuda-11-8-0-download-archive?target_osLinux&target_archx86_64&DistributionUbuntu&target_vers…

閑庭信步使用圖像驗證平臺加速FPGA的開發:第三十四課——車牌識別的FPGA實現(6)疊加車牌識別的信息

&#xff08;本系列只需要modelsim即可完成數字圖像的處理&#xff0c;每個工程都搭建了全自動化的仿真環境&#xff0c;只需要雙擊top_tb.bat文件就可以完成整個的仿真&#xff0c;大大降低了初學者的門檻&#xff01;&#xff01;&#xff01;&#xff01;如需要該系列的工程…

Windows上用于跨平臺開發的環境工具

1. MSYS2&#xff08;Minimal SYStem 2&#xff09; 一款模擬Unix環境的軟件&#xff0c;可以執行unix命令。通過pacman管理工具&#xff0c;類似Ubuntu上apt-get&#xff0c;RedHat中的yum。 MSYS2最大好處就是能夠在Windows上輕松編譯一些由Unix環境工具鏈開發的工程&#…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-15,(知識點:DC-DC電源,BUCK電路,鐵損,銅損)

目錄 1、題目 2、解答 選項 A 選項 B 選項 C 選項 D 3、相關知識點 一、紋波 二、感量&#xff08;電感量L&#xff09; 三、開關頻率f 四、鐵損 五、銅損 題目匯總版&#xff1a; 【硬件-筆試面試題】硬件/電子工程師&#xff0c;筆試面試題匯總版&#xff0c;持…

Ethereum: 從 1e+21 到千枚以太幣:解密 Geth 控制臺的余額查詢

大家好今天&#xff0c;我們來聊一個新手在接觸以太坊節點時經常會遇到的場景。想象一下&#xff0c;我們成功運行了一個私有以太坊節點&#xff0c;并嘗試查詢一個賬戶的余額&#xff0c;然后我們看到了這樣一個返回結果&#xff1a;1e21。 這是什么意思&#xff1f;是出錯了&…

2025最新軟件測試面試八股文(含答案+文檔)

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 1、什么是POM&#xff0c;為什么要使用它&#xff1f;POM是Page Object Model的簡稱&#xff0c;它是一種設計思想&#xff0c;而不是框架。大概的意思是&#xff…

表格數據處理-TabNet模型使用說明(模型構建+SHAP)

一、模型介紹 論文為《TabNet: Attentive Interpretable Tabular Learning》發表于2021年&#xff0c;屬于Google Cloud AI。該研究針對表格數據提出了一種新的深度神經網絡&#xff08;DNN&#xff09;架構TabNet&#xff0c;旨在解決傳統深度學習在表格數據上表現不如決策樹模…

數據集成難在哪?制造企業該怎么做?

目錄 一、為什么你的數據集成總失敗&#xff1f; 1.數據沒有統一標準 2.數據 “斷點多”&#xff0c;打通成本高 3.數據 “用不起來”&#xff0c;價值難落地 二、數據集成的正確做法是什么&#xff1f; 第一步&#xff1a;明確 “集成為了誰”— 用業務目標倒推數據需求…

Datawhale AI數據分析 作業2

學生考試表現影響因素數據集第一步&#xff1a;數據概覽與清洗Prompt 1:加載StudentPerformanceFactors.csv文件&#xff0c;并顯示前5行數據以及各列的數據類型和非空值數量&#xff0c;檢查是否存在缺失值。處理缺失值是數據預處理的重要一步。對于您提到的缺失值&#xff1a…

Flowable 與 Spring Boot 深度集成:從環境搭建到平臺構建

在前三篇文章中&#xff0c;我們依次認識了 Flowable 的基礎概念、用 Modeler 設計流程&#xff0c;以及通過 API 控制流程運行。但在實際項目中&#xff0c;我們更需要將 Flowable 與 Spring Boot 深度融合&#xff0c;構建完整的工作流平臺。本文將從環境配置、設計器集成、權…

Jenkins最新版本的安裝以及集成Allure生成測試報告

目錄 Jenkins的安裝 將上面的目錄添加到系統環境變量中 為Jenkins配置密碼 創建一個用戶&#xff0c;用于登錄jenkins 為Jenkins安裝Allure插件 幾個大坑 使用jenkins集成python測試項目 Jenkins的安裝 Jenkins官方網址 Jenkins 點擊download 點擊 past Release選擇你想要下載…