관리 메뉴

웹솔루션개발 26년 노하우! 해피CGI의 모든것

[해피CGI][cgimall] 그리드 재배치 애니메이션CSS 본문

웹프로그램밍 자료실/기타 자료

[해피CGI][cgimall] 그리드 재배치 애니메이션CSS

해피CGI윤실장 2026. 8. 18. 09:05

그리드 카드의 위치가 바뀔 때 CSS만으로 부드러운 이동 효과를 구현한 예제입니다.
JavaScript 없이 레이아웃 변화에 따른 애니메이션을 적용할 수 있습니다.
카드 목록, 갤러리, 대시보드 UI의 전환 효과를 만들 때 참고하기 좋습니다.

HTML 구조

<div class="container">

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

<div class="cell">

<div class="content">CONTENT</div>

</div>

</div>



CSS 소스

* {

box-sizing: border-box;

margin: 0;

padding: 0;

}

 

.container {

display: grid;

grid-template-columns: repeat(auto-fill, 6rem);

gap: 1em;

}

 

.cell {

height: auto;

aspect-ratio: 1;

 

anchor-scope: --a;

anchor-name: --a;

}

 

.content {

position: absolute;

position-anchor: --a;

inset: anchor(inside);

width: 6rem;

height: 6rem;

background: white;

border: 1px dotted black;

border-radius: 0.5rem;

 

place-content: center;

text-align: center;

transition: inset 0.2s ease;

}

 

body {

padding: 5vh;

}

 

 

Comments