使用transition样式属性制作图文混排,要求: (1)遮罩层位于图片上方,初始状态,遮罩高度为0,透明度为0,位于整个盒子的底部; (2)鼠标悬停到盒子上,遮罩从底部缓慢展开,直到高度为100%,后透明度为1; (3)鼠标离开盒子,遮罩缓慢下降,恢复原状。
时间: 2024-10-22 22:08:34 浏览: 22
CSS3九宫格图片悬停遮罩层特效
要创建一个图文混排的布局,并使用CSS `transition` 实现遮罩层的动态效果,可以这样设计:
首先,假设有一个包含图片和文本的HTML结构:
```html
<div class="container">
<img src="image.png" alt="Image">
<div class="mask"></div>
<p>图文内容...</p>
</div>
```
然后在CSS中定义初始样式以及过渡效果:
```css
.container {
position: relative; /* 确保定位效果 */
}
.image {
position: absolute; /* 图片绝对定位 */
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.mask {
background-color: rgba(0, 0, 0, 0); /* 初始透明度为0 */
position: absolute;
bottom: 0; /* 初始位置在底部 */
height: 0; /* 初始高度为0 */
opacity: 0; /* 初始透明度为0 */
transition: height 0.5s ease, opacity 0.5s ease; /* 缓慢展开 */
}
.container:hover .mask {
height: 100%; /* 鼠标悬停时,遮罩高度变为100% */
opacity: 1; /* 遮罩变得完全不透明 */
}
.container:not(:hover) .mask {
transition: all 0.5s ease-in-out; /* 移开时渐变复原 */
height: 0;
opacity: 0;
}
```
在这个例子中,`.mask`元素作为遮罩层跟随`.container`的位置,当鼠标悬停时,遮罩会从底部逐渐向上展开并变得完全透明。鼠标离开时,遮罩会缓速回到初始状态。
阅读全文