我有一个图像,我创建了一个叠加,但我无法弄清楚如何使高度响应。我要么必须以像素定义它,要么它不起作用。我希望能够相应地调整高度和宽度,保持相同的图像宽高比。这是我的HTML:
<ul class="img-list">
<li>
<a href="http://nataliemac.com"><br>
<img class="imgrd" src="http://127.0.0.1:8080/wordpress/wp-content/uploads/2016/03/PIC_6436-300x199.jpg" width="900" height="597" class="alignnone size-medium wp-image-189"><br>
<span class="text-content"><span>Place Name</span></span><br>
</a>
</li>
<p>
...
</p>
我的CSS
ul.img-list {
list-style-type: none;
margin: 0;
padding: 0;
text-align: center;
}
ul.img-list li {
display: inline-block;
margin: 0 1em 1em 0;
position: relative;
width: 100%;
height: 100%;
}
span.text-content span {
display: inline-block;
text-align: center;
vertical-align: middle;
}
ul.img-list li:hover span.text-content {
opacity: 1;
}
span.text-content {
display: inline-block;
background: rgba(0,0,0,0.5);
color: white;
cursor: pointer;
display: table;
left: 0;
position: absolute;
top: 25px;
width: 100%;
height: 100%;
border: 5px solid #fff;
border-radius: 10px 125px;
opacity: 0;
-webkit-transition: opacity 500ms;
-moz-transition: opacity 500ms;
-o-transition: opacity 500ms;
transition: opacity 500ms;
}
img.imgrd {
border-radius: 10px 125px;
}
非常感谢帮助!
答案 0 :(得分:0)
试试:
ul.img-list li {
display: inline-block;
margin: 0 1em 1em 0;
position: relative;
width: 100%;
height: auto;
}
答案 1 :(得分:0)
或者,下来并弄脏并使用jquery抓取图像的高度,例如:
var imgheight = $('.imgrd').height();
$('.text-content').height(imgheight);
如果任何CSS方法适合您的使用,我会避免这种情况:)
答案 2 :(得分:0)
您希望将li span作为表格单元格,以便在叠加层中间正确获取文本:
span.text-content span {
display: table-cell;
text-align: center;
vertical-align: middle;
}
然后,您需要使IMG响应。现在它不是,所以叠加是图像的100%宽度和高度,但是当容器收缩时图像不会改变。所以:
img.imgrd {
border-radius: 10px 125px;
width: 100%;
max-width: 100%;
height: auto;
}
之后,您有一些<br>
标签会破坏布局...所以删除它们。并更新你的span.text-content以确保它从图像的顶部开始(0px而不是25px),并设置box-sizing属性以适应5px边框:
span.text-content {
display: inline-block;
background: rgba(0,0,0,0.5);
color: white;
cursor: pointer;
display: table;
left: 0;
position: absolute;
top: 0;
width: 100%;
height: 100%;
border: 5px solid #fff;
border-radius: 10px 125px;
opacity: 0;
-webkit-transition: opacity 500ms;
-moz-transition: opacity 500ms;
-o-transition: opacity 500ms;
transition: opacity 500ms;
box-sizing: border-box;
}
请在此处查看JSFiddle: