私自身の教育のためのjavascriptゲームの作成に取り組んでいます。ゲームはいくつかのページを必要とします。私はそれを表示したいときに隠されている/隠されている隠されたdiv
を実装しています(offtopic:良いアイデアかどうかについてのアドバイス)。CSSの特異性の問題
すべてのdivをdisplay: none;
で非表示にしてから、特定のdivをdisplay:block;
で非表示にするCSSルールがあります。しかし、クラスの非表示の代わりに、それはすべてのdivを選択するための私のCSSのセレクタが適用されないルールの結果、クラスをオーバーライドしているようだ。私はちょうどこれを修正するために!important
プロパティを使用することができます知っているが、私は何を書いたが動作しない理由を理解したい。私はクラスが十分に特定のセレクターになると思っていました。ルールは隠れルールの後に来ることさえあります。
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" charset="utf-8">
</head>
<body>
<div id="game">
<div id="content">
<div id="viewport">
<div id="home_page" class="current_page">Home</div>
<div id="work_page">Work</div>
</div>
</div>
</div>
</body>
</html>
とCSS:
#content
{
background: #eef;
padding: 5px;
}
#viewport div
{
display:none;
}
.current_page
{
display:block;
//display:block !important; //One solution, but not preferred
}
魅力的な作品です! '#viewport div'> idのために' .current_page'です。 '#viewport div' <' #viewport .current_page'はより多くの重みを保持し、jquery.removeClass()/ jquery.addClass()を使って操作することができます私のメニューページの可視性。 –