css3实现扇形导航,一个圆形加4个扇形

效果图:

主要实现过程:

1)4个Li元素,把他们的定位都设置未absolute.

2)改变li的旋转中心到右下角  transform-origin: 100% 100%; 4个对应旋转的角度为0,90,180,270deg

3)定位第五个li在中心

4)前面的4个li都往其所在角偏移10PX,以显示间隙

5)4个li里面的a标签设置渐变的背景色,让圆心位置的颜色设置为隐藏  background: -webkit-radial-gradient(right bottom, transparent 35%, #eee 35%);

源码:

<div class="nav">
    <ul>
        <li><a href=""><span class="icon"></span></a></li>
        <li><a href=""><span class="icon"></span></a></li>
        <li><a href=""><span class="icon"></span></a></li>
        <li><a href=""><span class="icon"></span></a></li>
        <li><a href=""></a></li>
    </ul>
</div>
.nav {
    width: 300px;
    height: 300px;
    /*border:1px solid blue;*/
    position: fixed;
    top: 10%;
    left: 30%;
    border-radius: 50%;
    overflow: hidden;
}

.nav li {
    position: absolute;
    width: 150px;
    height: 150px;
    transform-origin: 100% 100%;
}

.nav li a:hover {
    background: -webkit-radial-gradient(right bottom, transparent 35%, #2e2e2e 35%);
}

.nav li a {
    display: block;
    position: absolute;
    width: 150px;
    height: 150px;
    background: -webkit-radial-gradient(right bottom, transparent 35%, #eee 35%);
}

.nav li:nth-child(1) {
    transform: rotate(0deg);
    left: -10px;
    top: -10px;
}

.nav li:nth-child(2) {
    transform: rotate(90deg);
    left: 10px;
    top: -10px;
}

.nav li:nth-child(3) {
    transform: rotate(180deg);
    top: 10px;
    left: 10px;
}

.nav li:nth-child(4) {
    transform: rotate(270deg);
    top: 10px;
    left: -10px;
}

.nav li:nth-child(5) {
    border-radius: 100%;
    transform: scale(0.9);
    left: 27.5%;
    top: 27.5%;
    transform-origin: 0 0;
    background: #eee
}

.nav li:nth-child(5) a {
    background: #eee;
    border-radius: 100%;
}

.nav li:nth-child(5) a:hover {
    background: #2e2e2e;
    border-radius: 100%;
}

.icon {
    opacity: 0.7;
    display: inline-block;
    width: 80px;
    height: 70px;
    text-align: center;
    font-size: 30px;
    background: url(../img/mes.png);
    transform: rotate(-50deg) translate(-5%, 83%);
}
时间: 2024-08-30 11:52:29

css3实现扇形导航,一个圆形加4个扇形的相关文章

【Web前沿技术】纯 CSS3 打造的10个精美加载进度条动画

之前向大家介绍8款优秀的 jQuery 加载动画和进度条插件,今天这篇文章向大家推荐10个纯 CSS3 代码实现精美加载进度条动画效果的方案.加载动画和进度条在网站和 Web 应用中的使用非常流行,特别是在使用 Ajax 技术加载内容的应用场景中,使用时尚的加载动画和进度条告诉用户内容正在加载中是一种非常友好的方式. 您可能感兴趣的相关文章 20个非常绚丽的 CSS3 特性应用演示 23个纯 CSS3 打造的精美LOGO图案 35个让人惊讶的 CSS3 动画效果演示 推荐12个漂亮的 CSS3

HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等

今天给大家带来一个比较炫的进度条,进度条在一耗时操作上给用户一个比较好的体验,不会让用户觉得在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用:一般用于下载任务,删除大量任务,网页加载等:如果有使用html5为手机布局的,也可以用于手机中~ 效果图: 1.html结构: <div id="loadBar01" class="loadBar"> <div> <span class="percent&qu

CSS3背景 制作导航菜单综合练习题

CSS3背景 制作导航菜单综合练习题 小伙伴们,根据所学知识,使用CSS3实现下图的导航菜单效果 任务 1.制作导航圆角 提示:使用border-radius实现圆角 2.制作导航立体风格 提示:使用box-shadow实现立体风格 3.制作导航分隔线 提示:使用渐变与伪元素制作 4.删除第一个和最后一个导航分隔线 提示:使用伪元素删除第一个和最后一个分隔线 <!doctype html> <html lang="en"> <head> <me

【CSS笔记】css3制作立体导航

此例设计到:css3,伪类等. 源码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS3制作立体导航</title> <link rel="stylesheet" href="http://www.w3cplus.com/demo/css3/base.css&q

使用css3实现立体导航菜单效果

CSS3代码练习 导航html结构部分 1 <body> 2 <ul class="nav"> 3 <li><a href="#">Home</a></li> 4 <li><a href="#">Home</a></li> 5 <li><a href="#">Home</a>

一个link加载多个css文件

细看正则时匹配慕课网链接时发现的,一个link加载多个css文件 http://static.mukewang.com/static/css/??base.css,common/common-less.css?t=2.5,u/u_common-less.css,u/plans-less.css,u/dynamic/home-less.css?v=201708111926 淘宝也有这样的链接 http://a.tbcdn.cn/p/fp/2011a/??html5-reset-min.css,gl

GridView实现一个图片加多个文本框

GridView的使用是很简单的,API Demo中有例子,但是要实现复杂的GridView,就需要自定义了. 今天我们要实现如下的效果: 先说它的布局,它是由gridview和grid_item两部分组成. main.xml   <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/androi

用C3中的animation和transform写的一个模仿加载的时动画效果

用用C3中的animation和transform写的一个模仿加载的时动画效果! 不多说直接上代码; html标签部分 <div class="wrap"> <h2>用C3中的animation和transform写的一个模仿加载的时动画效果</h2> <div class="demo"> <div></div> <div></div> <div></d

一个线程加一运算,一个线程做减一运算,多个线程同时交替运行--synchronized

使用synchronized package com.pb.thread.demo5; /**使用synchronized * 一个线程加一运算,一个线程做减法运算,多个线程同时交替运行 * * @author Denny * */ public class Count { private int num = 0; private boolean flag = false; // 标识 //加法 public synchronized void add() { while (flag) { tr