过去几天我试图将一个按钮放在液体图像上。到目前为止,这个职位是固定不变的。相关的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;
}
在鼠标悬停时,第二张图像以及一个按钮应居中浮动在第一张图像的顶部。问题是如果视口更改,则最近版本不再起作用且按钮不居中。以下关于CSS-tricks的文章有一个很有希望的解决方案:
该演示工作正常:
但它利用了内联块元素,这使得难以对图像进行分层并在其上显示最终的居中按钮 - 当设置display:inline-block属性时,元素会相互显示。还有一个问题是,与我的HTML相比,该演示将子对象与父对象对齐。
有没有办法将上述技术应用于我的问题,或者是否有更好的适应方法?最好的问候拉尔夫
答案 0 :(得分:2)
如果我理解你,我认为你几乎就在那里。
<a>
必须为position: relative;
<span>
必须为position: absolute;
如果您设置了特定宽度,请在<span>
上,然后应用:
width: 100px;
height: 100px;
top: 50%;
left: 50%;
margin-top: -50px /* Half of the height */
margin-left: -50px; /* Half of the width */
http://codepen.io/anon/pen/xjcCf
这是否解决了您尝试做的事情?
答案 1 :(得分:0)
嗨,这就像是
HTML
<div>
<h1><span>button</span></h1>
<img src="imageSample.jpg" alt="" />
</div>
CSS
div {
position:relative;
width:100%;
}
div img {
max-width:100%;
width:100%;
}
div h1 {
width:100px;
margin:auto;
}
div h1 span {
position:absolute;
z-index:999;
top:200px;
padding:5px;
background-color:#fff;
}
工作demo
注意:滚动小提琴,以便您可以看到效果