0

私の画像ギャラリーは、ロールオーバーすると正常に動作しますが、画像が拡大するセクションでは、ギャラリーの最初の画像が自動的にそこに表示されるようにしたいのですが、現時点では、画像にカーソルを合わせるまで空白のボックスが表示されます.

<!DOCTYPE html>
<html lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css.css"/>
<title>Welcome!</title>

</head>
<div id="wrapper">
<body>
<div id="header"> 
<div id ="logo">
<embed src="Media/Images/logo.svg" type="image/svg+xml" />
</div>

<div id="icons">
    <img src="Media/Images/EnvelopeIcon.png" alt="Envelope Icon" height="25" width="30">
    <p>M015734a@student.staffs.ac.uk</p>
    <div class="clear">     
    </div>
    <img src="Media/Images/PhoneIcon.png" alt="Envelope Icon" height="25" width="30" />
    <p> 07904921417</p>
    <div class="clear">     
    </div>
    <img src="Media/Images/HouseIcon.png" alt="Envelope Icon" height="25" width="30">
        <p>Stafford, UK</p>
    <div class="clear">     
    </div>              
<div class="clear">     
</div>
</div>
</div>

<nav>
<div id ="NavBar">
     <div id="Nav1">
     <div id="Triangle1"></div>
    <a href="E:/Program%20Files/Dropbox/Corsair%20Backup/Media%20For%20The%20Web/Assignment%20Part%202/Index.html"><h2>About Me</h2></a>
    </div>
    <div id="Nav2">
    <div id="Triangle2"></div>
    <a href="E:/Program%20Files/Dropbox/Corsair%20Backup/Media%20For%20The%20Web/Assignment%20Part%202/Education.html"><h2>Education</h2></a>
    </div>
    <div id="Nav3">
    <div id="Triangle3"></div>
    <a href="E:/Program%20Files/Dropbox/Corsair%20Backup/Media%20For%20The%20Web/Assignment%20Part%202/Portfolio.html"><h2>Portfolio</h2></a>
    </div>
    <div id="Nav4">
    <div id="Triangle4"></div>
    <a href="E:/Program%20Files/Dropbox/Corsair%20Backup/Media%20For%20The%20Web/Assignment%20Part%202/Interests.html"><h2>Interests</h2></a>
    </div>
    <div id="Nav5">
    <div id="Triangle5"></div>
    <a href="E:/Program%20Files/Dropbox/Corsair%20Backup/Media%20For%20The%20Web/Assignment%20Part%202/Contact.html"><h2>Contact Me</h2></a>
    </div>
</div>
</nav>
<article>
<section id = "content">
<h1>Portfolio Work</h1>
<div class="gallerycontainer">
<a class="thumbnail"><img src="Media/Images/Tardis.bmp" width="225px" height="125px" border="0" /><span><img src="Media/Images/Tardis.bmp" width="750px" height="450px"/><br />3DS Tardis Model.</span></a>
<br />
<a class="thumbnail"><img src="Media/Images/Main Station.png" width="225px" height="125px" border="0" /><span><img src="Media/Images/Main Station.png" width="750px" height="450px" /><br /></span></a>

<br />

<a class="thumbnail"><img src="Media/Images/Claymation1.JPG" width="225px" height="125px" border="0" /><span><img src="Media/Images/Claymation1.JPG" width="750px" height="450px"/><br />Sushi for dinner anyone?</span></a> 
<br/>

<a class="thumbnail"><img src="Media/Images/DSC_0245.jpg" width="175px" height="125px" border="0" /><span><img src="Media/Images/DSC_0245.jpg" width="500px" height="450px"/><br />Run wild with horses.</span></a>

<br />

<a class="thumbnail"><img src="Media/Images/DSC_0043 (3).JPG" width="225px" text-align="center" height="125px" border="0" /><span><img src="Media/Images/DSC_0043 (3).JPG" width="750px" height="450px"/><br />Run wild with horses.</span></a>

</div>
</section>
</section>
</article>
</div>
<footer>
</footer>
</body>
</html>


.gallerycontainer{
position: relative;
height: 250px;
/*Add a height attribute and set to largest image's height to prevent overlaying*/
}

.thumbnail img{
border: 1px solid white;
margin: 0 5px 5px 0;
}

.thumbnail:hover{
background-color: transparent;
}

.thumbnail span{ /*CSS for enlarged image*/
position: absolute;
background-color: lightyellow;
padding: 5px;
left: -1000px;
visibility: hidden;
color: black;
text-decoration: none;
}

.thumbnail span img{ /*CSS for enlarged image*/
padding: 2px;
}

.thumbnail:hover span{ /*CSS for enlarged image*/
background-color: #333;
visibility: visible;
top: 0;
left: 250px; /*position where enlarged image should offset horizontally */
z-index: 50;
}
4

1 に答える 1

0

最初の画像を非表示にするのではなく、低い z-index を指定して、他の画像がその上に浮かぶようにします。これは、画像が同じ寸法である場合にのみ機能します。

HTML

<div class="gallerycontainer">
    <a class="thumbnail"><img src="Media/Images/Tardis.bmp" width="225px" height="125px" border="0" /><span class="first"><img src="Media/Images/Tardis.bmp" width="750px" height="450px"/><br />3DS Tardis Model.</span></a>
<br />
<a class="thumbnail"><img src="Media/Images/Main Station.png" width="225px" height="125px" border="0" /><span><img src="Media/Images/Main Station.png" width="750px" height="450px" /><br /></span></a>

<br />

CSS

.thumbnail:hover span, .thumbnail span.first{ /*CSS for enlarged image*/
background-color: #FFF;
visibility: visible;
top: 0;
left: 250px; /*position where enlarged image should offset horizontally */
z-index: 50;
}

.thumbnail span.first
{
    z-index: 10 !important; /*Lower z-index for first one so others appear above it */
 }

アップデート

あなたのフィドルのコードから、これを実装する際に2つの重要なことを見逃しています:

  1. ここで 2 つのセレクターに注意してください (私の CSS コード スニペットの最初の行): .thumbnail:hover span, .thumbnail span.first. オリジナルのセレクターしかありません。-- これは、「ホバーされた」スパンと同じスタイルを「最初の」スパンに適用します
  2. 先頭の「.」のコードに欠落しています.thumbnail span.first-- これにより、「最初の」スパンの z-index が調整され、他のスパンがその上に表示されます。

更新 2

スパンには、最初の画像のテキストをマスクするための背景色が必要です。また、画像に透明度がある場合、背景色がなくても最初の画像が表示されます。更新フィドルはこれを示しています。

フィドルの例

于 2012-12-10T01:02:25.333 に答える