14 简约登录页

效果演示

14-简约登录页.gif

实现了一个简单的登录表单的样式,包括背景颜色、边框、字体颜色、字体大小、字体粗细、输入框样式、提交按钮样式等。当用户在输入框中输入内容时,输入框下方的提示文字会动态地变化,以提示用户输入正确的信息。当用户点击提交按钮时,会触发一个事件,例如提交表单数据到服务器。

Code

<div class="form"><div class="title">Welcome</div><div class="subtitle">Let's create your account!</div><div class="input-container ic1"><input placeholder="" type="text" class="input" id="firstname"><div class="cut"></div><label class="iLabel" for="firstname">First name</label></div><div class="input-container ic2"><input placeholder="" type="text" class="input" id="lastname"><div class="cut"></div><label class="iLabel" for="lastname">Last name</label></div><div class="input-container ic2"><input placeholder="" type="text" class="input" id="email"><div class="cut cut-short"></div><label class="iLabel" for="email">Email</label></div><button class="submit" type="text">submit</button>
</div>
body {height: 100vh;display: flex;justify-content: center;align-items: center;background-color: #e8e8e8;
}.form {background-color: #15172b;border-radius: 20px;box-sizing: border-box;height: 500px;padding: 20px;width: 320px;
}.title {color: #eee;font-family: sans-serif;font-size: 36px;font-weight: 600;margin-top: 30px;
}.subtitle {color: #eee;font-family: sans-serif;font-size: 16px;font-weight: 600;margin-top: 10px;
}.input-container {height: 50px;position: relative;width: 100%;
}.ic1 {margin-top: 40px;
}.ic2 {margin-top: 30px;
}.input {background-color: #303245;border-radius: 12px;border: 0;box-sizing: border-box;color: #eee;font-size: 18px;height: 100%;outline: 0;padding: 4px 20px 0;width: 100%;
}.cut {background-color: #15172b;border-radius: 10px;height: 20px;left: 20px;position: absolute;top: -20px;transform: translateY(0);transition: transform 200ms;width: 76px;
}.cut-short {width: 50px;
}.iLabel {color: #65657b;font-family: sans-serif;left: 20px;line-height: 14px;pointer-events: none;position: absolute;transform-origin: 0 50%;transition: transform 200ms, color 200ms;top: 20px;
}.input:focus~.cut {transform: translateY(8px);
}.input:focus~.iLabel {transform: translateY(-30px) translateX(10px) scale(0.75);
}.input:not(:focus)~.iLabel {color: #808097;
}.input:focus~.iLabel {color: #dc2f55;
}.submit {background-color: #08d;border-radius: 12px;border: 0;box-sizing: border-box;color: #eee;cursor: pointer;font-size: 18px;height: 50px;margin-top: 38px;text-align: center;width: 100%;
}.submit:active {background-color: #06b;
}

实现思路拆分

body {height: 100vh; /* 设置整个页面的高度为视口高度 */display: flex; /* 设置元素的显示方式为flex布局 */justify-content: center; /* 设置主轴上的对齐方式为居中对齐 */align-items: center; /* 设置交叉轴上的对齐方式为居中对齐 */background-color: #e8e8e8; /* 设置背景颜色为灰色 */
}

这段代码设置了整个页面的样式,包括高度、显示方式、对齐方式和背景颜色。

.form {background-color: #15172b; /* 设置背景颜色为深蓝色 */border-radius: 20px; /* 设置边框圆角为20像素 */box-sizing: border-box; /* 设置盒模型为border-box */height: 500px; /* 设置表单高度为500像素 */padding: 20px; /* 设置内边距为20像素 */width: 320px; /* 设置表单宽度为320像素 */
}

这段代码设置了表单的样式,包括背景颜色、边框圆角、盒模型、高度、内边距和宽度。

.title {color: #eee; /* 设置字体颜色为白色 */font-family: sans-serif; /* 设置字体为sans-serif字体 */font-size: 36px; /* 设置字体大小为36像素 */font-weight: 600; /* 设置字体粗细为600 */margin-top: 30px; /* 设置上边距为30像素 */
}

这段代码设置了标题的样式,包括字体颜色、字体、字体大小、字体粗细和上边距。

.subtitle {color: #eee; /* 设置字体颜色为白色 */font-family: sans-serif; /* 设置字体为sans-serif字体 */font-size: 16px; /* 设置字体大小为16像素 */font-weight: 600; /* 设置字体粗细为600 */margin-top: 10px; /* 设置上边距为10像素 */
}

这段代码设置了副标题的样式,包括字体颜色、字体、字体大小、字体粗细和上边距。

.input-container {height: 50px; /* 设置输入框高度为50像素 */position: relative; /* 设置输入框的定位方式为相对定位 */width: 100%; /* 设置输入框的宽度为100% */
}

这段代码设置了输入框容器的样式,包括高度、定位方式和宽度。

.ic1 {margin-top: 40px; /* 设置输入框容器的上边距为40像素 */
}.ic2 {margin-top: 30px; /* 设置输入框容器的上边距为30像素 */
}

这段代码分别设置了两个输入框容器的上边距。

.input {background-color: #303245; /* 设置输入框的背景颜色为深灰色 */border-radius: 12px; /* 设置输入框的边框圆角为12像素 */border: 0; /* 设置输入框的边框为无边框 */box-sizing: border-box; /* 设置盒模型为border-box */color: #eee; /* 设置输入框的字体颜色为白色 */font-size: 18px; /* 设置输入框的字体大小为18像素 */height: 100%; /* 设置输入框的高度为100% */outline: 0; /* 设置输入框的轮廓为无轮廓 */padding: 4px 20px 0; /* 设置输入框的内边距为上下各2像素,左右各20像素 */width: 100%; /* 设置输入框的宽度为100% */
}

这段代码设置了输入框的样式,包括背景颜色、边框圆角、边框、盒模型、字体颜色、字体大小、高度、轮廓、内边距和宽度。

.cut {background-color: #15172b; /* 设置提示文字的背景颜色为深蓝色 */border-radius: 10px; /* 设置提示文字的边框圆角为10像素 */height: 20px; /* 设置提示文字的高度为20像素 */left: 20px; /* 设置提示文字距离输入框左侧的距离为20像素 */position: absolute; /* 设置提示文字的定位方式为绝对定位 */top: -20px; /* 设置提示文字距离输入框上方的距离为-20像素 */transform: translateY(0); /* 设置提示文字的垂直方向的缩放比例为1 */transition: transform 200ms; /* 设置提示文字的过渡效果 */width: 76px; /* 设置提示文字的宽度为76像素 */
}

这段代码设置了提示文字的样式,包括背景颜色、边框圆角、高度、左侧距离、定位方式、垂直方向的缩放比例、过渡效果和宽度。

.cut-short {width: 50px; /* 设置提示文字的宽度为50像素 */
}

这段代码设置了提示文字的宽度为50像素。

.iLabel {color: #65657b; /* 设置提示文字的字体颜色为深灰色 */font-family: sans-serif; /* 设置提示文字的字体为sans-serif字体 */left: 20px; /* 设置提示文字距离输入框左侧的距离为20像素 */line-height: 14px; /* 设置提示文字的行高为14像素 */pointer-events: none; /* 设置提示文字不可被点击 */position: absolute; /* 设置提示文字的定位方式为绝对定位 */transform-origin: 0 50%; /* 设置提示文字的缩放中心为水平方向的中心点 */transition: transform 200ms, color 200ms; /* 设置提示文字的过渡效果 */top: 20px; /* 设置提示文字距离输入框上方的距离为20像素 */
}

这段代码设置了提示文字的样式,包括字体颜色、字体、左侧距离、行高、可点击性、定位方式、缩放中心、过渡效果和上方距离。

.input:focus~.cut {transform: translateY(8px); /* 当输入框获得焦点时,将提示文字向下移动8像素 */
}

这段代码设置了当输入框获得焦点时,提示文字向下移动8像素的样式。

.input:focus~.iLabel {transform: translateY(-30px) translateX(10px) scale(0.75); /* 当输入框获得焦点时,将提示文字向上移动30像素,向右移动10像素,缩小0.75倍 */
}

这段代码设置了当输入框获得焦点时,提示文字向上移动30像素,向右移动10像素,缩小0.75倍的样式。

.input:not(:focus)~.iLabel {color: #808097; /* 当输入框没有获得焦点时,将提示文字颜色设置为深灰色 */
}

这段代码设置了当输入框没有获得焦点时,提示文字颜色设置为深灰色的样式。

.input:focus~.iLabel {color: #dc2f55; /* 当输入框获得焦点时,将提示文字颜色设置为红色 */
}

这段代码设置了当输入框获得焦点时,提示文字颜色设置为红色的样式。

.submit {background-color: #08d; /* 设置提交按钮的背景颜色为深红色 */border-radius: 12px; /* 设置提交按钮的边框圆角为12像素 */border: 0; /* 设置提交按钮的边框为无边框 */box-sizing: border-box; /* 设置盒模型为border-box */color: #eee; /* 设置提交按钮的字体颜色为白色 */cursor: pointer; /* 设置提交按钮的鼠标指针为指针 */font-size: 18px; /* 设置提交按钮的字体大小为18像素 */height: 50px; /* 设置提交按钮的高度为50像素 */margin-top: 38px; /* 设置提交按钮距离表单底部的距离为38像素 */text-align: center; /* 设置提交按钮的文本对齐方式为居中对齐 */width: 100%; /* 设置提交按钮的宽度为100% */
}

这段代码设置了提交按钮的样式,包括背景颜色、边框圆角、边框、盒模型、字体颜色、鼠标指针、字体大小、高度、距离表单底部的距离、文本对齐方式和宽度。

.submit:active {background-color: #06b; /* 当提交按钮被激活时,将背景颜色设置为深绿色 */
}

这段代码设置了当提交按钮被激活时,将背景颜色设置为深绿色的样式。

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

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

相关文章

使用SpirngBoot时部分编译报错解决方案:

1. 类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。 报错截图&#xff1a; 解决方案&#xff1a; 找到springboot的java版本看是多少版本&#xff0c;springboot 3.0以上的版本需要最低JDK17的版本&#xff0c;所以查看你自己…

Vue3插件开发教程:步步指导如何编写Vue3插件

关注⬆️⬆️⬆️⬆️ 专栏后期更新更多前端内容 文章目录 Vue3 插件插件注册形式插件主要的场景使用插件Vue3 插件 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。 插件注册形式 一个插件可以是一个拥有 install() 方法的对象,也可以直接是一个安装函数本身。 i…

【矩阵论】Chapter 9—广义逆矩阵知识点总结复习

文章目录 广义逆矩阵1 广义逆矩阵定义2 减号逆3 最小二乘广义逆4 极小范数广义逆5 Moore-Penrose&#xff08;加号逆&#xff09; 广义逆矩阵 1 广义逆矩阵定义 广义逆矩阵 G G G的定义&#xff1a;对任意 m n m\times n mn矩阵的 A A A&#xff0c;如果存在某个 n m n\time…

软件测试|MySQL ORDER BY详解:排序查询的利器

简介 在数据库中&#xff0c;我们经常需要对查询结果进行排序&#xff0c;以便更好地展示数据或满足特定的业务需求。MySQL提供了ORDER BY子句&#xff0c;使我们能够轻松地对查询结果进行排序。本文将详细介绍MySQL ORDER BY的用法和示例&#xff0c;帮助大家更好地理解和应用…

JS事件循环

目录 概述1. 堆栈&#xff08;Call Stack&#xff09;2. 堆&#xff08;Heap&#xff09;3. 事件队列&#xff08;Event Queue&#xff09;4. 宿主环境&#xff08;Host Environment&#xff09; 事件循环&#xff08;Event Loop&#xff09;微任务和宏任务&#xff08;Microta…

工程管理系统功能设计与实践:实现高效、透明的工程管理

在现代化的工程项目管理中&#xff0c;一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统&#xff0c;结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…

数据库的导入导出以及备份

1.数据库的导出和导入 一.navicat导入导出 导入&#xff1a;右键➡运行SQL文件 导出选&#xff1a;中要导出的表➡右键➡转储SQL文件➡数据和结构 mysqldump命 1. 进入navicat安装目录的bin目录&#xff0c;cmd打开命令窗口 2. mysql -u用户名 -p ➡ 输入密码 3. creat…

String的(toCharArray\split)方法*

题目 class Solution {public int firstUniqChar(String s) {int[] sum new int[26];char[] num s.toCharArray();for(int i0;i<num.length;i) {sum[num[i]-a];}for(int j0;j<num.length;j) {if(sum[num[j]-a] 1) {return j;}}return -1; } }题目 …

博途WinCC专业版C/S架构入门指南

WinCC Professional V16 支持客户机/服务器架构&#xff0c;但目前只支持单个服务器或单对冗余服务器/多个客户机的模式&#xff0c;还不能支持像WinCC V7.5 SP1中的多个服务器/多个客户机的分布式架构。 组态步骤如下&#xff1a; 1. 在项目中分别添加服务器站和客户机站&…

查看块设备的lsblk

文章目录 查看块设备的lsblk更多信息 查看块设备的lsblk lsblk 命令可以查看系统中的块设备信息 $ lsblk这个命令会列出系统中所有的块设备&#xff08;比如硬盘、分区和挂载点&#xff09;的信息。 默认情况下&#xff0c;它会显示每个设备的名称、大小、类型、挂载点等信息…

go image.DecodeConfig 和image.Decode 不能同时使用吗

问题场景&#xff1a;在同时使用go image.DecodeConfig 和image.Decode获取图片信息时&#xff0c;报错提示&#xff1a; 无法读取图像配置 image: unknown format package mainimport ("fmt""github.com/golang/freetype""image""image/d…

Qt/QML编程学习之心得:一个蓝牙音乐播放器的实现(30)

蓝牙bluetooth作为一种短距离的通信方式应用也是越来越广,比如很多智能家居、蓝牙遥控器、蓝牙音箱、蓝牙耳机、蓝牙手表等,手机的蓝牙功能更是可以和各种设备进行互联,甚至可以连接到车机上去配合wifi提供投屏、音乐等。那么如何在中控IVI上使用Qt来实现一个蓝牙音乐播放器…

用 MATLAB 产生单位抽样序列、单位阶跃序列、矩形序列、正弦序列和复指数序列

%% 单位抽样&#xff08;脉冲&#xff09;序列&#xff08;冲激函数&#xff09; % 参数设置 n -10:10; % 定义时间范围 delta (n 0); % 生成单位抽样序列% 绘图 figure; stem(n, delta); title(单位抽样序列); xlabel(n); ylabel(delta[n]);%% 单位阶跃序列 % 参数设置 n …

Swagger 教程:从零开始学习Swagger

Swagger 是一个开源的 API 设计和文档工具&#xff0c;可以帮助全栈工程师更快、更简单地设计、构建、文档化和测试 RESTful API。本篇文章将为全栈工程师介绍 Swagger 的基础知识和使用方法&#xff0c;以及如何使用 Swagger 设计、文档化和测试 RESTful API。 一、Swagger 简…

SLF4J Spring Boot日志框架

JAVA日志框架 JAVA有好多优秀的日志框架&#xff0c;比如log4j、log4j2、logback、JUL&#xff08;java.util.logging&#xff09;、JCL&#xff08;JAVA Common Logging&#xff09;等等&#xff0c;logback是后起之秀&#xff0c;是Spring Boot默认日志框架。 今天文章的目…

oracle19c容器数据库rman备份特性-----性能优化(三)

目录 冗余备份片 1.备份的时候指定 2.rman配置中设定 归档备份&#xff08;将备份集保留&#xff09; 二级备份&#xff08;将备份文件保留&#xff09; 1.备份闪回恢复区的恢复文件 2.备份所有恢复文件 recovery catalog database 1.創建recovery catalog 2.创建VPC…

zabbix-proxy代理安装及其他监控方式

zabbix-proxy代理安装及其他监控方式 安装zabbix-proxyserver端配置zabbix-proxy配置被监控的agent安装中问题解决监控网络设备JMX和IPMI监控方式 zabbix-proxy的安装&#xff0c;至少需要准备三台机器&#xff0c;一台安装服务端&#xff0c;一台安装agent端&#xff0c;这里就…

《网络是怎样连接的》2.3节图表(自用)

图4.1&#xff1a;TCP拆分数据与ACK号 图4.2&#xff1a;连接阶段与通信阶段ACK号与序号的交互过程 首先&#xff0c;客户端在连接时需要计算出与从客户端到服务器方向通信相关的序号初始值&#xff0c;并将这个值发送给服务器&#xff08;①&#xff09;。 接下来&#xff0c…

在k8s集群中部署多nginx-ingress

关于ingress的介绍&#xff0c;前面已经详细讲过了&#xff0c;参考ingress-nginx详解和部署方案。本案例ingress的部署使用deploymentLB的方式。 参考链接&#xff1a; 多个ingress部署 文章目录 1. 下载ingress的文件2. 文件资源分析3. 部署ingress3.1 部署第一套ingress3.1…

C# 反射的乌云,MethodInfo的Json序列化参数入参问题

文章目录 前言直接运行MethodInfo运行结果 Json解决ParamterInfo实例化运行结果无法实例化问题部分参数的问题 Json反序列化 经过长达一天的研究&#xff0c;我终于完全的解决的了实战思路方法测试用例运行测试运行结果 代码总结总结 前言 我上篇文章已经基本解决了反射的基本…