zoukankan      html  css  js  c++  java
  • css变换菜单

      这是一个简单的导航变换菜单,当鼠标放上去的时候中文变成英文,有两种实现方式,直接看代码。

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<style>
    		.top-nav{
    			font-size: 12px;
    			font-weight:bold;
    			list-style:none;
    			border-bottom: 8px solid red;
    			overflow:hidden;
    		}
    		.top-nav li{
    			float: left;
    			margin-right: 1px;
    		}
    		.top-nav li a{
    			line-height: 30px;
    			text-decoration: none;
    			background: #ddd;
    			color: #666;
    			display: block;
    			80px;
    			text-align: center;
    		}
    		.top-nav li a span{
    			display: none;
    		}
    		.top-nav li a:hover span{
    			display: block;
    			background: red;
    			color: white;
    		}
    		.top-nav li a:hover{
    			margin-top: -30px;
    		}
    
    	</style>
    </head>
    <body>
    	<ul class="top-nav">
    		<li><a href="">向往<span>xiang</span></a></li>
    		<li><a href="">周杰伦<span>jielun</span></a></li>
    		<li><a href="">陈奕迅<span>eason</span></a></li>
    		<li><a href="">王珞丹<span>wang</span></a></li>
    	</ul>
    </body>
    </html>
    

      这种做法将a标签里面的span隐藏起来,当hover a标签的时候将span元素变成block,另外hover a的时候将a标签设

    margin-top: -30px;此时a标签只是设置了行高30px,没有设置高,设置高就会出问题。
      在看另一种比较简单的方法:
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <style>
        .top-nav{
          font-size: 12px;
          font-weight:bold;
          list-style:none;
          border-bottom: 8px solid red;
          overflow: auto;
        }
        .top-nav li{
          float: left;
          margin-right: 1px;
        }
        .top-nav li a{
          height: 30px;
          line-height: 30px;
          text-decoration: none;
          background: #ddd;
          color: #666;
          display: block;
          80px;
          text-align: center;
        }
        .top-nav li a span:last-child{
          display: none;
        }
        .top-nav li a:hover span:first-child{
          display: none;
        }
        .top-nav li a:hover span:last-child{
          display: block;
          background: red;
          color: white;
        }
    /*    .top-nav li a:hover{
          margin-top: -30px;
        }
    */
      </style>
    </head>
    <body>
      <ul class="top-nav">
        <li><a href=""><span>向往</span><span>xiang</span></a></li>
        <li><a href=""><span>周杰伦</span><span>jielun</span></a></li>
        <li><a href=""><span>陈奕迅</span><span>eason</span></a></li>
        <li><a href=""><span>王珞丹</span><span>wang</span></a></li>
      </ul>
    </body>
    </html>
    

      这种方法就是讲a标签里面的中文和英文都用a包含起来,有first-child隐藏起来,当hover a标签的时候将a标签里面的第一个span隐藏起来,将第二个span设置block,。

      这主要用到了first-child和last-child伪类,和块状和行内元素的转换和hover的使用。

      还是看看我吧。

      

  • 相关阅读:
    hdu1209(Clock)
    [NodeJS]使用Node.js写一个简单的在线聊天室
    UVa 11168 Airport , 凸包
    【数据结构与算法】(二) c 语言链表的简单操作
    Struts简单介绍
    bzoj3931【CQOI2015】网络吞吐量
    python爬虫解决百度贴吧登陆验证码问题
    TNS-01251: Cannot set trace/log directory under ADR
    Oracle 监听器日志文件过大导致监听异常
    RHEL7
  • 原文地址:https://www.cnblogs.com/hopeelephant/p/6015528.html
Copyright © 2011-2022 走看看