老师div不是本来就是块级元素嘛,这为什么还要转块,hover不是应该写在div后面嘛。

老师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)

正在回答

登陆购买课程后可参与讨论,去登陆

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 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师