position:fixed;
bottom:0;
left: 0;
right: 0;
//Bindings.ts
type BindingType = {
margin?: string; (1)
};
export const Horizontal = styled.div<BindingType>` (2)
.
.
.
margin : ${(props)=> props.margin || DEFAULT.MARGIN} (3)
`
//Menubar.tsx
export const Menubar = () => {
.
.
return (
<>
<Horizontal margin={'0'}> ... </Horizontal> (4)
</>
)
}
그림과 같이 section frame에 HOT 아이콘을 겹쳐서 컴포넌트로 만들고 싶었다.
겹치기 위해서는 position: absolute를 사용해야 하는데, 부모 컴포넌트를 지정하는 것이 중요해서 다음과 구조로 컴포넌트 구조를 만들었다.
(부모 컴포넌트를 position:relative로 지정하지 않으면, body 전체를 기준으로 position:absolute된 자식이 움직여서 뷰사이즈가 달라질 때마다 자식의 위치가 변경된다.)
//Section.tsx
export const HotSection = () => {
return (
<>
<HotSectionFrame> --> (1)
<HotTitle /> --> (2)
</HotSectionFrame>
</>
)}