ホームページ > ウェブフロントエンド > CSSチュートリアル > CSSで立体的なナビゲーションバーを作成する実装方法の紹介

CSSで立体的なナビゲーションバーを作成する実装方法の紹介

黄舟
リリース: 2017-10-17 10:29:33
オリジナル
1846 人が閲覧しました

この記事では、CSS を使用して 3 次元ナビゲーション バーを作成するための関連情報を主に紹介します。必要な方は、

css で作成された 3 次元ナビゲーション バーを参照してください。具体的な実装コードは次のとおりです。

<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CSS制作立体导航</title>
        <link rel="stylesheet" href="http://www.w3cplus.com/demo/css3/base.css">
        <style>
            body{
              background: #ebebeb;
            }
            .nav{
              width:560px;
              height: 50px;
              font:bold 0/50px Arial;
              text-align:center;
              margin:40px auto 0;
              background: #f65f57;
             /*制作导航圆角*/
              border-radius: 8px;
             /*制作导航立体效果*/
              box-shadow: 0 7px 0 #ba4a45;
            }
            .nav a{
              display: inline-block;
              /* a元素的过渡属性:1、设置所有a标签过渡;2、过渡时间;3、速度曲线:以慢速开始的过渡效果 */
                -webkit-transition: all 0.2s ease-in;/* Safari 和 Chrome */
                -moz-transition: all 0.2s ease-in;/* Firefox */
               -o-transition: all 0.2s ease-in;/* Opera */
               -ms-transition: all 0.2s ease-in;/* IE 9 */
               transition: all 0.2s ease-in;
            }
            .nav a:hover{
                /* 鼠标移上时的效果;定义2D旋转10度 */
              -webkit-transform:rotate(10deg);
              -moz-transform:rotate(10deg);
              -o-transform:rotate(10deg);
              -ms-transform:rotate(10deg);
              transform:rotate(10deg);
            }
            .nav li{
              position:relative;
              display:inline-block;
              padding:0 16px;
              font-size: 14px;
              text-shadow:1px 2px 4px rgba(0,0,0,.5);
              list-style: none outside none;
            }
            /*制作导航分隔线效果*/
            .nav li::before,
            .nav li::after{
              content:"";
              position:absolute;
              top:14px;
              height: 25px;
              width: 1px;
            }
            .nav li::after{
              right: 0;
              /* 线性渐变 */
              background: -moz-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));
              background: -webkit-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));
              background: -o-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));
              background: -ms-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));
              background: linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));
            }
            .nav li::before{
              left: 0;
              background: -moz-linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);
              background: -webkit-linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);
              background: -o-linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);
              background: -ms-linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);
              background: linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);
            }
            /*删除导航第一个导航项左边的分隔线*/
            .nav li:first-child::before{
              background: none;
            }
            /*删除导航最后一个导航右边的分隔线*/
            .nav li:last-child::after{
              background: none;
            }
            .nav a,
            .nav a:hover{
              color:#fff;
              text-decoration: none;
            }
        </style>
    </head>
    <body>
        <ul class="nav">
        <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>
    </body>
</html>
ログイン後にコピー

レンダリング:

1.ボディ部分に順序のないリストを使用します

2.ホバー 効果。マウスを動かしたとき以上。

(2)::beforeと:beforeの違いについての質問

コロン (:) は CSS3 疑似クラスに使用され、二重コロン (::) は CSS3 疑似要素に使用されます。 。

CSS セレクターに関する w3c 仕様:

A pseudo-element は 2 つのコロン (::) とその後に続く疑似要素の名前で構成されます。

This :: notation は、区別を確立するために現在のドキュメントで導入されています。既存のスタイルシートとの互換性を保つために、ユーザーエージェントは、CSS レベル 1 および 2 で導入された以前の 1 コロン表記 (つまり、:first-line、:first -letter) も受け入れる必要があります。 , :before と :after) この互換性は、CSS レベル 3 で導入された新しい擬似要素には許可されません。

簡単に訳すと、擬似要素は二重コロンと擬似要素の名前で構成されます。二重コロンは、疑似クラスと疑似要素を区別するために現在の仕様で導入されました。ただし、ブラウザは、CSS3 で導入された新しい疑似要素をサポートする一方で、first-line、:first-letter、:before、:after などの既存の古い疑似要素の記述方法を同時にサポートする必要があります。単一コロンの記述はサポートされなくなりました。

これで、タイトルの質問に完全に答えることができます。:before など、CSS2 より前に存在した疑似要素については、単一コロンと二重コロン::before は同じ効果を持ちます。

したがって、Webkit、Firefox、Operaなどのブラウザとの互換性のみが必要な場合は、疑似要素にダブルコロンの記述方法を使用することをお勧めします。IEブラウザとの互換性が必要な場合は、使用する方が安全です。 CSS2のシングルコロンの書き方。

概要

以上がCSSで立体的なナビゲーションバーを作成する実装方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート