5

これに似た要素があると仮定します

<div id="navigation">
   <div class="nav-block-1">....</div>
   <div class="nav-block-2">....</div>
   This is the offer
   <a href="#"> Report </a>
</div>

ここで、textelementsを含むすべての要素を非表示にしたいのですが、を非表示にしたいnav-block-2ので、これを行う方法はありますか?CSS否定を使用するようなものですか?

使ってみました

#navigation :not(.nav-block-2) {
   display:none;
}

しかし、これはnav-block-2内の要素さえも否定しているように見えますか?私はここで何か間違ったことをしていますか?何か案は?

4

3 に答える 3

3

多分あなたが望むものではないかもしれませんが、これが私がしたいことです。

#navigation * {
    display:none;
}
#navigation a {
    display:inline;
}

編集:あなたの質問のコメントにあるように、テキストの周りにタグがない場合、 :not を実行するのは難しいと思います。

于 2012-12-22T12:07:37.933 に答える
0

これを試して

#navigation div:not(.nav-block-2) {
   display:none;
}


<div id="navigation">
   <div class="nav-block-1">Div 1</div>
   <div class="nav-block-2">Div 2</div>
    This is the offer
   <a href="#"> Report </a>
</div>
于 2012-12-22T12:04:20.380 に答える
0

これを使って:

#navigation > *:not(.nav-block-2) {
   display:none;
}

ただし、単一のテキスト ノードを非表示にすることはできません。「これはオファーです」を段落または少なくとも<span>タグに配置して非表示にする必要があります。または、#navigation避けられない.nav-block-2.

于 2012-12-22T12:28:55.867 に答える