CSS设计之个人开发试验的小demo
一、按钮:
注意:要去除(或防止)点击按钮时出现默认的黑色边框样式(难看的),可以有一招:直接设置所有按钮的样式 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>
三、二级菜单
四、网页内容加载动画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>⛚</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>