用css和HTML做loding小动画

用css和HTML做loding小动画

1、先进行简单的页面布局
1.1
我这里是使用了一个div标签包了两个p标签
每个p标签里面又包了四个span标签
构建了一个简单的页面搭建

其余的用css就可以进行下一步操作了

<body>
	<div>
		<p>
			<span></span>
			<span></span>
			<span></span>
			<span></span>
		</p>
		<p>
			<span></span>
			<span></span>
			<span></span>
			<span></span>
		</p>
	</div>
</body>

2、使用css样式实现效果
2.1
下面的是详细的书写css样式 和解析
篇幅有点长 详细解释了每一步的操作 写完之后建议整体浏览一遍

<style type="text/css">
		/* 使用通配符进行所用标签去除默认的margin 和 padding样式 */
		* {
			margin: 0;
			padding: 0;
		}
		/* 给整个body加了一个黑色的背景颜色(加不加都可) */
		body {
			background: black;
		}
		/* 这里给div标签设定了宽高各200px,
		给了一个页面 左右居中 上间距给了200px  ,
		给了一个相对定位*/
		div {
			width: 200px;
			height: 200px;
			margin: 200px auto;
			position: relative;
		}
		/* 这里给所有的p标签都设置了宽高200px ,
		 给了一个绝对定位
		 (这里给绝对定位  因为父元素有定位 
		 所以是根据父级元素 也就是div进行定位) */
		div p {
			width: 200px;
			height: 200px;
			position: absolute;
		}
		/* 这里给所有的span标签设置了基础样式 */
		p span {
			/* 将行内元素span转换成块元素   
			使span标签支持设定宽高和一些其他css属性  */
			display: block;
			/* 宽高各40px   背景色为白色   文本居中  行高40px */
			width: 40px;
			height: 40px;
			background: white;
			text-align: center;
			line-height: 40px;
			
			/* 设定为圆角盒子  */
			border-radius: 50%;

			/* 这里调用下面的动画(tom) 过度时间为1s 匀速 循环 */
			animation: tom 1s linear infinite;

			/* 设定盒子阴影 水平方向0 垂直方向0 模糊度为3px 延伸半径为10px 阴影颜色为白色  */
			box-shadow: 0 0 3px 10px white;
		}

		/* 这里使用结构伪类选择器将span分别定位到到盒子p的四个角   
		(注意:这里的定位也是根据父级p定位的  因为盒子p也给了定位)*/
		p span:nth-of-type(2) {
			position: absolute;
			right: 0;
			top: 0;
		}

		p span:nth-of-type(3) {
			position: absolute;
			right: 0;
			bottom: 0;
		}

		p span:nth-of-type(4) {
			position: absolute;
			left: 0;
			bottom: 0;
		}

		/* 这里选择第二个盒子p 使其旋转45度(rotate属性值 默认按照z轴旋转  单位是deg) */
		p:nth-of-type(2) {
			transform: rotate(45deg);
		}

		/* 定义动画关键帧  使用关键字@keyframes 名称{} 定义动画的关键帧
			这里在开始时为缩小到没有
			中间时从没有放大到正常
			结束时再次缩小到没有

		*/
		@keyframes tom {
			0% {
				transform: scale(0);
			}

			50% {
				transform: scale(1);
			}

			100% {
				transform: scale(0);
			}
		}

		/* 这里给每一个span标签 按照顺时针的方向设定了动画开始延迟  
		由于给正数会在动画开始时影响动画效果  
		这里给的负数  就不会出现页面刚打开会有个别不动的
		 */

		/* 第一个p的  第一个span */
		p:nth-of-type(1) span:nth-of-type(1) {
			animation-delay: -0.12s;
		}

		/* 第二个p的  第一个span */
		p:nth-of-type(2) span:nth-of-type(1) {
			animation-delay: -0.23s;
		}

		/* 第一个p的  第二个span */
		p:nth-of-type(1) span:nth-of-type(2) {
			animation-delay: -0.34s;
		}

		/* 第二个p的  第二个span */
		p:nth-of-type(2) span:nth-of-type(2) {
			animation-delay: -0.45s;
		}

		/* 第一个p的  第三个span */
		p:nth-of-type(1) span:nth-of-type(3) {
			animation-delay: -0.56s;
		}

		/* 第二个p的  第三个span */
		p:nth-of-type(2) span:nth-of-type(3) {
			animation-delay: -0.67s;
		}

		/* 第一个p的  第四个span */
		p:nth-of-type(1) span:nth-of-type(4) {
			animation-delay: -0.78s;
		}

		/* 第二个p的  第四个span */
		p:nth-of-type(2) span:nth-of-type(4) {
			animation-delay: -0.89s;
		}
	</style>

感谢阅读!
如有错误的地方感谢指点。
下期写用css和HTML做出百叶窗的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值