用CSS3制作很特别的波浪形菜单

原文:用CSS3制作很特别的波浪形菜单

网页菜单我们见过很多,各种炫酷的、实用的菜单比比皆是。昨天我看到一款很特别的CSS3菜单,它的外形是波浪形的,弯弯曲曲,结合背景,看上去还挺不错的,下面看下一效果图。

我想说可能菜单并不是很实用,但是很有创意,而且也方便我们学习CSS3。

当然,你可以到这里查看DEMO演示

接下来我们来对这款波浪形菜单的源代码简单分析一下。

HTML代码的结构非常简单:

<nav class='b-nav'>
  <ul class='b-menu'>
    <li><a href='#'></a></li>
    <li><a href='#'></a></li>
    <li><a href='#'></a></li>
    <li><a href='#'></a></li>
    <li><a href='#'></a></li>
    <li><a href='#'></a></li>
  </ul>
</nav>

然后是CSS代码,这里我们对菜单项进行绝对定位

.b-menu li {
  overflow: hidden;
  position: absolute;
  width: 12em; height: 12em;
}

接着就是重点的波浪形效果的CSS代码了,这里主要利用了CSS3的transform动画属性,利用rotate进行旋转,skewY进行y轴倾斜。

.b-menu li:nth-child(-n+3) {
  top: 0.66em; left: -5.68em;
  transform-origin: 100% 100%;
}
.b-menu li:nth-child(n+4) {
  right: -5.69em; bottom: 0.66em;
  transform-origin: 0 0;
}
.b-menu li:first-child {
  transform: skewY(67.5deg);
}
.b-menu li:nth-child(2) {
  transform: rotate(22.5deg) skewY(67.5deg);
}
.b-menu li:nth-child(3) {
  transform: rotate(45deg) skewY(67.5deg);
}
.b-menu li:nth-child(4) {
  transform: skewY(67.5deg);
}
.b-menu li:nth-child(5) {
  transform: rotate(22.5deg) skewY(67.5deg);
}
.b-menu li:last-child {
  transform: rotate(45deg) skewY(67.5deg);
}
.b-menu a, .b-menu li:after {
  position: absolute;
  border-radius: 50%;
  box-shadow: 0 0 .2em black, inset 0 0 .2em black;
  transform: skewY(-67.5deg) rotate(-11.25deg);
}

这里说明一下nth-child(n),它表示该父元素的第n个子元素。

最后附上该波浪形菜单的源代码。源码下载地址>>

时间: 2024-10-20 23:12:16

用CSS3制作很特别的波浪形菜单的相关文章

CSS3制作的完美下拉菜单代码

效果很好,要是带点弹性效果就更完美了~ 不支持淘汰的IE6! [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

JS+CSS3制作炫酷的弹窗效果_javascript技巧

昨天在家看电视时,退出的时候发现了一个弹窗效果,整个背景模糊,觉得这样的效果好炫,要比纯色加透明度高大上好多,连续试了几个界面,最终确定效果由css实现的,于是今天一大早来到公司便赶紧搜索了一下,虽然兼容性奇差,但是一个css属性就可以搞定.瞬间感觉自己知道的真是太少了~~        首先回忆一下弹窗的实现,一般我们分为两层,弹出窗口层(popus)和遮罩层(mask),通常情况下我习惯就这两元素全部设成fixed定位,具体和absolute区别一试便知.对于mask层自不用多少,我们如下给

使用CSS3制作文字、图片倒影

box-reflect语法: box-reflect:none | <direction> <offset>? <mask-box-image>?     <direction> = above | below | left | right     <offset> = <length> | <percentage>     <mask-box-image> = none | <url> | <

jQuery结合CSS制作动态的下拉菜单_jquery

当要在一个有限的导航菜单空间放一个大的子菜单时,我们一般采用下拉菜单的形式来弥补空间的不足.本文将带大家用最少的时间,使用jQuery和CSS结合制作一个动态的下拉菜单. XHTML 首先是要在页面的head部分引入jquery库,这是必须的. <script type="text/javascript" src="js/jquery.js"></script> 接着我使用一个无序列表来构建菜单. <ul class="men

《响应式Web设计:HTML5和CSS3实践指南》——2.7节使用CSS3制作3D文本

2.7 使用CSS3制作3D文本在前几节中,我们使用画布元素创建了投影.斜面以及内侧阴影.使用CSS3可以让文本真的站起来.使用CSS3的text-shadow属性,可以让文本看起来好像伸出屏幕来面对用户. 2.7.1 准备工作如果你想直接跳过本节,你可以从Packt Publishing的网站上下载代码.否则,如果你想边学边做,那就一起来创建属于你自己的3D文本吧.下面将通过组合多个CSS3的阴影效果来实现3D特效. 2.7.2 实现方式在IDE中,创建一个在body元素中只有一个header

8款帅酷的HTML5/CSS3 3D动画、图片、菜单应用

今天要给大家分享8款帅酷的HTML5/CSS3应用,它们中包括很酷的HTML5 3D动画应用,也包括实用的CSS3图片.菜单.进度条等插件,一起来看看吧. 1.HTML5 Canvas火焰燃烧动画 如同掉落的火球这次要分享的是一款超级绚丽的HTML5火焰动画,画面上是一个熊熊燃烧的小火球,小球燃烧的火焰非常逼真,会比较消耗CPU.另外这个动画是在HTML5 Canvas上实现的,修改起来也非常灵活.之前也分享过几款HTML5火焰动画,像这款HTML5 Canvas火焰闪烁动画. html5-ca

用css3制作旋转加载动画的几种方法

以WebKit为核心的浏览器,例如Safari和Chrome,对html5有着很好的支持,在移动平台中这两个浏览器对应的就是IOS和Android.最近在开发一个移动平台的web app,那么就有机会利用css3去实现一些很酷的效果,这些效果原来更多的是利用图片来实现.最近的一个改进就是利用css3制作旋转加载动画.以下将分别介绍几种实现的方案. 方案1,图片辅助 传统做法是直接用动态的GIF图片,这个方案是用PNG图片加上背景颜色来模拟静止的加载图片,然后利用css中的animation处理图

一个用纯CSS制作的网页下拉菜单

网页特效代码实例:一个用纯CSS制作的网页下拉菜单. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[ <!ELEMENT a (#PCDATA | table)* > ]><html xmlns="http://www.w3.org/1999/xhtml" xml:lang

CSS3实例案例:CSS3制作网站管理后台面板

文章简介:css3制作后台管理面板. demo download HTML结构 <div class="admin-panel clearfix">  <div class="slidebar">    <div class="logo">      <a href=""></a>    </div>    <ul>      <li&g