我做了这些部件:
<UserImg imgUrl={userPhoto}>
<DropDown>
<div onClick={handleAuth}>Sign Out</div>
</DropDown>
</UserImg>
const DropDown = styled.div`
letter-spacing: 0.2em;
position: relative;
top: 7vh;
left: 23vw;
border-radius: 2px;
text-transform: uppercase;
transition: all 0.5s ease-in;
border: 2px solid red;
div {
padding: 0.3em;
}
`;
const UserImg = styled.a`
background-image: url(${(props) => props.imgUrl});
background-repeat: no-repeat;
background-size: contain;
background-position: 30%;
display: inline-block;
cursor: pointer;
position: relative;
height: 12vh;
width: 5vw;
left: 25vw;
border: 2px solid white;
border-radius: 50%;
&:hover {
${DropDown} {
visibility: visible;
border: 1px solid white;
border: transparent;
cursor: pointer;
}
}
`;
UserImg
组件工作正常,但DropDown
组件未显示。
我希望显示DropDown
组件。
1条答案
按热度按时间yshpjwxd1#
您的
<DropDown>
组件 * 已 * 显示,但可能不在您预期的位置:它位于<UserImg>
右侧的23vw,因为这是您按照其风格指定的left: 23vw;
位置:如果您希望它是2vw的左边,您将使用
left: -2vw;
的例子。因为
<DropDown>
是<UserImg>
的子容器,所以它的位置相对于父容器。演示:https://codesandbox.io/s/naughty-lewin-9zi6ws?file=/src/App.js