我有一个父div
#myParentDiv{
width: 100px;
height: 200px;
}
然后我在里面有一个孩子
#myChildDiv{
width: 100%;
height: 100%;
}
在孩子的内心,我有一个按钮。该按钮具有background-image
设置
#backgroundIndiseChild{
background-image: url(/img/img.jpg);
background-repeat: no-repeat;
background-size: 50%;
cursor: pointer;
}
我的问题:当cursor:pointer
的任何部分悬停时,光标变为#myChildDiv
。如果仅在cursor
上悬停时,如何将#backgroundIndiseChild
更改为指针?
答案 0 :(得分:2)
根据评论中提供的说明,我认为您根本不需要#myChildDiv
上的高度和宽度设置。您可以使用下面代码段中的内容。我使用了content
属性而不是background-image
,并将height
和width
设置为50%。
#myParentDiv {
width: 100px;
height: 200px;
border: 1px solid #f60;
}
#backgroundIndiseChild {
content: url(http://lorempixel.com/100/100);
background-repeat: no-repeat;
width: 50%;
height: 50%;
cursor: pointer;
}

<div id="myParentDiv">
<div id="myChildDiv">
<div id="backgroundIndiseChild"></div>
</div>
</div>
&#13;
要使content
垂直居中,您可以使用下面代码段中提到的方法,如果您的图片总是高度为25%,父级宽度为50%。它将图像的容器绝对定位在top
的50%,然后使用transform: translateY(-50%)
垂直居中。这是我建议的方法。 (注意:我使用视口单元vh
作为父级来说明响应性)。
#myParentDiv {
position: relative;
width: 30vh;
height: 60vh;
border: 1px solid #f60;
}
#backgroundIndiseChild {
position: absolute;
top: 50%;
transform: translateY(-50%);
content: url(http://lorempixel.com/100/100);
background-repeat: no-repeat;
width: 50%;
height: 25%;
cursor: pointer;
}
&#13;
<div id="myParentDiv">
<div id="myChildDiv">
<div id="backgroundIndiseChild"></div>
</div>
</div>
&#13;