>  기사  >  웹 프론트엔드  >  CSS로 3차원 네비게이션 바를 만드는 방법

CSS로 3차원 네비게이션 바를 만드는 방법

一个新手
一个新手원래의
2017-10-16 10:57:101603검색


<!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

요약:

1 본문 부분에 순서가 지정되지 않은 목록을 사용하세요

2.

  마우스를 위로 움직이는 효과 언제 .

  (2) 질문

::before와 :before의 차이점

                                                   아마도 질문을 찾을 수 없다고 확신할 수 있습니까?

   CSS 선택기에 대한 w3c 사양:

의사 요소는 두 개의 콜론(::)과 그 뒤에 의사 요소의 이름으로 구성됩니다.

::) followed by the name of the pseudo-element.

This :: notation is introduced by the current document in order to establish a discrimination between pseudo-classes and pseudo-elements. For compatibility with existing style sheets, user agents must also accept the previous one-colon notation for pseudo-elements introduced in CSS levels 1 and 2 (namely, :first-line:first-letter:before and :after:: code> 표기법은 의사 클래스와 의사 요소를 구별하기 위해 현재 문서에서 도입되었습니다. 기존 스타일 시트와의 호환성을 위해 사용자 에이전트는 CSS 수준에 도입된 의사 요소에 대해 이전의 단일 콜론 표기법도 허용해야 합니다. 1과 2(즉, <code>:first-line, :first-letter, :before:after) . CSS 레벨 3에 도입된 새로운 의사 요소에는 이 호환성이 허용되지 않습니다.

  간단히 번역하면 의사 요소는 이중 콜론과 의사 요소의 이름으로 구성됩니다. 현재 사양에서는 의사 클래스와 의사 요소를 구별하기 위해 이중 콜론이 도입되었습니다. 그러나 브라우저는 first-line, :first-letter, :before, :after 등과 같은 기존의 기존 의사 요소 작성 방법을 동시에 지원해야 하며, CSS3에 도입된 새로운 의사 요소는 단일 콜론을 작성하는 이전 방식은 더 이상 지원되지 않습니다.   그러면 이제 제목의 질문에 완전히 답할 수 있습니다. :before와 같이 CSS2 이전에 존재했던 의사 요소의 경우 단일 콜론과 이중 콜론::before

은 동일한 효과를 갖습니다

.

   따라서 귀하의 웹사이트

가 webkit, firefox, Opera 및 기타 브라우저와만 호환되어야 한다면, IE 브라우저와 호환되어야 하는 경우에는 의사 요소에 이중 콜론 작성 방법을 사용하는 것이 좋습니다. CSS2 단일 콜론 작성 방법을 사용하는 것이 좋습니다.

위 내용은 CSS로 3차원 네비게이션 바를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.