구분선 스타일링 방법
고민하기
netflixIntro
에 구분선을 어떻게 적용해야 할까?아래의 이미지는
<article>
에Divider
컴포넌트를 적용한 모습이다. 아쉽게도<article>
의 사이즈에 맞춰 구분선이 그려진다. 이는netflixIntro
의<section>
에 적용해도 비슷한 현상이 나타난다. 해당 요소에Container
컴포넌트를 적용했기 때문에 양 옆의 마진 공간이 그대로 보인다.
시도해보기
::after 가상 요소 시용
<article>
에 ::after
을 사용해 볼까?
위의 요소를 적용했으나 이미 netflixIntro
에 적용된 컨터이너의 마진 여백 때문에 소용이 없었다.
심지어 더 문제점은 데스크탑 버전으로 봤을 때 레이아웃이 무너져버린다.
구분선을 위한 <div> 태그 추가
이 방법은 원하는 모양 대로 구현은 가능하지만 스타일링을 위해 의미없는 마크업을 추가했기 때문에 시멘틱 마크업이라고 할 수 없다. → 권장 하지 않는다.
구분선을 구현하기 위해서 <article>
사이에 <div>
요소를 생성 했다.
Container
컴포넌트에 적용되어 있는 마진 공간 때문에 구분선도 사이즈가 그에 맞춰진다. 그래서 netflixIntro
의 <section>
요소에 적용되어 있던 Container Container--column
컴포넌트를 빼고 각 <article>
에 적용했다.
위의 방법대로 했더니 원하는 대로 결과가 잘 나온다. 조금 고민이 되는 부분은 구분선 <div>
태그를 <article>
의 형제 요소로 마크업 해줘야 할지 아니면 <article>
을 묶어주는 부모요소로 마크업 해야 할지 고민이다.
새로운 방법
calc() 함수 사용
처음 구분선 스타일링을 고민 할 때, 마진 음수 값을 넣어서 구현을 해야했다고 생각했다. 위에서 사용한 것 처럼 쉽지 않았다.
그럼 어떻게 해야할까? calc()함수를 사용해서 해결해보자!
width: 100vw
로 설정하고 마진의 공간을 계산해서 왼쪽으로 당겨오는 방식을 사용했다.
참고로 각 미디어 쿼리 중단점 마다 컨테이너의 최대 너비가 다르기 때문에 구분선 스타일링도 그에 맞춰 적용했다.
Last updated