Heim  >  Artikel  >  Web-Frontend  >  Wie kann man mit CSS einen Prozessnavigationseffekt erzielen? Welche Methoden gibt es?

Wie kann man mit CSS einen Prozessnavigationseffekt erzielen? Welche Methoden gibt es?

王林
王林nach vorne
2020-03-07 10:40:263456Durchsuche

Wie kann man mit CSS einen Prozessnavigationseffekt erzielen? Welche Methoden gibt es?

Methode 1: Clipping verwenden (diese Methode wird vom IE nicht unterstützt)

Verwenden Sie clip-path: polygon(), um direkt ein Dreieck zu zeichnen berechnet werden muss, ist Sie können den ungefähren Prozentsatz zeichnen

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width">
        <style>
            .nav-box {
                display: flex;
                list-style: none;
                font-size: 14px;
            }
            .nav-box li {
                white-space: nowrap;
                color: #019fe9;
                background: #edf9ff;
                counter-increment: listCounter;
                clip-path: polygon(87% 0, 100% 50%, 87% 100%, 0 100%, 13% 50%, 0 0);
                line-height: 40px;
                padding: 0 25px;
                margin-right: -10px;
            }
            .nav-box li::before {
                content: counter(listCounter) "-";
            }
            .nav-box .active {
                color: #fcfefe;
                background: #009fe9;
            }
            .nav-box .active ~ li {
                color: #8e8e8e;
                background: #ebedf0;
            }
        </style>
    </head>
    <body>
        <!-- 容器 -->
        <ol class="nav-box">
            <li><a href="">规则说明</a></li>
            <li><a href="">参与活动</a></li>
            <li class="active" aria-current="true"><a href="">参与抽奖</a></li>
            <li><a href="">奖品发放</a></li>
            <li><a href="">查看结果</a></li>
        </ol>
    </body>
</html>

(empfohlene verwandte Tutorials: CSS-Einführungs-Tutorial)

Methode 2: Luxation verwenden

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width">
       <style scoped>
            .nav-box {
                display: flex;
                list-style: none;
                font-size: 14px;
            }
            .nav-box li {
                white-space: nowrap;
                color: #019fe9;
                padding: 0 15px 0 25px;
                line-height: 40px;
                margin-left: 3px;
                position: relative;
                z-index: 99;
            }
            .nav-box li:first-child{
                background: #edf9ff;
                margin-right: 7px;
            }
            .nav-box .active:first-child{
                background: #019fe9;
            }
            .nav-box li:first-child::before,
            .nav-box li:first-child::after{
                left: 7px;
            }
            .nav-box li::before,
            .nav-box li::after {
                content: "";
                position: absolute;
                left: 0;
                height: 50%;
                width: 100%;
                background: #edf9ff;
                z-index: -1;
            }
            .nav-box li::before {
                top: 0;
                transform: skew(30deg);
            }
            .nav-box li::after {
                bottom: 0;
                transform: skew(-30deg);
            }
            .nav-box .active {
                color: #d7effb;
            }
            .nav-box .active::before,
            .nav-box .active::after {
                background: #009fe9;
            }
            .active ~ li {
                color: #909091;
            }
            .active ~ li::before,
            .active ~ li::after {
                background: #ebedf0;
            }
        </style>
    </head>
    <body>
        <!-- 容器 -->
        <ol class="nav-box">
            <li class="active">1-规则说明</li>
            <li>2-参与活动</li>
            <li>3-参与抽奖</li>
            <li>4-奖品发放</li>
            <li>5-参与结果</li>
        </ol>
    </body>
</html>

Methode 3: Rahmen Dreiecke erstellen

Verwenden Sie den Rahmen, um vordere und hintere Dreiecke zu generieren

Der Nachteil besteht darin, dass der Index selbst definiert werden muss und der CSS-Zähler nicht ohne Tags verwendet werden kann

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <style>
    .nav-box{
        height:40px;
        line-height:40px;
        list-style: none;
        padding:0;
        display:flex;
        font-size:14px;
        overflow: hidden;
    }
    .nav-box li{
        padding:0 10px 0 10px;
        margin-right: 18px;
        white-space: nowrap;
        position:relative;
        color:#019fe9;
        background:#edf9ff ;
    }
    /* 三角 */
    .nav-box li:before,.nav-box li:after{
        content:&#39;&#39;;
        position:absolute;
        width: 0;
        height: 0;
    }
    .nav-box li:before{
        right: -16px;
        border: solid transparent;
        border-width: 20px 0 20px 16px;
        border-left-color:#edf9ff;
        z-index:2;
    }
    /* 白线 */
    .nav-box li:after{
        top: -3px;
        left: -18px;
        border: solid #edf9ff;
        border-width: 23px 0 23px 18px;
        border-left-color: transparent;
        z-index: 1;
    }
    .nav-box .active{
        color: #fff;
        background:#009fe9;
    }
    .nav-box .active ~ li{
        color:#8e8e8e;
        background:#ebedf0;
    }
    .nav-box .active:before{
        border-left-color:#009fe9;
    }
    .nav-box .active:after{
        border-color: #009fe9;
        border-left-color: transparent;
    }
    .nav-box .active ~ li:before{
        border-left-color:#ebedf0;
    } 
    .nav-box .active ~ li:after{
        border-color: #ebedf0;
        border-left-color: transparent;
    }
  </style>
</head>
<body>
    <ol class="nav-box">
        <li>1-规则说明</li>
        <li>2-参与活动</li>
        <li class="active">3-参与抽奖</li>
        <li>4-奖品发放</li>
        <li>5-参与结果</li>
    </ol>
</body>
</html>

Weitere programmierbezogene Tutorials finden Sie in der Rubrik Einführung in die Programmierung auf der chinesischen PHP-Website!

Das obige ist der detaillierte Inhalt vonWie kann man mit CSS einen Prozessnavigationseffekt erzielen? Welche Methoden gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen