ここ数日、流動的な画像の上にボタンを中央に配置しようとしました。これまでのところ、位置は固定されており、静的です。関連するHTML部分は次のようになります。
<ul class="moodlegrid sectionwrap">
<li>
<a class="ajax1" href="project1.html">
<img title="Project 1" src="img/projectblur.jpg" alt="Project 1" />
<img title="Project 1" src="img/project.jpg" alt="Project 1" />
<span class="openoverlay">Click</span>
</a>
</li>
</ul>
CSSは次のようになります。
.moodlegrid{
li{
a{
position: relative;
display:block;
width: 100%;
img:nth-child(1){
display:block;
}
img:nth-child(2){
display: none;
}
span{
display:none;
}
}
a:hover{
img:nth-child(2){
display: block;
position: absolute;
z-index: 100;
top:0;
left:0;
}
span{
display: block;
position: absolute;
text-align:center;
top: 37%;
left: 28%;
z-index:101;
@include border-radius(5px, 5px);
@include box-shadow(black 2px 2px 10px);
}
}
}
}
img{
width:100%;
max-width: 100%;
height:auto !important;
}
マウスオーバーすると、2番目の画像とボタンが最初の画像の中央に表示されます。問題は、ビューポートが変更された場合、最近のバージョンが機能しなくなり、ボタンが中央に配置されないことです。CSSトリックに関する次の記事には、有望な解決策がありました。
デモは正常に機能しました。
ただし、インラインブロック要素を使用しているため、画像を重ねて、その上に中央のボタンを最後に表示することは困難です。display:inline-blockプロパティが設定されている場合、要素は次々に表示されます。私のHTMLとは対照的に、デモが子オブジェクトを親に向けて整列させるという問題もあります。
上記の手法を私の問題に適用する方法はありますか、それとももっと適切なアプローチがありますか?よろしくラルフ