私のサイトには、ナビゲーション バー用の ul (リンク付き) を含むヘッダーがあります。
私のページの 1 つに、画像ギャラリーの ul があります。そのためのテンプレートは次の Web サイトからのものです: http://www.thecssninja.com/demo/futurebox/v3/
画像ギャラリーは、私が望んでいることを実行します。クリックするとページ上に拡大画像が開き (オーバーレイ)、拡大画像は中央に配置され、画面上の任意の場所をクリックすると閉じます。問題は、ul がナビゲーション バーを台無しにすることです。どうすれば修正できますか?ナビゲーション バーには既に ul クラスがあります。
関連する CSS は次のとおりです。
ul li{
display: inline-block;
float: left;
list-style: none;
margin:0.3em;
border:0.1em solid black;
-webkit-border-radius:0.25em;
-moz-border-radius:0.25em;
border-radius:0.25em;
}
ul li:hover { border:0.1em solid red; }
ul li img, ul li label {
display: block;
cursor: pointer;
}
ul li input { display: none; }
ul li input:checked + .overlay { display: table; }
.overlay{
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
display: none;
z-index: 999;
background: rgb(0,0,0);
background: rgba(0,0,0,0.7);}
.overlay label
{
display: table-cell;
vertical-align: middle;
text-align: center;
}
.overlay img,
.overlay iframe
{
display: inline;
border:0.25em solid white;
-webkit-border-radius:0.25em;
-moz-border-radius:0.25em;
border-radius:0.25em;
}
HTMLは次のとおりです。
<div class="text2col">
<h2>Photo gallery</h2>
<ul>
<li>
<label for="futurebox01"><img src="http://www.thecssninja.com/demo/futurebox/gr_ninja-attack_med.gif" width="100" height="102" alt="The CSS Ninja" /></label>
<input type="radio" id="futurebox01" name="gallery" />
<div class="overlay">
<label for="close" title="Close futurebox"><img src="http://www.thecssninja.com/demo/futurebox/gr_cssninja_lrg.png" alt="The Css Ninja" width="469" height="500" /></label>
</div>
</li>
<li>
<label for="futurebox02"><img src="http://www.thecssninja.com/demo/futurebox/gr_ninja-attack_med.gif" width="100" height="102" alt="The CSS Ninja" /></label>
<input type="radio" id="futurebox02" name="gallery" />
<div class="overlay">
<label for="close" title="Close futurebox"><img src="http://www.thecssninja.com/demo/futurebox/gr_cssninja_lrg2.png" alt="The Css Ninja" width="469" height="500" /></label>
</div>
</li>
<li>
<label for="futurebox03"><img src="http://www.thecssninja.com/demo/futurebox/gr_ninja-attack_med.gif" width="100" height="102" alt="The CSS Ninja" /></label>
<input type="radio" id="futurebox03" name="gallery" />
<div class="overlay">
<label for="close" title="Close futurebox"><img src="http://www.thecssninja.com/demo/futurebox/gr_cssninja_lrg3.png" alt="The Css Ninja" width="469" height="500" /></label>
</div>
</li>
<li>
<label for="futurebox04"><img src="http://www.thecssninja.com/demo/futurebox/gr_ninja-attack_med.gif" width="100" height="102" alt="The CSS Ninja" /></label>
<input type="radio" id="futurebox04" name="gallery" />
<div class="overlay">
<label for="close" title="Close futurebox"><img src="http://www.thecssninja.com/demo/futurebox/gr_cssninja_lrg4.png" alt="The Css Ninja" width="469" height="500" /></label>
</div>
</li>
... (more li's)...
</ul>
<div class="clear"> </div>
<input type="radio" id="close" name="gallery" />
ul
また、すべてを変更して、それを Web ページのクラスに追加することにより、画像ギャラリーの ul クラスを追加しようとしましたul.futurebox
が、ナビゲーション バーが通常に戻りましたが、オーバーレイ画像 (オーバーレイありますが、画像はページの左上に移動します)。
問題 (私が思うに) は、オーバーレイに隣接する兄弟コネクタがあることです。ul li input:checked + .overlay { display: table; }
つまり、画像ギャラリーのクラスを追加した後です。または... まったく別の問題かもしれませんが、よくわかりません。