내가 만들고 싶은 디자인은 요것이다! 노란 박스 안에 상자와 캐시 받기라는 말풍선이 함께 들어가야하며, 말풍선은 노란 박스를 살짝 벗어나게 위치해야한다.
css 속성을 어떻게 줘야할까! (?)
나는 개발할 때 아직도 css 파트가 제일 어렵고 그만큼 제일 중요한 것 같다......
position: absolute;
top: -10px;
z-index: 1;
이렇게 하면 tooltip class를 가진 말풍선이 노란 박스보다 조금 더 위의 위치에 있게 된다.
position: relative
일반적인 흐름에 따라 배치되며, 다른 인접한 요소들과의 상대적인 위치를 기준으로 이동된다.
자신을 기준으로 하는 상대적인 위치를 가지므로, 다른 요소들과 겹치거나 다른 요소들에게 영향을 주지 않으면서 위치를 조절할 수 있다.
position: absolute
부모 요소나 기준이 되는 가장 가까운 조상 요소 중 position이 relative, absolute, fixed, 또는 sticky인 요소(static이 아닌 요소)를 기준으로 위치가 결정된다.
따라서 부모 요소나 기준이 되는 요소의 위치에 따라 절대적으로 이동한다.
transform: translateX(-50%);
transform 속성은 이동의 정도를 백분율로 지정한다.
여기서 translateX(-50%)는 요소의 가로 폭의 50%만큼 왼쪽으로 이동하라는 의미이다.
<StyledWrapper>
<img
className="tooltip"
src={'/images/svg/challenge/ic-teamwalk-proofshot-reward-tooltip.svg'}
/>
<img className="reward" src={icon} onClick={onClick} />
</StyledWrapper>
const StyledWrapper = styled.div`
position: relative;
.tooltip {
position: absolute;
top: -10px;
transform: translateX(-50%);
z-index: 1;
}
.reward {
padding: 9px;
border-radius: 8.3px;
box-shadow: 0 0 3px 0 #ffd200;
background-color: #fffde7;
}
`;