一个定位的练习
一个定位的练习
我们需要实现以下的效果
当鼠标放上去会有一层透明的"薄膜"出现,注意这张图片是插入的图片,而不是背景图片,所以这里只能用定位去实现。
第一步先构建出一个盒子,并且插入图片
<div class="father">
<img src="img/3.jpg">
</div>
* {
margin: 0px;
padding: 0px;
}
.father {
width: 222px;
height: 220px;
border: 1px solid #CCC;
margin: 100px auto 0px;
}
宽高和图片的大小相同。
第二步将半透明的小盒子构造出来
<div class="father">
<img src="img/3.jpg">
<div class="son"></div>
</div>
.son {
width: 222px;
height: 220px;
background-color: rgba(0, 0, 0, 0.1);
}
由于超出了父盒子的大小,所以小盒子只能向下移动。这时应该对子盒子使用绝对定位,不过父级没有使用定位,所以子盒子是相对于body
的定位,所以要设置父盒子也使用定位,为了与原来保持一致,设置父盒子使用相对定位,并且top
和left
都为0
。
.father {
width: 222px;
height: 220px;
border: 1px solid #CCC;
margin: 100px auto 0px;
position: relative;
top: 0px;
left: 0px;
.son {
width: 222px;
height: 220px;
position: absolute;
top: 0px;
left: 0px;
background-color: rgba(0, 0, 0, 0.1);
}
这个薄膜已经铺在父盒子上面了,我们希望在鼠标经过的时候才显示出来,所以先将这个隐藏,设置display: none
,然后当鼠标经过时,显示出来,所以有
.son {
width: 222px;
height: 220px;
position: absolute;
top: 0px;
left: 0px;
background-color: rgba(0, 0, 0, 0.1);
display: none;
}
.father:hover .son {
display: block;
}