这是我在Stack Overflow上的第一篇文章,但我已经在这里找到了多年的答案。这是我似乎无法找到的。
我想知道是否有办法只使用HTML和CSS来执行以下操作。
我有流畅的布局,我想保持图像流畅。我目前通过使用max-height:100%和max-width:100%属性来设置每个图像来填充它们各自的div。
悬停时,我希望图像有一个稍微透明的颜色叠加,并显示一些文字和一个按钮。
如果我定义了图像/ div宽度,我就能做到这一点,但是在保持图像的同时我无法弄清楚如何进行动态调整。
Here's a Fiddle of 4 images in a fluid layout. 任何帮助都会非常感激,我觉得我忽略了什么。
代码:
HTML
<body>
<div id="container">
<div class="span4 red">
<img src="http://img.thesun.co.uk/aidemitlum/archive/01500/SNE0125Q---_149991_1500286a.jpg">
</div>
<div class="span4 blue">
<img src="http://img.thesun.co.uk/aidemitlum/archive/01500/SNE0125Q---_149991_1500286a.jpg">
</div>
<div class="span4 green">
<img src="http://img.thesun.co.uk/aidemitlum/archive/01500/SNE0125Q---_149991_1500286a.jpg">
</div>
<div class="span4 purple">
<img src="http://img.thesun.co.uk/aidemitlum/archive/01500/SNE0125Q---_149991_1500286a.jpg">
</div>
</div>
</body>
CSS
body { margin:0;}
#container { width:100%; font-size:0;}
img { max-width:100%; max-height:100%;}
.span4 { width:25%; display:block;}
.red { background-color: red; float:left; overflow:hidden;}
.blue { background-color: blue; float:left; overflow:hidden;}
.green { background-color: green; float:left; overflow:hidden;}
.purple { background-color: purple; float:left; overflow:hidden;}
答案 0 :(得分:5)
<强> HTML 强>
<div class="span4 red">
<img src="http://img.thesun.co.uk/aidemitlum/archive/01500/SNE0125Q---_149991_1500286a.jpg">
<div class="overlay">
<span>Text text text</span>
<button>Button</button>
</div>
</div>
<强> CSS 强>
.span4 {
width:25%;
display:block;
position:relative; /*added*/
}
/*added*/
.overlay {
position:absolute;
top:0;
width:0;
width:100%;
height:100%;
background-color:rgba(0, 0, 0, 0.3);
display:none;
}
.red:hover .overlay {
display:block;
}
答案 1 :(得分:4)
尝试使用:after
伪选择器(note browser compatability)
.span4 {
width:25%;
display:block;
position: relative;
}
.span4:hover:after
{
content: '';
position: absolute;
top: 0; bottom: 0;
left: 0; right: 0;
}
.red:hover:after
{
background: RGBA(255, 0, 0, .3);
}
.blue:hover:after
{
background: RGBA(0, 0, 255, .3);
}
.green:hover:after
{
background: RGBA(0, 255, 0, .3);
}
.purple:hover:after
{
background: RGBA(230, 230, 250, .3);
}
idk虽然紫色的RGB值是什么:p所以玩它