【发布时间】:2013-04-18 19:47:30
【问题描述】:
当有人将鼠标悬停在其中包含 img 元素的按钮上时,它应该具有红色背景色。
<button class="btn-img">
<img src="http://upload.wikimedia.org/wikipedia/en/thumb/2/2a/Burj_Al_Arab,_Dubai,_by_Joi_Ito_Dec2007.jpg/220px-Burj_Al_Arab,_Dubai,_by_Joi_Ito_Dec2007.jpg" alt="Dubai" />
</button>
.btn-img {
display: block;
width: 160px;
height: 120px;
margin: 0;
padding: 0;
border: 0;
cursor: pointer;
}
.btn-img:hover {
background-color: red;
}
.btn-img:hover img {
background-color: blue;
}
这可能吗?是不是因为button元素的原因,因为如果一个div里面的child有背景色,而父背景色改变了,基本上就覆盖了children的背景色。
【问题讨论】:
-
我想了解您为什么要尝试在图像上设置背景颜色。这是一个图像,而不是一个块容器。即使您确实将背景颜色设置为蓝色,图像的实际像素也会将其覆盖。
-
@Axel 我知道,但是如果按钮(这是图像的父级)具有背景样式,它应该覆盖图像的实际像素?
-
@onlineracoon 子元素 (img) 被绘制在父元素上。这就是 CSS 堆叠模型的工作原理。
-
您是否要更改图像的色调?还是简单地更改图像后面呈现的背景颜色?
-
@MarcAudet 图片是缩略图,所以当你点击它们时,你会得到全屏版本。当您将鼠标悬停在它们上时,它们应该看起来更暗(背景颜色:按钮上的 rgba(0, 0, 0, .13) 是我的想法使这成为可能)
标签: html css image button background