2017-03-13 2 views
1

私はボタンが非選択の状態では単純なデコレーションされていないリンクのように見えるようにしようとしています。境界に左の行を追加するためのSCSS

ユーザーが「アクティブ」というクラスを適用したいときにクリックします。

アクティブ状態では、ボタンの左の枠線が青色になります。ここで

は、私は私のSCSSを持っている方法ですが、それは働いていない:

.case-nav-link { 
    display: block; 
    min-width: 200px; 
    font-size:16px; 
    border:1px solid gray; 
    margin:10px; 
    padding:15px 10px; 
    border-left:solid 6px transparent; 
    &.active { 
    border-left:solid 6px blue; 
    } 
} 
+0

クリックイベントにクラスを追加するためにjQueryのようなものを使用する必要があると思います//jsfiddle.net/Justastudent/bk5dop53/)は既にあります。何が効いていないのですか? –

答えて

1

あなたはクラスがクリックで追加したい場合は、場合<button type="button">または<span>を使用し、この目的のために<a>を使用しないでくださいコードの読み込み時に追加します。 :このfiddle

<a href="#0" class="case-nav-link active">something</a> 

.case-nav-link { 
    display: block; 
    min-width: 200px; 
    font-size: 16px; 
    border: 1px solid gray; 
    margin: 10px; 
    padding: 15px 10px; 
    border-left: 6px solid transparent; 
    box-sizing: border-box; 
    &.active { 
    border-left: 6px solid red; 
    } 
} 
+0

Dejanありがとうございますが、私は実際には、 "アクティブ"の追加クラスを持つ要素を装飾しようとしているので、ユーザーがそのページにある間、彼らは左のborder.Soを参照してください。Users cnak2

+0

@ cnak2ユーザーが他の 'case-nav-link'要素をクリックした場合、クラスを削除しますか? –

0

をチェック私はあなたのマークアップは、[作業罰金](httpsに思えるあなたは

$(document).ready(function() { 
 
    $('.case-nav-link').on("click", function(e) { 
 
    e.preventDefault(); 
 
    $(this).addClass('active'); 
 
    
 
    }) 
 

 
})
.case-nav-link { 
 
    display: block; 
 
    min-width: 200px; 
 
    font-size:16px; 
 
    border:1px solid gray; 
 
    margin:10px; 
 
    padding:15px 10px; 
 
    border-left:solid 6px transparent; 
 
    
 
} 
 

 
.active { 
 
    border-left:solid 6px blue; 
 
} 
 
    
 
    
 
    /* added for testing */ 
 
    
 
    .container {width:500px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"> 
 
<a class="case-nav-link" >Link</a> 
 
</div>

関連する問題