css - 使用伪选择器 :after 在图像上创建叠加层——不占用整个高度
问题描述
尝试使用 :after 在悬停时创建叠加效果,但它没有占据全部高度。
如果我给出 a:after 以像素为单位的固定高度,它将起作用。但我希望不要设置静态高度,以便将其应用于各种尺寸的图像。
提前致谢!
* {
margin: 0;
padding: 0;
}
.container {
width: 500px;
height: 500px;
}
a {
position: relative;
height: 100%;
width: 100%;
}
a:after {
content: '';
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background: rgba(0,0,0,0.4);
opacity: 0;
transition: all .4s;
-webkit-transition: all .4s;
}
a:hover:after {
opacity: 1;
}
<div class="container">
<a href="#">
<img src="https://vignette.wikia.nocookie.net/dragonballfanon/images/7/70/Random.png/revision/latest?cb=20161221030547">
</a>
</div>
解决方案
我删除width: 100%;
和添加默认情况下height: 100%
,标签有一个显示值,其中忽略和值,所以他们之前没有做任何事情。可能是您从一开始就想使用的。a
display: inline-block;
a
inline
width
height
display: inline-block;
* {
margin: 0;
padding: 0;
}
.container {
width: 500px;
height: 500px;
}
a {
position: relative;
display: inline-block;
}
a::after {
content: '';
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background: rgba(0,0,0,0.4);
opacity: 0;
transition: all .4s;
-webkit-transition: all .4s;
}
a:hover::after {
opacity: 1;
}
<div class="container">
<a href="#">
<img src="https://vignette.wikia.nocookie.net/dragonballfanon/images/7/70/Random.png/revision/latest?cb=20161221030547">
</a>
</div>
推荐阅读
- vuejs2 - Vue js 动态组件嵌套
- docker - 在 Docker 容器中部署 Spring Boot 应用程序而不自动启动 Tomcat
- c# - SQL Server 更新数据库的列名无效
- cocoa - NSMatrix 的 NSUserDefaults
- apache-flink - 为什么在使用 ProcessingTime 时,只有在我输入第二个事件后,CEP 才打印第一个事件?
- batch-file - 如何将一个文本文件传输到另一个文件?
- database - Windows 窗体保存到数据集但不保存到表
- sql-server - 如何在 SQL Server 2016 中设计版本控制表
- javascript - 如何停止从 div 的 ID 重定向到父 URL
- node.js - 使用回调返回未定义的 Firestore onWrite 触发器