如何用CSS实现双语导航菜单


本教程是一个完全用CSS实现的中英文双语导航菜单,无脚本和图片,初始时,菜单语言是英文,当鼠标悬停在菜单上时,其变成中文,当然你也可以反过来做。
实现原理:
XHTML
<ul id="nav">
<li><a class="bi" href="index.html">Home<span>首 页</span></a></li>
</ul>
从上面代码可以看出,中文放在 span 标签里,关键是需要在初始时,使其的属性不可见。
CSS

.bi{
position: relative;
z-index: 0;
}
.bi:hover{
z-index: 99;
}
.bi:hover span{
visibility: visible;
top: 0;
left: 0;
cursor: pointer;
}
.bi span{
position: absolute;
left: -999em;
visibility: hidden;
}
#nav li a,.bi:hover span{
line-height: 20px;
text-decoration: none;
background: #DDDDDD;
color: #666666;
display: block;
width: 80px;
text-align: center;
}
#nav li a:hover,.bi:hover span{
color: #FFFFFF;
background: #DC4E1B;
}
.bi:hover span{
padding-top: 2px;
}
链接的属性是相对定位,那在此标签里的元素可将其作为参照点。 在 span 元素里的中文因其设定了不可见,所以在初始状态时,只能显示英文。而当鼠标悬停在菜单上时, span 元素里的设定变为可见,Z轴为99 ,覆盖在英文上面,从而实现了语言文字的转换。
缺点:因为中英文字的长度关系,不能实现自适应宽度,只能固定宽度。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" c /><meta name="Keywords" c /><meta http-equiv="Description" c /><meta c name="robots" /><meta name="author" c /><meta name="copyright" c /><title>完全用CSS实现的中英文双语导航菜单</title><style type="text/css">a{        color: #FFFF99;        text-decoration: none;}a:hover{        color: #FFFFFF;        text-decoration: underline;}          #nav{        padding: 10px 10px 0;        font-size: 12px;        font-weight: bold;        margin: 1em 0 0;        list-style:none;}#nav li{        float: left;        margin-right: 1px;}.bi{        position: relative;        z-index: 0;}.bi:hover{        z-index: 99;}.bi:hover span{        visibility: visible;        top: 0;        left: 0;        cursor: pointer;}.bi span{        position: absolute;        left: -999em;        visibility: hidden;}#nav li a,.bi:hover span{        line-height: 20px;        text-decoration: none;        background: #DDDDDD;        color: #666666;        display: block;        width: 80px;        text-align: center;}#nav li a:hover,.bi:hover span{        color: #FFFFFF;        background: #DC4E1B;}.bi:hover span{        padding-top: 2px;}#navbar{        background: #DC4E1B;        height: 8px;        overflow: hidden;        clear: both;}</style><link href="../css/main.css" rel="stylesheet" type="text/css" /></head><body><div id="top">  <ul id="nav">                <li><a class="bi" href="index.html">Home<span>首 页</span></a></li>                <li><a class="bi" href="about.html">About us<span>关于我们</span></a></li>                <li><a class="bi" href="products.html">Products<span>产品展示</span></a></li>                <li><a class="bi" href="services.html">Services<span>售后服务</span></a></li>                <li><a class="bi" href="contact.html">Contact<span>联系我们</span></a></li>        </ul>        <div id="navbar"></div></body></html>



相关阅读:
理解Javascript_11_constructor实现原理
CSS教程:关于浮动
javascript实现的在当前窗口中漂浮框的代码
专为新手写的结合smarty的类
javascript各种复制代码收集
css文本框与按钮美化效果代码
HTML表格标记教程(35):跨列属性COLSPAN
Navicat异地自动备份MySQL方法详解(图文)
asp中文数字验证码
PHP框架之DooPHP
Vsftpd+tcp_wrappers控制主机和用户访问
ASP操作XML的类
突破网页文字无法复制局限
解析Servlet/JSP会话跟踪机制
快速导航

Copyright © 2016 phpStudy |