CSS--实现<圆形导航菜单>
概要
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。熟练掌握CSS的基本原理可以实现更好的页面交互效果,提升用户的使用体验。
代码实现
新建文件夹circle-nav,circle-nav下新建index.html和style.css文件,index.html引入本地font-awesome字体库或者CDN上的资源
目录结构
/**
circle-nav
├─ fontawesome-free-5.11.2-web
├─ index.html
└─ style.css
*/
index.html代码
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./fontawesome-free-5.11.2-web/css/all.min.css">
<link rel="stylesheet" href="style.css">
<title>纯CSS3炫酷圆形导航菜单特效</title>
</head>
<body>
<h1 style="text-align: center;color: aliceblue">CSS炫酷圆形导航菜单特效</h1>
<div class="demo">
<div class="navbar">主菜单
<ul class="menu">
<li><a href="#" class="fab fa-facebook-f"></a></li>
<li><a href="#" class="fab fa-google-plus"></a></li>
<li><a href="#" class="fab fa-twitter"></a></li>
<li><a href="#" class="fab fa-linkedin"></a></li>
<li><a href="#" class="fab fa-pinterest"></a></li>
<li><a href="#" class="fa fa-rss"></a></li>
<li><a href="#" class="fab fa-instagram"></a></li>
<li><a href="#" class="fab fa-skype"></a></li>
<li><a href="#" class="fab fa-github"></a></li>
</ul>
</div>
</div>
</body>
</html>
style.css代码
body {
background-color: #262626
}
.demo {
height: 150px;
width: 150px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.navbar {
width: 150px;
height: 150px;
line-height: 150px;
border-radius: 50%;
background: #fff;
position: relative;
cursor: pointer;
text-align: center;
font-size: 1.75em;
font-weight: bold;
color: #383838;
transition: 0.24s 0.2s;
}
.navbar:hover {
background: rgba(255, 255, 255, 0.75);
}
.navbar .menu {
list-style: none;
padding: 0;
margin: 0;
position: absolute;
top: -75px;
left: -75px;
border: 150px solid transparent;
cursor: default;
border-radius: 50%;
transform: scale(0);
transition: transform 1.4s 0.07s;
z-index: -1;
}
.navbar:hover .menu {
transition: transform 0.4s 0.08s, z-index 0s 0.5s;
transform: scale(1);
z-index: 1;
}
.navbar .menu li {
position: absolute;
top: -100px;
left: -100px;
transform-origin: 100px 100px;
transition: all 0.5s 0.1s;
}
.navbar:hover .menu li {
transition: all 0.6s;
}
.navbar .menu li a {
transition:all .4s ease 0s;
width: 45px;
height: 45px;
line-height: 45px;
border-radius: 50%;
background: #fff;
position: absolute;
font-size: 60%;
color: #99b977;
transition: 0.6s;
text-decoration: none;
}
.navbar .menu li a:hover {
background-color: #2860F8;
color: #fff;
}
.navbar:hover .menu li:nth-child(1) {
transition-delay: 0.02s;
transform: rotate(85deg);
}
.navbar:hover .menu li:nth-child(1) a {
transition-delay: 0.04s;
transform: rotate(635deg);
}
.navbar:hover .menu li:nth-child(2) {
transition-delay: 0.04s;
transform: rotate(125deg);
}
.navbar:hover .menu li:nth-child(2) a {
transition-delay: 0.08s;
transform: rotate(595deg);
}
.navbar:hover .menu li:nth-child(3) {
transition-delay: 0.06s;
transform: rotate(165deg);
}
.navbar:hover .menu li:nth-child(3) a {
transition-delay: 0.12s;
transform: rotate(555deg);
}
.navbar:hover .menu li:nth-child(4) {
transition-delay: 0.08s;
transform: rotate(205deg);
}
.navbar:hover .menu li:nth-child(4) a {
transition-delay: 0.16s;
transform: rotate(515deg);
}
.navbar:hover .menu li:nth-child(5) {
transition-delay: 0.1s;
transform: rotate(245deg);
}
.navbar:hover .menu li:nth-child(5) a {
transition-delay: 0.2s;
transform: rotate(475deg);
}
.navbar:hover .menu li:nth-child(6) {
transition-delay: 0.12s;
transform: rotate(285deg);
}
.navbar:hover .menu li:nth-child(6) a {
transition-delay: 0.24s;
transform: rotate(435deg);
}
.navbar:hover .menu li:nth-child(7) {
transition-delay: 0.14s;
transform: rotate(325deg);
}
.navbar:hover .menu li:nth-child(7) a {
transition-delay: 0.28s;
transform: rotate(395deg);
}
.navbar:hover .menu li:nth-child(8) {
transition-delay: 0.16s;
transform: rotate(365deg);
}
.navbar:hover .menu li:nth-child(8) a {
transition-delay: 0.32s;
transform: rotate(355deg);
}
.navbar:hover .menu li:nth-child(9) {
transition-delay: 0.18s;
transform: rotate(405deg);
}
.navbar:hover .menu li:nth-child(9) a {
transition-delay: 0.36s;
transform: rotate(315deg);
}