HTML+CSS鼠标拟态效果

2024-04-01 00:32

本文主要是介绍HTML+CSS鼠标拟态效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HTML+CSS鼠标拟态效果

弹性布局

弹性盒 display:flex;

  • flex-direction
    • row,默认值,主轴为水平方向,起点在左端
    • roe-reverse,主轴为水平方向,起点在右端
    • column,主轴为垂直方向,起点在上沿
    • column-reverse,主轴为垂直方向,起点在下沿
  • flex-wrap
    • nowrap,默认值,不换行
    • wrap,换行,第一行在上方
    • wrap-reverse,换行,第一行在下方
  • flex-flow
    • flex-flowflex-directionflex-wrap的简写形式,默认值为row nowrap
  • justify-content的值
    • 设置为flex-start,默认值,在主轴上左对齐;
    • 设置为flex-end,在主轴上右对齐;
    • 设置为center,在主轴居中
    • 设置为space-between,在主轴上均匀分隔项目,每个项目之间距离相同,左侧与右侧与flex容器的边缘对齐;
    • 设置为space-around,每个项目两侧距离相等,项目之间的间隔比两边项目与边框的距离大一倍;
  • align-items单根轴线
    • flex-start,交叉轴的起点对齐,顶端对齐;
    • flex-end,交叉轴终点对齐,低端对齐;
    • center,交叉轴中点对齐,垂直居中;
    • baseline,项目的第一行文字的基线对齐;
    • stretch,默认值,如果项目为设置高度或设置为auto,则占满整个容器的高度;
  • align-content多根轴线
    • 当有换行时,出现多根轴线,若项目只有一根轴线,则该属性不起作用;
    • flex-start,交叉轴的起点对齐,顶端对齐;
    • flex-end,交叉轴终点对齐,低端对齐;
    • center,交叉轴中点对齐,垂直居中;
    • space-between,与交叉轴两端对齐,轴线之间的间隔平均分布;
    • space-around,每根轴线两侧间隔都相等,轴线之间的间隔比轴线与边框的间隔大一倍;
    • stretch,默认值,如果项目为设置高度或设置为auto,则占满整个容器的高度;
  • 项目属性
    • order,项目的排列顺序,数值越小,排列越靠前;
    • flex-grow,项目放大的比例,默认为0,为0是即使存在剩余空间,也不放大;
    • flex-shrink,项目的缩小比率,默认为1,当空间不足时,将缩小,负数无效;
    • flex-basis,
    • flex,属性 flex-grow, flex-shrink,和flex-basis,缩写,默认为0,1,auto;
    • align-self,属性允许单个项目有其他项目不一样的对齐方式,可覆盖align-items属性

自适应布局单位

vw/vh
  • 视口
    桌面端指浏览器的可视区域:window.innerWidth、window.innerHeight
    移动端涉及三个视口:
    • Viewport:布局视口
    • visual viewport:视觉视口
    • ideal viewport:理想视口

1.vw:1vw等于视口宽度的1%。
2.vh:1vh等于视口高度的1%。
3.vmin:选取vw和vh中最小的那个。其中最小的那个被均分为100单位的vmin。
4.vmax:选取vw和vh中最大的那个。其中最大的那个被均分为100单位的vmax。

快捷编写方法

 1. .container>.box*15>(.img>img[src="images/$.png"])+p2. link:css3. css文件中:p0:padding:0;  m0:margin:04. bgc:background-color5. w+数字:width:xxx px;

HTML

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>鼠标点击效果</title><link rel="stylesheet" href="day_1.css">
</head>
<body>
<div class="container"><div class="box"><div class="img"><img src="images/1.png" alt=""></div><p>录音机</p></div><div class="box"><div class="img"><img src="images/2.png" alt=""></div><p>通讯录</p></div><div class="box"><div class="img"><img src="images/3.png" alt=""></div><p>电话</p></div><div class="box"><div class="img"><img src="images/4.png" alt=""></div><p>短信</p></div><div class="box"><div class="img"><img src="images/5.png" alt=""></div><p>浏览器</p></div><div class="box"><div class="img"><img src="images/6.png" alt=""></div><p>相机</p></div><div class="box"><div class="img"><img src="images/7.png" alt=""></div><p>相册</p></div><div class="box"><div class="img"><img src="images/8.png" alt=""></div><p>哔哩哔哩</p></div><div class="box"><div class="img"><img src="images/9.png" alt=""></div><p>日历</p></div><div class="box"><div class="img"><img src="images/10.png" alt=""></div><p>时钟</p></div><div class="box"><div class="img"><img src="images/11.png" alt=""></div><p>Youtube</p></div><div class="box"><div class="img"><img src="images/12.png" alt=""></div><p>Facebook</p></div><div class="box"><div class="img"><img src="images/13.png" alt=""></div><p>微信</p></div><div class="box"><div class="img"><img src="images/14.png" alt=""></div><p>QQ</p></div><div class="box"><div class="img"><img src="images/15.png" alt=""></div><p>微博</p></div>
</div></body>
</html>

CSS

*{/*初始化,取消页面的内外边距*/padding: 0;margin: 0;
}
body{/*弹性布局,让页面垂直水平居中*/display:flex;justify-content: center;align-items:center;height: 100vh;background-color: #efeeee;
}
.container{display:flex;/*让一行中的元素平均分配宽度*/justify-content: space-around;align-items:center;/*元素在一行放不下时,自动换行*/flex-wrap:wrap;width: 700px;height: 600px;
}
.container .box{display: flex;justify-content:space-around;align-items:center;/*让元素垂直排列,就是让包含图片div和文字垂直排列*/flex-direction:column;width: 100px;height: 140px;margin: 20px;/*鼠标放上去变成小手*/cursor:pointer;
}
.container .box .img{/*图片在盒子里垂直水平居中*/display:flex;justify-content:center;align-items:center;width: 100px;height: 100px;border-radius:20px;/*盒子阴影*/box-shadow:18px 18px 30px rgba(0,0,0,0.2),-18px -18px 30px rgba(255,255,255,1);/*过渡时间,先加速后减速*/transition:all 0.2s ease-out;
}
.container .box .img img{width: 60px;transition:all 0.2s ease-out;
}
.container .box p{color:slategray;
}
.container .box .img:hover{/*inset 是内部阴影,默认为外部阴影outset*/box-shadow: 0 0 0 rgba(0,0,0,0.2),0 0 0 rgba(255,255,255,0.8),inset 18px 18px 30px rgba(0,0,0,0.1),inset -18px -18px 30px rgba(255,255,255,1)
}
.container .box .img:hover img{width: 58px;
}

效果

鼠标划过效果

这篇关于HTML+CSS鼠标拟态效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/865772

相关文章

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd