2021-01-17

CSS设计之个人开发试验的小demo

前情提要:CSS学习手册与规划路线全览;

一、按钮:

注意:要去除(或防止)点击按钮时出现默认的黑色边框样式(难看的),可以有一招:直接设置所有按钮的样式 outline为none;
在这里插入图片描述
在这里插入图片描述

1. 普通按钮:加鼠标光标移上来时光芒划过的效果 基本结构HTML:
资源链接:我的资源管理;

<div class="btnDiv">
	<div class="buttonDiv">
		<span>
			点击确认
		</span>
		
	</div>
</div>

在这里插入图片描述
2. 挺好看的 2D平面效果的普通按钮:
在这里插入图片描述

CSS样式:

.btn {
   padding: 6px 12px;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
	color: #fff;
	outline: none;
	/*红色背景色颜色*/
    background-color: rgb(217, 83, 80);
    border-color: rgb(217, 83, 80);
    /*蓝色背景颜色
	background-color: rgb(51, 122, 185);
    border-color: rgb(51, 122, 185);	
	*/
	/*橙色背景颜色
	background-color: rgb(240, 173, 78);
    border-color: rgb(240, 173, 78);	
	*/
	 
	/*绿色背景颜色
	background-color: rgb(92, 184, 92);
    border-color: rgb(92, 184, 92);	
	*/
	/*浅蓝色背景颜色
	background-color: rgb(90, 190, 220);
    border-color: rgb(90, 190, 220);
	*/
	
}

HTML结构:

<button class="btn">click me</button>

二、进度条样式设置:

1. 各种色彩的进度条(div标签设置的):
在这里插入图片描述
(1)基本HTML结构+CSS样式设置:

① 这个HTML文件的相关样式CSS可以单独封装在一个CSS文件中,
② 只要在运用进度条的HTML文件里面写入相应的HTML标签+这个CSS文件

就可以了!!!

<!doctype html>
<html>
<head>
	<meta charset="utf-8"> 
	<title>进度条样式设置</title> 
	<style>
		/*父盒子div(外层div的样式设置)*/
		.colorful-div {
			width: 200px;
			height: 15px;
			overflow: hidden;
			border-radius: 7px;
			padding; 0;
			box-sizing: border-box;
			border: 1px solid orange;
			
		}
		/*内层div盒子的通用样式设置*/
		.colorful-div > div {
			width: 0%;
			height: 100%;
			background-size: 40px 40px;
    		margin: 0;
			border-radius: 7px;
			transition: all 0.3s;
		}
		<!--
		橙色进度条,给内层div子盒子添加类名orange的样式设置
		记住:background-color 比如 orange不能少,
		因为background-image 是transparent 透明色,
		到时候万一加载时就看不到颜色了
		-->
		.orange {
			background: orange linear-gradient(
				45deg,
				rgba(255,255,255,.15) 25%,
				transparent 25%,
				transparent 50%,
				rgba(255,255,255,.15) 50%,
				rgba(255,255,255,.15) 75%,
				transparent 75%
				
			);
		}
		.green {
			background: rgb(92, 190, 90) linear-gradient(
				45deg,
				rgba(255,255,255,.15) 25%,
				transparent 25%,
				transparent 50%,
				rgba(255,255,255,.15) 50%,
				rgba(255,255,255,.15) 75%,
				transparent 75%,
				transparent
			);
    		
		}
		.blue {
			background: rgb(91, 192, 242) linear-gradient(
				45deg,
				rgba(255,255,255,.15) 25%,
				transparent 25%,
				transparent 50%,
				rgba(255,255,255,.15) 50%,
				rgba(255,255,255,.15) 75%,
				transparent 75%,transparent
			);
		}
		.red {
			background: rgb(217, 83, 79) linear-gradient(
				45deg,
				rgba(255,255,255,.15) 25%,
				transparent 25%,
				transparent 50%,
				rgba(255,255,255,.15) 50%,
				rgba(255,255,255,.15) 75%,
				transparent 75%,
				transparent
			);
    	}
		.purple {
			background: rgb(97, 83, 197) linear-gradient(
				45deg,
				rgba(255,255,255,.15) 25%,
				transparent 25%,
				transparent 50%,
				rgba(255,255,255,.15) 50%,
				rgba(255,255,255,.15) 75%,
				transparent 75%,
				transparent
			);
    	}
	</style>
    </head>
	<body>
		<!--橙色进度条,给内层div子盒子添加类名orange-->
		<div class="colorful-div">
			<div class="orange"></div>
		</div>
		<!--蓝色进度条,给内层div子盒子添加类名blue-->
		<div class="colorful-div">
			<div class="blue"></div>
		</div>
		<!--绿色进度条,给内层div子盒子添加类名green-->
		<div class="colorful-div">
			<div class="green"></div>
		</div>
		<!--红色进度条,给内层div子盒子添加类名red-->
		<div class="colorful-div">
			<div class="red"></div>
		</div>
		<!--紫色进度条,给内层div子盒子添加类名purple-->
		<div class="colorful-div">
			<div class="purple"></div>
		</div>
		<!--
		其他颜色的进度条,可以根据自己的实际需求添加CSS样式,
		同时设置相关的方便记忆,见名知意类名class即可
		-->
	</body>
</html>

(2)JavaScript控制内层div子盒子宽度(水平方向的长度)width来实现progress加载中的进度条效果:

<!--
这里的JavaScript控制只是自己玩一下,随便操作数据模拟一下看看效果,
具体的动态效果还得自己根据实际需求来实现
-->
<script>
	window.addEventListener("DOMContentLoaded", function() {
		let colorfulDivs 
		= 
		document.getElementsByClassName("colorful-div");
		let colorfulDivsLen = colorfulDivs.length;
		for(let i = 0; i < colorfulDivsLen; i++) {
			
			progress(colorfulDivs[i].children[0]);
		}
		function progress(obj) {
			try {
				if(obj.set) {
					clearIterval(obj.set);
				}
				obj.zero = 0;
				obj.set = setInterval(function() {
					obj.style.width = (++obj.zero) + "%";
					console.table(obj.nowWidth, obj.style.width);
					if(obj.zero >= 100) {
						clearInterval(obj.set);
						
					}
				}, 100);
				
			} catch(err) {
				alert(err.message);
			}
		}
		
	});
	
</script>

三、二级菜单

1. CSS之旋转出现的li列表的炫酷二级菜单:文件链接;
另外还需要引入的样式初始化文件链接;

在这里插入图片描述

四、网页内容加载动画loading效果:

1. 变大变小的动画(HTML字符实体+CSS动画animation+font-size变化):
在这里插入图片描述

(1)效果一:(CSS文件链接 - - 效果一)
① HTML结构:

	<script type="text/javascript">
		window.addEventListener("beforeunload", function() {
			document.getElementsByClassName("loading1")[0].style.display = "block";
		});
		window.addEventListener("load", function() {
			document.getElementsByClassName("loading1")[0].remove();
			/*
			整个网页加载好后(包括图片等),
			就移除这个动画元素,
			应该可以减少DOM树的分支
			*/
		});
	</script>
</head>
<body>
	<!--
	这个网页加载动画元素的div要放在body下面的第一个子元素的位置,
	因为是要在加载后面的所有元素之前运行动画的
	-->
	<div class="loading1">
		<div class="loading01">
			<div>加载中,稍等……<br />loading……</div>
			<div>
				<span>&#9946;</span>
			</div>
		</div>
	</div>
	……其他元素
</body>

(2)效果二: (CSS文件 - - 效果二)
① HTML结构:

	<script type="text/javascript">
		window.addEventListener("beforeunload", function() {
			document.getElementsByClassName("loading1")[0].style.display = "block";
		});
		window.addEventListener("load", function() {
			document.getElementsByClassName("loading1")[0].remove();
			/*整个网页加载好后(包括图片等),就移除这个动画元素,应该可以减少DOM树的分支*/
		});
	</script>
</head>
<body>
	<!--这个网页加载动画元素的div要放在body下面的第一个子元素的位置,因为是要在加载后面的所有元素之前运行动画的-->
	<div class="loading1">
		<div class="loading01">
			<div>加载中,稍等……<br />loading……</div>
			<span></span>
			<span></span>
			<span></span>
		</div>
	</div>
	……其他元素
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值