Saetl.net

Simple And Easy TempLate

Making a CSS3 Animated Menuの使い方

  1. 下記ページの「DOWNLOAD」よりファイル1式をダウンロード。
  2. ダウンロードしたファイルを任意の場所にコピー。
    ファイル構成
  3. 動作させるファイル(サンプルではindex.html)にコードを記述。
    パスは上記ファイル構成の場合なので環境にあわせて変更>
    ・head部分にcssファイルを読み込ませるためのコードを記述。
    <head>
    <!--ダウンロードしたファイル-->
    <link rel="stylesheet" type="text/css" href="css/Making a CSS3 Animated Menu.css" />
    </head> 
    

    サンプルのcssコード(サンプルのcssは改変しています)

    /*ページ設定部分(style.cssなどで設定していれば削除する)*/
    body {
    	margin: 0;
    	padding: 0;
    	background: #555;
    }
    #container {
    	width: 700px;
    	margin: 50px auto;
    }
    /*ここまでページ設定部分*/
    
    
    /*ここからMaking a CSS3 Animated Menuの設定*/
    .fancyNav {
    	/* Affects the UL element */
    	overflow: hidden;
    	display: inline-block;
    }
    .fancyNav li {
    	/* Specifying a fallback color and we define CSS3 gradients for the major browsers: */
    	
    	background-color: #f0f0f0;
    	background-image: -webkit-gradient(linear, left top, left bottom, from(#fefefe), color-stop(0.5, #f0f0f0), color-stop(0.51, #e6e6e6));
    	background-image: -moz-linear-gradient(#fefefe 0%, #f0f0f0 50%, #e6e6e6 51%);
    	background-image: -o-linear-gradient(#fefefe 0%, #f0f0f0 50%, #e6e6e6 51%);
    	background-image: -ms-linear-gradient(#fefefe 0%, #f0f0f0 50%, #e6e6e6 51%);
    	background-image: linear-gradient(#fefefe 0%, #f0f0f0 50%, #e6e6e6 51%);
    	border-right: 1px solid rgba(9, 9, 9, 0.125);
    	/* Adding a 1px inset highlight for a more polished efect: */
    	
    	box-shadow: 1px -1px 0 rgba(255, 255, 255, 0.6) inset;
    	-moz-box-shadow: 1px -1px 0 rgba(255, 255, 255, 0.6) inset;
    	-webkit-box-shadow: 1px -1px 0 rgba(255, 255, 255, 0.6) inset;
    	position: relative;
    	float: left;
    	list-style: none;
    }
    .fancyNav li:after {
    	/* This creates a pseudo element inslide each LI */	
    	
    	content: '.';
    	text-indent: -9999px;
    	overflow: hidden;
    	position: absolute;
    	width: 100%;
    	height: 100%;
    	top: 0;
    	left: 0;
    	z-index: 1;
    	opacity: 0;
    	/* Gradients! */
    	
    	background-image: -webkit-gradient(linear, left top, right top, from(rgba(168,168,168,0.5)), color-stop(0.5, rgba(168,168,168,0)), to(rgba(168,168,168,0.5)));
    	background-image: -moz-linear-gradient(left, rgba(168,168,168,0.5), rgba(168,168,168,0) 50%, rgba(168,168,168,0.5));
    	background-image: -o-linear-gradient(left, rgba(168,168,168,0.5), rgba(168,168,168,0) 50%, rgba(168,168,168,0.5));
    	background-image: -ms-linear-gradient(left, rgba(168,168,168,0.5), rgba(168,168,168,0) 50%, rgba(168,168,168,0.5));
    	background-image: linear-gradient(left, rgba(168,168,168,0.5), rgba(168,168,168,0) 50%, rgba(168,168,168,0.5));
    	/* Creating borders with box-shadow. Useful, as they don't affect the size of the element. */
    	
    	box-shadow: -1px 0 0 #a3a3a3, -2px 0 0 #fff, 1px 0 0 #a3a3a3, 2px 0 0 #fff;
    	-moz-box-shadow: -1px 0 0 #a3a3a3, -2px 0 0 #fff, 1px 0 0 #a3a3a3, 2px 0 0 #fff;
    	-webkit-box-shadow: -1px 0 0 #a3a3a3, -2px 0 0 #fff, 1px 0 0 #a3a3a3, 2px 0 0 #fff;
    	/* This will create a smooth transition for the opacity property */
    	
    	-moz-transition: 0.25s all;
    	-webkit-transition: 0.25s all;
    	-o-transition: 0.25s all;
    	transition: 0.25s all;
    }
    /* Treating the first LI and li:after elements separately */
    
    .fancyNav li:first-child {
    	border-radius: 4px 0 0 4px;
    }
    .fancyNav li:first-child:after, .fancyNav li.selected:first-child:after {
    	box-shadow: 1px 0 0 #a3a3a3, 2px 0 0 #fff;
    	-moz-box-shadow: 1px 0 0 #a3a3a3, 2px 0 0 #fff;
    	-webkit-box-shadow: 1px 0 0 #a3a3a3, 2px 0 0 #fff;
    	border-radius: 4px 0 0 4px;
    }
    .fancyNav li:last-child {
    	border-radius: 0 4px 4px 0;
    }
    /* Treating the last LI and li:after elements separately */
    
    .fancyNav li:last-child:after, .fancyNav li.selected:last-child:after {
    	box-shadow: -1px 0 0 #a3a3a3, -2px 0 0 #fff;
    	-moz-box-shadow: -1px 0 0 #a3a3a3, -2px 0 0 #fff;
    	-webkit-box-shadow: -1px 0 0 #a3a3a3, -2px 0 0 #fff;
    	border-radius: 0 4px 4px 0;
    }
    .fancyNav li:hover:after, .fancyNav li.selected:after, .fancyNav li:target:after {
    	/* This property triggers the CSS3 transition */
    	opacity: 1;
    }
    .fancyNav:hover li.selected:after, .fancyNav:hover li:target:after {
    	/* Hides the targeted li when we are hovering on the UL */
    	opacity: 0;
    }
    .fancyNav li.selected:hover:after, .fancyNav li:target:hover:after {
    	opacity: 1 !important;
    }
    /* Styling the anchor elements */
    
    .fancyNav li a {
    	color: #5d5d5d;
    	display: inline-block;
    	font: 20px/1 Lobster, Arial, sans-serif;
    	padding: 12px 35px 14px;
    	position: relative;
    	text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.6);
    	z-index: 2;
    	text-decoration: none !important;
    	white-space: nowrap;
    }
    .fancyNav a.homeIcon {
    	background: url('../images/home.png') no-repeat center center;
    	display: block;
    	overflow: hidden;
    	padding-left: 12px;
    	padding-right: 12px;
    	text-indent: -9999px;
    	width: 16px;
    }
    
    ・<body></body>内にコードを記述
    <ul class="fancyNav">
        <li id="home"> <a href="#home" class="homeIcon"> Home </a> </li>
        <li id="news"> <a href="#news"> News </a> </li>
        <li id="about"> <a href="#about"> About us </a> </li>
        <li id="services"> <a href="#services"> Services </a> </li>
        <li id="contact"> <a href="#contact"> Contact us </a> </li>
      </ul>
    

    サンプルのhtmlコード

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="utf-8" />
    <title>Making a CSS3 Animated Menu</title>
    <link rel="stylesheet" type="text/css" href="css/Making a CSS3 Animated Menu.css" />
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Lobster" />
    </head>
    
    <body>
    <div id="container">
      <ul class="fancyNav">
        <li id="home"> <a href="#home" class="homeIcon"> Home </a> </li>
        <li id="news"> <a href="#news"> News </a> </li>
        <li id="about"> <a href="#about"> About us </a> </li>
        <li id="services"> <a href="#services"> Services </a> </li>
        <li id="contact"> <a href="#contact"> Contact us </a> </li>
      </ul>
    </div>
    <a href="http://saetl.net/csssample.html"> <span style="position:fixed; right:10px; top:10px; font-size:1em; color:#fff;">CSSサンプル集 - Saetl.net</span> </a>
    </body>
    </html>
    
  4. ファイル1式をサーバーにアップロードして設置完了。
    サンプル