CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)


Posted in HTML / CSS onJune 03, 2013

在平常项目中,偶尔也会涉及一些前端的设计,但毕竟不是专业的,所以一直想要系统的学习一下。最近辞职了,等待入职新公司的期间,有空折腾学习一些CSS3的知识。
今天就从一个简单的圆形菜单的实现,来总结一些最近学习的收获。效果图如下:

CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)


下面,就来看看这个圆形半透明的菜单如何实现:
1. 我们使用一个 ul 来制作菜单,代码如下:
复制代码
代码如下:

<ul>
<li>
<a href="#">
<span>首页</span>
</a>
</li>
<li>
<a href="#">
<span>用户</span>
</a>
</li>
<li>
<a href="#">
<span>活动</span>
</a>
</li>
</ul>

效果如下:

CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)


2. 为ul添加样式(ulMenu)以及其下的li,a,span,美化一下菜单:
复制代码
代码如下:

.ulMenu {
list-style: none;
}
.ulMenu li {
float: left;
height: 80px;
width: 80px;
padding: 0;
margin: 0;
text-align: center;
list-style: none;
margin: 10px 10px 0 0;
}
.ulMenu li a {
display: block;
height: 100%;
padding: 0 15px;
font-size: 12px;
font-weight: bold;
color: #ccc;
text-decoration: none;
}
.ulMenu li a span {
display: block;
}

效果如下:

CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)

3. 如何让菜单变成圆的,其实只要先将元素设置为长宽相等的正方形,再设置圆角为其长度的一半即可,例如,此例子中,li 的长宽是80px,则我们设置其圆角为40px,我们将 li 的样式改为如下,增加圆角和背景色:
复制代码
代码如下:

.ulMenu li
{
float: left;
height: 80px;
width: 80px;
padding: 0;
margin: 0;
text-align: center;
list-style: none;
background: rgba(0,0,0,0.3);
border-radius: 40px;
-moz-border-radius:40px;
-webkit-border-radius: 40px;
margin:10px 10px 0 0;
}

效果如下:

CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)


4. 这样离我们要的效果还有些差距,我们要加一些图标上去。CSS3的可以引入font字体可以让我们省去找图标的麻烦,我们可以直接引入font字体文件,这个下一步再详细说,这里,我们先改动一下菜单的 html 代码,用 个容器来显示图标,这里我们用 i 元素,改动后代码如下:
复制代码
代码如下:

<ul class="ulMenu">
<li>
<a href="#">
<i></i>
<span>
首页
</span>
</a>
</li>
<li>
<a href="#">
<i></i>
<span>
用户
</span>
</a>
</li>
<li>
<a href="#">
<i></i>
<span>
活动
</span>
</a>
</li>
<div style="clear:both;">
</div>
</ul>

给 i 添加样式:
复制代码
代码如下:

.ulMenu li a i
{
display: inline-block;
width: 24px;
height: 24px;
margin-top: 17px;
margin-bottom: .25em;
font-size: 28px;
}

效果如下:

CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)


5. 网上定制的font字体现在附带很多常见图标(可参照 http://astronautweb.co/snippet/font-awesome/ ,字体可到此处下载):

CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)


下载font字体,在样式文件中引用:
复制代码
代码如下:

@font-face {
font-family: 'FontAwesome';
src: url('font/fontawesome-webfont.eot');
src: url('font/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
url('font/fontawesome-webfont.woff') format('woff'),
url('font/fontawesome-webfont.ttf') format('truetype'),
url('font/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'),
url('font/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');
font-weight: normal;
font-style: normal;
}

6. 接着,我们可以用下面形似的样式来制定图标:
复制代码
代码如下:

.css:before {
content: "\f001";
}

但是图标很多,我们可以直接引入下载的font文件下面css文件夹下的 font-awesome.css样式文件,也就是说,上面的一大堆字体文件引用都可以省略为(当然,真实开发中考虑到模块化引入css加载性能略影响,个人觉得应少用,希望有经验的前辈赐教):
复制代码
代码如下:

@import url('font-awesome.css');

为 i 添加对应 css:
复制代码
代码如下:

<ul class="ulMenu">
<li>
<a href="#">
<i class="icon-home">
</i>
<span>
首页
</span>
</a>
</li>
<li>
<a href="#">
<i class="icon-user">
</i>
<span>
用户
</span>
</a>
</li>
<li>
<a href="#">
<i class="icon-th-large">
</i>
<span>
活动
</span>
</a>
</li>
<div style="clear:both;">
</div>
</ul>

效果如下:

CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)


7. 最后一步,添加鼠标移动上去时改变颜色,添加如下样式:
复制代码
代码如下:

.ulMenu li a:hover {
color: #F90;
}

效果如下:

CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)


猛戳【demo】下载例子。
HTML / CSS 相关文章推荐
利用CSS3实现文本框的清除按钮相关的一些效果
Jun 23 HTML / CSS
css3 中的新特性加强记忆详解
Apr 16 HTML / CSS
CSS3实现翘边的阴影效果的代码示例
Jun 13 HTML / CSS
纯css实现照片墙3D效果的示例代码
Nov 13 HTML / CSS
10分钟理解CSS3 FlexBox弹性布局
Dec 20 HTML / CSS
CSS3 border-radius圆角的实现方法及用法详解
Sep 14 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
Oct 28 HTML / CSS
CSS3 实现时间轴动画
Nov 25 HTML / CSS
html5简介_动力节点Java学院整理
Jul 07 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
Oct 16 HTML / CSS
详解Canvas 跨域脱坑实践
Nov 07 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
Aug 12 HTML / CSS
css3弹性盒模型实例介绍
May 27 #HTML / CSS
深入CSS3 动画效果的总结详解
May 09 #HTML / CSS
基于CSS3特效之动画:animation的应用
May 09 #HTML / CSS
纯CSS3实现手风琴风格菜单具体步骤
May 06 #HTML / CSS
CSS3——齿轮转动关键代码
May 02 #HTML / CSS
如何利用CSS3制作3D效果文字具体实现样式
May 02 #HTML / CSS
使用JS+CSS3技术:让你的名字动起来
Apr 27 #HTML / CSS
You might like
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
Python中的下划线详解
2015/06/24 Python
python中list列表的高级函数
2016/05/17 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
python K近邻算法的kd树实现
2018/09/06 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
python-地图可视化组件folium的操作
2020/12/14 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
个人思想理论学习的自我鉴定
2013/11/30 职场文书
顶岗实习接收函
2014/01/09 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
先进个人材料怎么写
2014/12/30 职场文书
英文商务邀请函范文
2015/01/31 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS