display: contents
레이아웃 정리
마크업상 래퍼는 필요하지만, 그 래퍼가 flex나 grid 배치에는 끼어들면 안 될 때 씁니다.
- 카드 리스트에서 링크 전체를 감싸되, 내부 요소는 부모 grid에 그대로 배치하고 싶을 때 유용합니다.
- 컴포넌트 구조를 유지하면서 불필요한 중첩 박스가 만드는 간격 문제를 줄일 수 있습니다.
- 접근성 트리에서 일부 브라우저 이슈가 있었던 속성이므로 버튼, 폼, 의미가 중요한 요소에는 신중하게 적용합니다.
.product-card-link {
display: contents;
}
.product-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
추천 사용처: CMS나 템플릿 구조상 래퍼를 제거할 수 없지만, 시각적 레이아웃에서는 래퍼가 없는 것처럼 다뤄야 하는 상황.