CSS基础学习记录(6)

       

目录

1、从最基本的页面开始

2、添加图像/浮层部分

3、位置调整

4、添加动效

4.1、添加浮层动效

4.2、添加背景动画


根据前面css的学习,本篇来实践下前面学习的知识,主要实现如下这样的效果。

        下面我们一步步实现上面的效果。

1、从最基本的页面开始

        如下是最基本的一个页面:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS基础学习记录(6)</title><style></style>
</head><body></body></html>

        没错,就是啥也没有,只是一个最基本的html框架,接下来我们开始往里面加代码。 首先加了一个盒子(div),代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS基础学习记录(6)</title><style>* {margin: 0;padding: 0;}body {background-color: antiquewhite;}.box {margin: 0 auto;background-color: chartreuse;margin-top: 45px;width: 200px;height: 200px;}</style>
</head><body><div class="box"></div>
</body></html>

        运行效果如下:

         代码分析:

        * {margin: 0;padding: 0;}

         这是一个通用选择器,会匹配所有的html元素,这里把margin、padding都设置为0(默认会有一个padding、maring)。

body {background-color: antiquewhite;}.box {margin: 0 auto;background-color: chartreuse;margin-top: 45px;width: 200px;height: 200px;}

        首先使用标签选择器(body)设置了body的背景色,然后使用类选择器(.box)创建了一个box类,该选择器的效果是创建了一个宽高都是200px的区域,同时外边距(上边)为45px,水平居中。

2、添加图像/浮层部分

        现在将在box里面添加一张图像以及一个浮层,图像是背景,浮层则是可以浮动的,代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS基础学习记录(6)</title><style>* {margin: 0;padding: 0;}body {background-color: antiquewhite;}.box {margin: 0 auto;background-color: chartreuse;margin-top: 45px;width: 200px;height: 200px;}img {width: 200px;height: 200px;}.cover {margin: 0 auto;background-color: rgb(144, 167, 30);width: 200px;height: 200px;}</style>
</head><body><div class="box"><img src="./images/1.jpg" /><div class="cover" /></div>
</body></html>

        运行效果如下:

        CSS部分增加了如下代码:

        img {width: 200px;height: 200px;}.cover {margin: 0 auto;background-color: rgb(144, 167, 30);width: 200px;height: 200px;}

         标签选择器img定义了图像的宽高都是200px,.cover类选择器定义了一个宽高都是200px的浮层,该浮层是要覆盖在图片上的,接下来我们调整下浮层的位置,让它覆盖在图像上面。

3、位置调整

        现在把浮层移动到图像上面,为了方便区分,给浮层加了个透明度,以便透出下面的图片,代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS基础学习记录(6)</title><style>* {margin: 0;padding: 0;}body {background-color: antiquewhite;}.box {margin: 0 auto;background-color: chartreuse;margin-top: 45px;width: 200px;height: 200px;position: relative;}img {width: 200px;height: 200px;}.cover {margin: 0 auto;background-color: rgb(144, 167, 30);width: 200px;height: 200px;opacity: 0.8;position: absolute;top: 0;left: 0;}</style>
</head><body><div class="box"><img src="./images/1.jpg" /><div class="cover" /></div>
</body></html>

        运行效果如下:

        相比之前的代码增加了如下部分定位的代码:

4、添加动效

        现在来到精彩部分,我们将添加鼠标移动到图像上时的动效。

4.1、添加浮层动效

        添加浮层动效前,我们先调整下浮层的位置,CSS中.cover的left为100%,效果如下:

         现在我们要实现鼠标移动到box范围时,浮层会执行动画移动到图像上(图像首先会隐藏),代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS基础学习记录(6)</title><style>* {margin: 0;padding: 0;}body {background-color: antiquewhite;}.box {margin: 0 auto;background-color: chartreuse;margin-top: 45px;width: 200px;height: 200px;position: relative;overflow: hidden;}img {width: 200px;height: 200px;}.cover {margin: 0 auto;background-color: rgb(144, 167, 30);width: 200px;height: 200px;opacity: 0.8;position: absolute;top: 0;left: 100%;transition: all 0.5s;}.box:hover .cover{left: 0;}</style>
</head><body><div class="box"><img src="./images/1.jpg" /><div class="cover" /></div>
</body></html>

        .box增加了CSS代码overflow: hidden;使得超出box的部分会被隐藏,实现动画主要是新增了如下代码:

        .cover里面新增的transition: all 0.5s;表示所有属性都参与动画,执行时间是0.5秒(不要少了后面的s),选择器 .box:hover .cover表示当鼠标经过box范围时,将会选择后代.cover,而.cover将属性left设置为0,结果是动画从右边出现,移动到与图像重合。

4.2、添加背景动画

        添加了背景动效的代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS基础学习记录(6)</title><style>* {margin: 0;padding: 0;}body {background-color: antiquewhite;}.box {margin: 0 auto;background-color: chartreuse;margin-top: 45px;width: 200px;height: 200px;position: relative;overflow: hidden;}img {width: 200px;height: 200px;transition: all 0.5s;}.cover {margin: 0 auto;background-color: rgb(144, 167, 30);width: 200px;height: 200px;opacity: 0.8;position: absolute;top: 0;left: 100%;transition: all 0.5s;}.box:hover .cover {left: 0;}.box:hover img {transform: scale(1.2);}</style>
</head><body><div class="box"><img src="./images/1.jpg" /><div class="cover" /></div>
</body></html>

        与添加浮层动效类似,主要是添加了如下CSS代码:

        位于img中的CSS代码transition: all 0.5s;表面img的所有属性都参与动画,时间是0.5s,而选择器.box:hover img则表示鼠标经过box范围时触发img的动效,CSS代码transform: scale(1.2);表面图片放大1.2倍。

        至此完成了一开始提到了动效。完整代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS基础学习记录(6)</title><style>* {margin: 0;padding: 0;}body {background-color: antiquewhite;}.box {margin: 0 auto;background-color: chartreuse;margin-top: 45px;width: 200px;height: 200px;position: relative;overflow: hidden;}img {width: 200px;height: 200px;transition: all 0.5s;}.cover {margin: 0 auto;background-color: rgb(144, 167, 30);width: 200px;height: 200px;opacity: 0.8;position: absolute;top: 0;left: 100%;transition: all 0.5s;}.box:hover .cover {left: 0;}.box:hover img {transform: scale(1.2);}</style>
</head><body><div class="box"><img src="./images/1.jpg" /><div class="cover" /></div>
</body></html>

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

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

相关文章

Redis 缓存问题及解决

所有问题解决的关键就是尽少的访问数据库&#xff0c;或者避免太集中的访问。 一&#xff0c;缓存穿透&#xff08;key在数据库不存在&#xff09; 当数据既不在缓存中&#xff0c;也不在数据库中&#xff0c;导致请求访问缓存没数据&#xff0c;访问数据库也没数据&#xff0c…

理解java AWT中的FlowLayout的使用

目录 背景: 代码示例: 代码详细解析: 总结: 背景: 在java的AWT(Abstract Window Toolkit)库中&#xff0c;Frame和FlowLayout是两个常用的类&#xff0c;它们分别用于创建窗口和设置窗口内组件的布局&#xff0c;下面的代码示例&#xff0c;解释Frame和FlowLayout的基本用…

【LeetCode】八、堆的使用:第K个最大元素 + 前K和高频单词

文章目录 1、Java中的堆结构2、leetcode215&#xff1a;数组中的第K个最大元素3、leetcode692&#xff1a;前K个高频单词 1、Java中的堆结构 PriorityQueue类取堆顶元素删除堆顶元素堆的元素个数遍历堆 2、leetcode215&#xff1a;数组中的第K个最大元素 这题应该快排来解&…

使用 privacyIDEA 实现 Windows RDP 多因素认证 (MFA)

前言 在等保 2.0 标准中有要求: d&#xff09;应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别&#xff0c;且其中一种鉴别技术至少应使用密码技术来实现。 可以借助开源的 privacyIDEA 配合 AD 域环境实现 RDP MFA 认证登录以满足上面的要…

Dxf库中的DL_CreationAdapter与DL_CreationInterface

在软件工程中&#xff0c;适配器模式&#xff08;Adapter Pattern&#xff09;用于将一个类的接口转换成客户希望的另一个接口。在 DXF 文件解析中&#xff0c;DL_CreationAdapter 和 DL_CreationInterface 可能用于适配不同的数据结构或接口&#xff0c;使得解析器能够处理不同…

音视频入门基础:H.264专题(7)——FFmpeg源码中 指数哥伦布编码的解码实现

一、引言 由于视频的传输和存贮是十分在乎体积的&#xff0c;对于每一个比特&#xff08;bit&#xff09;都要格外珍惜&#xff0c;所以H.264中用到了多种熵编码来对原本的数据进行压缩。 比如Sequence Paramater Set&#xff08;sps / 序列参数集&#xff09;中&#xff0c;s…

pyqt的QWidgetList如何多选?如何按下Ctrl多选?

通过设置setSelectionMode(QAbstractItemView.MultiSelection)&#xff0c;可以实现QWidgetList的多选。 但是上述结果不太符合我们需求。设置多选模式后&#xff0c;只需鼠标点击就可以选择多个条目。 我希望按下Ctrl键时才进行多选&#xff0c;仅鼠标单击的话&#xff0c;只进…

bat命令 批处理 脚本 windows DOS

常见命令解释 命令示例&#xff1a; 文件1.bat echo offstart notepad.exe timeout /t 5 /nobreak start notepad.exe pause echo 当前时间【%time%】 timeout /t 5 /nobreak echo 延时时间【%time%】 pause echo off 执行bat文件的时候&#xff0c;cmd黑框里不显示批处理…

python获取快手账号列表数据

快手数据获取相对简单访问地址固定且不需要登录token 列表地址获取的固定接口 https://www.kuaishou.com/graphql 发送post请求注意每个快手账号对应的id import time from datetime import datetime import logging import json import pymysql import requests# 创建一个lo…

python爬虫之12306模拟登陆

python爬虫之12306模拟登陆 登录流程&#xff1a; 1、登录界面输入账号密码&#xff0c;点击立即登录 2、弹出手机验证界面&#xff0c;输入身份证后4位&#xff0c;点击获取验证码等待验证码后手动输入&#xff0c;点击确定登录 实现代码如下&#xff1a; #需求&#xff1…

CTE(公共表表达式)和视图在查询时的性能影响

在SQL查询优化和数据库设计中&#xff0c;CTE&#xff08;公共表表达式&#xff09;和视图都是常用的工具。尽管它们在功能和使用场景上有很多相似之处&#xff0c;但在查询性能方面可能存在显著差异。本文将探讨CTE和视图在查询时的性能影响&#xff0c;帮助您在实际项目中做出…

详细分析Springmvc中的@ModelAttribute基本知识(附Demo)

目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上&#xff0c;或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景&#xff1a; 表单…

Flutter有哪些优势,为什么稳定的大公司都向Flutter迁移?

Flutter作为Google开发的跨平台移动应用开发框架&#xff0c;具有一系列显著的优势&#xff0c;以下是对其优势的详细归纳&#xff1a; 跨平台开发能力&#xff1a; Flutter允许开发人员使用单一代码库创建适用于Android和iOS的应用程序&#xff0c;大大减少了开发和维护的工作…

发送HTTP请求并与一个假设的MES系统进行对接案例。

假设我们有一个MES系统&#xff0c;它提供了一个RESTful API用于获取订单信息。API的URL是https://api.mes-system.com/orders/{orderId}&#xff0c;其中{orderId}是一个占位符&#xff0c;需要替换为实际的订单ID。 以下是demo&#xff1a; using System; using System.Ne…

联想至像M3070DNA打印机加粉及清零方法

基本参数&#xff1a; 产品类型&#xff1a;黑白激光多功能商用一体机&#xff08;打印/复印/扫描&#xff09; 网络功能&#xff1a;支持有线网络打印 最大处理幅面&#xff1a;A4 双面功能&#xff1a;自动 打印速度&#xff1a;30页/分钟&#xff08;高速激光打印&…

sql-analysis

文章目录 痛点&#xff1a; 1、无法提前发现慢sql&#xff0c;可能恶化为慢sql的语句 2、线上出现慢sql后&#xff0c;无法快速止损 后果&#xff1a;一般是以响应时间来发现慢sql&#xff0c;这时候已经对业务产生了一定影响&#xff0c;这时候就要改代码重新发布上线或者改数…

HarmonyOS NEXT:华为开启全新操作系统时代

在全球科技浪潮的汹涌澎湃中&#xff0c;华为再次以创新者的姿态&#xff0c;引领了一场关于操作系统的革命。HarmonyOS NEXT&#xff0c;这一由华为倾力打造的分布式操作系统&#xff0c;不仅是对现有技术的一次大胆突破&#xff0c;更是对未来智能生活的一次深邃展望。 Harmo…

【耐水好】强耐水UV胶水是怎样的?

【耐水好】强耐水UV胶水是怎样的&#xff1f; 强耐水UV胶水是一种特殊的胶水&#xff0c;其设计重点在于其出色的耐水性能。以下是关于强耐水UV胶水的特点&#xff1a; 优异的耐水性能&#xff1a;这种胶水能在水环境下保持稳定的粘接强度&#xff0c;不易被水分解或削弱。因…

HarmonyOS鸿蒙应用开发基础知识

参考 HarmonyOS鸿蒙应用开发 (二、应用程序包结构理解及Ability的跳转&#xff0c;与Android的对比)_hap(harmonyos ability package)包的开发-CSDN博客 HarmonyOS NEXT下一代编程语言仓颉介绍及入门-CSDN博客 媒体模块&#xff1a; AVCodec Kit&#xff08;音视频编解码服务…

TextRank 算法

第1关&#xff1a;Jieba 在关键词提取中的应用 任务描述 本关任务&#xff1a;根据本关所学有关使用 Jieba 库进行关键词提取的知识&#xff0c;编写使用 Jieba 模块进行关键词提取的程序&#xff0c;并通过所有测试用例。 相关知识 为了完成本关任务&#xff0c;你需要掌握…