2017-08-09 13 views
0

私のページの本文には、ユーザがそれ以上アクティブでない場合、左から来るスライドトレイのナビがありますdivカスタムクローズカーソルのみを表示するように、私はそれを動作させるのに苦労しています。使用しようとしています:カスタムカーソルのためのnot()が動作していません

.display-cs :not(#cs-index) { 
    cursor: pointer; 
    //url('../img/icons/close-cross.png'), default; 
} 

https://jsfiddle.net/38gdp4pb/1/

私はちょうどカーソルに戻す試みた:無駄にポインタ、私が間違ってやっている任意のアイデアを?


更新

私の体は、クラス.display-csを持っており、#cs-indexは、ページ上のメニューです。私は、カスタムカーソルがページに表示されますが、したくない#cs-index

+0

セレクタからスペースを削除します: '.display -cs:not(#cs-index) ' – LuudJacobs

+1

これは動作しているようですが、あなたの問題は何ですか?あなたのnavの中に別のdivがある場合、あなたのcs-index divが – Axnyff

+0

ではない間にカーソルポインタを持っています_ "#cs-indexの上にカーソルを置いたときにカーソルを表示したくありません" _ - 明示的に指定する必要があります'#cs-index'の_different_カーソルは、' cursor'が継承するプロパティの1つであるためです。ルールがその要素を選択したが、その親からカーソルを継承しているため、 '#cs-index'はカーソルが適用されていないので、':not 'はここで少し助けてくれません。 – CBroe

答えて

3

EDITED ANSWER OPのコメントの後内:

あなたは単に別々のルールでそれを上書きする可能性が

.display-cs { 
    cursor: pointer; 
    //url('../img/icons/close-cross.png'), default; 
} 

#cs-index { 
    padding: 10rem; 
    background: red; 
    color: #fff; 
    cursor: default; 
} 

https://jsfiddle.net/dgroucag/

+0

#cs-index上にカーソルを置いたときにカーソルを表示したくないのですが、これは可能ですか? – Liam

+0

与えられたHTMLコードではあまり意味がありませんが、 '#cs-index'はそこにある唯一の' .display-cs'要素の子です。そのHTMLでは、 '.display-cs'だけで始める必要があります。 – CBroe

+0

フィドルを見て、 '#cs-index'は**' ** .display-cs'で** –

2

:not()を使用して、特定の子ではなく親を選択することはできません。代わりに、子要素のデフォルトポインタを取得するための特定のルールを定義する必要があります。

.display-cs { 
 
    cursor: pointer; 
 
    border: 1px solid black; 
 
    padding: 10px; 
 
} 
 
#cs-index { 
 
    cursor: initial; 
 
} 
 
#cs-index { 
 
    padding: 5px; 
 
    background: red; 
 
    color: #fff; 
 
}
<div class="display-cs"> 
 
    <div class="nav" id="cs-index">This is my nav</div> 
 
    asdasd 
 
</div>

+0

私は質問を更新しました - 私はそれを十分にはっきりと説明しませんでした。 – Liam

+0

同じ答えが適用されます。 –

0

あなたnotに必要はありません、この1つだけを試してみてください#cs-index{cursor:auto;}

.display-cs { 
 
    padding: 20px; 
 
    cursor: pointer; 
 
    background-color: blue; 
 
    color: #FFF; 
 
} 
 

 
#cs-index { 
 
    background-color: red; 
 
    cursor: auto; 
 
    padding: 40px; 
 
}
<div class="display-cs"> 
 
    <div class="nav" id="cs-index">cs-index</div> 
 
    display-cs 
 
</div>

+0

私は質問を更新しました - 私はそれを十分にはっきり説明しませんでした。 – Liam

+0

@Liam、赤色は '#cs-index'、青色は' display-cs'です。 – Ehsan

+0

@Liam、私の答えをチェック! – Ehsan

0

とそれをオーバーラップ:

.display-cs { 
 
    cursor: pointer; 
 
} 
 

 
#cs-index { 
 
padding:10rem; 
 
background:red; 
 
color:#fff; 
 
cursor:initial; 
 
}
<div class="display-cs"> 
 

 
<div class="nav" id="cs-index">This is my nav</div> 
 
asdasd 
 
</div>

0

CSS:

.display-cs *:not(#cs-index) { 
    cursor: pointer; 
} 
#cs-index { 
    padding:10rem; 
    background:red; 
    color:#fff; 
    cursor: default; 
} 

HTML:

<div class="display-cs"> 
    <div class="nav" id="cs-index">This is my nav</div> 
    <div> 
     asd1 
    </div> 
    <div> 
     asd2 
    </div> 
</div> 

これは、ID #cs-index

を持っていない任意の要素ブロックの上にポインタカーソルを置きます
関連する問題