老师div不是本来就是块级元素嘛,这为什么还要转块,hover不是应该写在div后面嘛。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>background-size</title>
<style type="text/css">
a{text-decoration:none;}
ul{list-style:none;}
div{
background-image:url("http://img1.sycdn.imooc.com/climg//582c37e50001b08102000065.jpg");
width:100px;height:100px;
display:none;border:2px solid red;
background-repeat:no-repeat;
}
/*补充代码*/
.length:hover div{
display: block;
background-size: 100px 100px;
}
.percent:hover div{
display: block;
background-size: 50% 50%;
}
.cover:hover div{
display: block;
background-size: cover;
}
.contain:hover div{
display: block;
background-size: contain;
}
</style>
</head>
<body>
<h2>background-size不同属性值不同效果</h2>
<ul>
<li class="length">
<h3><a href="">100px 100px</a></h3>
<div></div>
</li>
<li class="percent">
<h3><a href="">50% 50%</a></h3>
<div></div>
</li>
<li class="cover">
<h3><a href="">cover</a></h3>
<div></div>
</li>
<li class="contain">
<h3><a href="">contain</a></h3>
<div></div>
</li>
</ul>
</body>
</html>
老师div不是本来就是块级元素嘛,这为什么还要转块(display: block;),还有就是伪类:hover不是应该写在div后面嘛比如(.length div:hover)
66
收起
正在回答
1回答
同学你好,对于你的问题解答如下:
1、div确实是一个块级元素,但是因为一开始给div设置了display:none;让其隐藏了,所以在鼠标移入时,需要将div的display属性值修改为block,让其显示出来。
2、因为.length div:hover这种写法表示鼠标移入类名为length下的div元素,由于div一开始隐藏的状态,鼠标无法移入到div上,不能实现效果。所以需要写成.length:hover div 表示鼠标移入类名为length时,找到它的后代元素div设置样式。
3、代码效果实现是正确的。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星