Html+Css网页开发之动态登录页面(默认Chrome)

>>效果展示图<<

一、需求分析与设计要求

        实现了一个动态背景图案的效果,包括一个白色的容器,内部有一个标题、一个输入框、一个按钮和一些文本。

        背景是一个渐变色的线性渐变,而在容器的周围,有一些随机的方形和圆形图案,它们会在页面上移动和旋转。这些图案是通过使用CSS动画和伪元素(.### a:hover)来实现的。


二、Css动画代码详解

1.设置内外边距

        首先,将所有元素的外边距(margin)和内边距(padding)都设置为0,以确保页面的元素不会受到默认的(浏览器)外边距和内边距的影响。

* {margin: 0;padding: 0;
}

2.利用flex布局设置盒子属性

        设置body元素的高度为100vh,使其占据整个视口的高度。

        使用flex布局,使其内容垂直和水平居中。设置了一个线性渐变的背景色,从左下角到右上角,颜色从#e3c5eb(浅粉)#a9c1ed(浅蓝)

        最后,将overflow属性设置为hidden,以防止页面出现滚动条。

body {height: 100vh;display: flex;justify-content: center;align-items: center;background: linear-gradient(200deg, #e3c5eb, #a9c1ed);overflow: hidden;
}

3.定义新类确定页面的主要内容与属性设置(相对定位)

        定义一个名为.container的类,用于包含页面的主要内容。

        设置了相对定位,z-index为1,背景色为白色,圆角为15px,使用flex布局,垂直和水平居中,宽度为350px,高度为500px,添加了一个阴影效果。

.container {position: relative;z-index: 1;background-color: #fff;border-radius: 15px;display: flex;flex-direction: column;align-items: center;width: 350px;height: 500px;box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
}

4.定义新类设置标题以及字体大小等属性

        定义了一个名为.tit的类,用于设置标题的样式。

        设置了字体大小为26px,上下外边距为65px和70px,左右外边距为auto,使其水平居中。

.container .tit {font-size: 26px;margin: 65px auto 70px auto;
}

5.定义新类设计输入框与输入框文本的属性

        定义一个名为input的类,用于设置输入框的样式。

        设置了宽度为280px,高度为30px,文本缩进为8px,去掉了边框,只保留了底部的1px实线边框,去掉了轮廓线,上下外边距为12px,左右外边距为auto,使其水平居中。

.container input {width: 280px;height: 30px;text-indent: 8px;border: none;border-bottom: 1px solid #ddd;outline: none;margin: 12px auto;
}

6.定义新类设置按钮属性与渐变背景色,增加鼠标过渡效果

        定义一个名为button的类,用于设置按钮的样式。

        设置了宽度为280px,高度为40px,上外边距为35px,下外边距为40px,左右外边距为auto,使其水平居中。

        去掉边框,使用一个线性渐变的背景色,从右上角到左下角,颜色从#fac0e7(浅粉)#aac2ee(浅蓝)

        设置了字体颜色为白色,字体加粗,字母间距为8px,圆角为10px,鼠标指针为手型,添加了一个0.5s的过渡效果。

.container button {width: 280px;height: 40px;margin: 35px auto 40px auto;border: none;background: linear-gradient(-200deg, #fac0e7, #aac2ee);color: #fff;font-weight: bold;letter-spacing: 8px;border-radius: 10px;cursor: pointer;transition: 0.5s;
}

7.伪代码样式定义鼠标悬停按钮上的样式与背景色

        定义了当鼠标悬停在按钮上时的样式。

        使用了一个线性渐变的背景色,从左下角到右上角,颜色从#aac2ee(浅蓝)#fac0e7(浅粉)

        将背景图像的位置设置为-280px,使其向左移动,以产生动画效果。

.container button:hover {background: linear-gradient(-200deg, #aac2ee, #fac0e7);background-position-x: -280px;
}

8.定义span类设置文本样式

        设置字体大小为14px。

.container span {font-size: 14px;
}

9.定义a类设置链接样式与字体颜色等属性

        定义一个a类,用于设置链接的样式。

        设置了字体颜色为plum,去掉了下划线。

.container a {color: plum;text-decoration: none;
}

10.定义li类使用UL li设置图案样式(绝对定位)

        定义一个名为li的类,用于设置图案的样式。

        设置了绝对定位,边框为1px实线白色,背景色为白色,宽度和高度都为30px,去掉了列表样式,透明度为0,使其不可见。   

ul li {position: absolute;border: 1px solid #fff;background-color: #fff;width: 30px;height: 30px;list-style: none;opacity: 0;
}

     11.定义square类设置方形、矩形图案样式与动画(相对定位)

        定义一个名为square的类,用于设置方形图案的样式。

        设置了相对定位,初始位置为40vh和60vw,即垂直方向上在视口的40%处,水平方向上在视口的60%处。

        使用一个名为square的动画,持续时间为10s,线性运动,无限循环。

.square li {top: 40vh;left: 60vw;animation: square 10s linear infinite;
}

12.定义第二个方形图案以及第三、四、五个...类似于(11)

        第二个方形图案设置了初始位置为80vh和10vw,即垂直方向上在视口的80%处,水平方向上在视口的10%处。

        使用了一个2s的延迟,使其比第一个图案晚2s开始动画。

.square li:nth-child(2) {top: 80vh;left: 10vw;animation-delay: 2s;
}

        第三个方形图案设置了初始位置为80vh和85vw,即垂直方向上在视口的80%处,水平方向上在视口的85%处。

        使用了一个4s的延迟,使其比第一个图案晚4s开始动画。

.square li:nth-child(3) {top: 80vh;left: 85vw;animation-delay: 4s;
}

        第四个方形图案设置了初始位置为10vh和70vw,即垂直方向上在视口的10%处,水平方向上在视口的70%处。

        使用了一个6s的延迟,使其比第一个图案晚6s开始动画。

.square li:nth-child(4) {top: 10vh;left: 70vw;animation-delay: 6s;
}

第五个方形图案设置了初始位置为10vh和10vw,即垂直方向上在视口的10%处,水平方向上在视口的10%处。

        使用了一个8s的延迟,使其比第一个图案晚8s开始动画。

.square li:nth-child(5) {top: 10vh;left: 10vw;animation-delay: 8s;
}

13.定义circle类设置圆形图案样式(1,2,3,4,5)以及动画图案<相对定位>

第一个圆形图案设置了初始位置为底部和15vw,即水平方向上在视口的15%处。

使用了一个名为circle的动画,持续时间为10s,线性运动,无限循环。

.circle li {bottom: 0;left: 15vw;animation: circle 10s linear infinite;
}

第二个圆形图案设置了初始位置为35vw,即水平方向上在视口的35%处。

使用了一个2s的延迟,使其比第一个图案晚2s开始动画。

.circle li:nth-child(2) {left: 35vw;animation-delay: 2s;
}

第三个圆形图案设置了初始位置为55vw,即水平方向上在视口的55%处。

使用了一个6s的延迟,使其比第一个图案晚6s开始动画。

.circle li:nth-child(3) {left: 55vw;animation-delay: 6s;
}

第四个圆形图案设置了初始位置为75vw,即水平方向上在视口的75%处。

使用了一个4s的延迟,使其比第一个图案晚4s开始动画。

.circle li:nth-child(4) {left: 75vw;animation-delay: 4s;
}

第五个圆形图案设置了初始位置为90vw,即水平方向上在视口的90%处。

使用了一个8s的延迟,使其比第一个图案晚8s开始动画。

.circle li:nth-child(5) {left: 90vw;animation-delay: 8s;
}

14.定义Square动画模式:控制方形图案运动

        定义square的动画用于控制方形图案的运动。

        在0%时,将图案的缩放比例设置为0,旋转角度为0度,透明度为1。

        在100%时,将图案的缩放比例设置为5,旋转角度为1000度,透明度为0。

@keyframes square {0% {transform: scale(0) rotateY(0deg);opacity: 1;}100% {transform: scale(5) rotateY(1000deg);opacity: 0;}
}

15.定义Circle动画模式:控制圆形图案运动

        定义了一个名为circle的动画,用于控制圆形图案的运动。

        在0%时,将图案的缩放比例设置为0,旋转角度为0度,透明度为1,底部位置为0,边框半径为0。

        在100%时,将图案的缩放比例设置为5,旋转角度为1000度,透明度为0,底部位置90vh,边框半径为50%。

@keyframes circle {0% {transform: scale(0) rotateY(0deg);opacity: 1;bottom: 0;border-radius: 0;}100% {transform: scale(5) rotateY(1000deg);opacity: 0;bottom: 90vh;border-radius: 50%;}
}

三、Html代码汇总

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>动态背景登录组件</title><link rel="stylesheet" href="./38-动态背景登录组件.css">
</head><body><div class="container"><div class="tit">登录</div><input type="text" placeholder="账号"><input type="password" placeholder="密码"><button>登录</button><span>没有账号?<a href="#">去注册</a></span></div><div class="square"><ul><li></li><li></li><li></li><li></li><li></li></ul></div><div class="circle"><ul><li></li><li></li><li></li><li></li><li></li></ul></div>
</body></html>

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Element快速学习

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;JavaWeb关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 什么是Element&#xff1f; Element&#xff1a;它是由饿了么团队开发的一个…

Dubbon-微服务通信(基本简介 基础实现)

目录 一、基本简介 二、基础实现 1. 提供统⼀业务api 2. 编辑服务提供者product 3. 编辑服务消费者order 4. 服务调⽤测试 一、基本简介 Dubbo是阿⾥巴巴开源的基于 Java 的⾼性能 RPC分布式服务框架&#xff0c;致⼒于提供⾼性能和透明化的RPC远程服务调⽤⽅案&…

springcloud使用openfegin进行服务调用

一、为什么需要使用Fegin 引言&#xff1a;在我们使用nacos的时候是不是也有一种服务调用的方法那个时候我们使用到RestTemplate去调用远程的服务&#xff0c;但是我们看下面的一个例子就可以知道RestTemplate这种方式对于维护和后期代码上来说是不合理的&#xff0c;以为会是…

【无标题】Git(仓库,分支,分支冲突)

Git 一种分布式版本控制系统&#xff0c;用于跟踪和管理代码的变更 一&#xff0e;Git的主要功能&#xff1a; 二&#xff0e;准备git机器 修改静态ip&#xff0c;主机名 三&#xff0e;git仓库的建立&#xff1a; 1.安装git [rootgit ~]# yum -y install git 2.创建一个…

针对datax-web 中Swagger UI接口未授权访问

application.yml 添加以下配置 实现访问doc.html 以及/v2/api-docs 接口时需要进行简单的校验 swagger:basic:enable: trueusername: adminpassword: 12345 配置重启后再进行相关访问则需要输入用户名和密码

【SQL 新手教程 2/20】关系模型 -- 主键

&#x1f497; 关系数据库建立在关系模型上⭐ 关系模型本质上就是若干个存储数据的二维表 记录 (Record)&#xff1a; 表的每一行称为记录&#xff08;Record&#xff09;&#xff0c;记录是一个逻辑意义上的数据 字段 (Column)&#xff1a;表的每一列称为字段&#xff08;Colu…

Footprint Analytics 助力 Core 区块链实现数据效率突破

Core 是一个基于比特币并兼容 EVM 的 Layer 1 区块链&#xff0c;正通过其创新解决方案引革新特币金融。作为首个引入非托管 BTC 质押协议及全球首个发行收益型 BTC ETP 产品的区块链&#xff0c;Core 站在了区块链技术的最前沿。通过利用超过 50% 的比特币挖矿哈希算力&#x…

Java高频面试题分享

文章目录 1. 策略模式怎么控制策略的选取1.1 追问&#xff1a;如果有100种策略呢&#xff1f;1.2 追问&#xff1a;什么情况下初始化Map 2. 什么是索引&#xff1f;什么时候用索引&#xff1f;2.1 追问&#xff1a;怎么判断系统什么时候用量比较少2.2 追问&#xff1a;如何实时…

R下载包显示unable to access index for repository:.......无法打开URL

1、报错“Warning: unable to access index for repository https://mirrors.bfsu.edu.cn/CRAN/src/contrib: cannot open URL https://mirrors.bfsu.edu.cn/CRAN/src/contrib/PACKAGES” 解决方法&#xff1a; > options(reposhttp://cran.rstudio.com/) #把https换成htt…

在树莓派上安装 ROS Melodic

树莓派的支持的系统比较多&#xff0c;以 Raspbian Buster 为例&#xff0c;记录在树莓派上下载并构建 ROS Melodic 的步骤&#xff0c;其他的派类似。 一、安装 ROS Melodic 打开树莓派终端并执行以下步骤。 1. 安装 repository key $ sudo sh -c echo "deb http://pack…

github-page静态网页将字符串写入github库中文本文档

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

【MySQL进阶之路 | 高级篇】MVCC三剑客:隐藏字段,Undo Log,ReadView

1. 再谈隔离级别 我们知道事务有四个隔离级别&#xff0c;可能存在三种并发问题&#xff1a; 在MySQL中&#xff0c;默认的隔离级别是可重复读&#xff0c;可以解决脏读和不可重复读的问题&#xff0c;如果仅从定义的角度来看&#xff0c;它并不能解决幻读问题。如果我们想要解…

python利用lxml模块爬取百度贴吧标题列表—新手练习的项目

一、爬取需求 就是用python&#xff0c;获取某百度贴吧的标题 二、代码 import lxml.html import requests ydm requests.get(https://tieba.baidu.com/f?ieutf-8&kw%E5%BC%A0%E5%A7%93%E4%B9%8B%E5%AE%B6).content.decode() selector lxml.html.fromstring(ydm) inf…

【Golang 面试基础题】每日 5 题(十)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

跨境电商独立站:Shopify/Wordpress/店匠选哪个?

在面对不断增加的平台运营压力时&#xff0c;不少跨境电商的商家逐渐将注意力转向建立自己的独立站。据《中国跨境出口电商发展报告&#xff08;2022&#xff09;》所示&#xff0c;中国拥有的独立站数量在2022年已接近20万个&#xff0c;这表明独立站已成为卖家拓展海外市场的…

Vue3分段控制器(Segmented)

效果如下图&#xff1a;在线预览 APIs Segmented 参数说明类型默认值必传block是否将宽度调整为父元素宽度&#xff0c;同时所有选项占据相同的宽度booleanfalsefalsedisabled是否禁用booleanfalsefalseoptions选项数据string[] | number[] | SegmentedOption[][]falsesize控…

LoRA:低秩自适应

LoRA:低秩自适应 本章节是对轻松上手微调大语言模型——QLORA篇中提到的LoRA的原理解释。 背后动机 现今模型的参数量变得越来越大&#xff0c;对预训练模型进行全微调变得越来越不可行。为了解决这个问题有了LoRA&#xff08;Low-Rank Adaption&#xff09;的诞生。将可训练…

ATF-541M4全解析(一)

目录 一、描述二、规格三、各参数最大值四、25℃下的典型值 一、描述 安华高科技 (Avago Technologies) 的 ATF-541M4 是一款高线性度、低噪声、单电源供电的E-PHEMT&#xff0c;封装在一个微型无引脚封装中。 ATF-541M4 的小尺寸和低外形使其非常适合用于混合模块和其他空间…

C++多态的底层原理

目录 1.虚函数表 &#xff08;1&#xff09;虚函数表指针 &#xff08;2&#xff09;虚函数表 2.虚函数表的继承--重写&#xff08;覆盖&#xff09;的原理 3.观察虚表的方法 &#xff08;1&#xff09;内存观察 &#xff08;2&#xff09;打印虚表 虚表的地址 函数 传参…

SpringBoot添加密码安全配置以及Jwt配置

Maven仓库&#xff08;依赖查找&#xff09; 1、SpringBoot安全访问配置 首先添加依赖 spring-boot-starter-security 然后之后每次启动项目之后&#xff0c;访问任何的请求都会要求输入密码才能请求。&#xff08;如下&#xff09; 在没有配置的情况下&#xff0c;默认用户…