请问为什么直接.length:hover 不显示,只有加了div才显示呢。div的盒子不是在a标签的后面吗。
<!DOCTYPE html>
<html>
<head>
<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与h3标签同级,而a在h3标签内,所以a与div没有什么太大的联系。div开始是隐藏的状态,鼠标移入div所在的父元素时,需要让div显示,所以需要写成.length:hover div,它的含义是:鼠标移入.length时,让它的子元素div显示,该样式与html结构也相符:

所以写成.length:hover div会让div显示。
如果只写成.length:hover是给.length本身设置样式,而不是设置子元素div的样式。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星