새로운 질서 위키

겹쳐 놓은 요소의 기준점

이미지 위에 캡션을 겹칠 때는 무엇을 기준으로 놓을지 먼저 정한다. 문서 흐름에서 빠지는 절대 위치 지정과, 같은 그리드 영역을 공유하는 배치는 높이를 계산하는 방식이 다르다.

  • 같은 영역: grid-area: 1 / 1을 두 요소에 주면 같은 칸에 놓을 수 있다. 캡션의 내용도 그리드 크기 계산에 참여한다.
  • 절대 위치: position: absolute는 일반 흐름에서 빠진다. 흔히 부모에 position: relative를 두어 기준을 마련하지만, 다른 속성도 포함 블록을 만들 수 있다.
  • 길어진 글: 겹칠 수 있다고 반드시 겹쳐야 하는 것은 아니다. 캡션이 이미지를 지나치게 가리면 아래로 분리하는 편이 낫다.

한 파일로 확인하기

아래 전체 코드를 UTF-8 형식의 example-02.html 파일로 저장해 웹 브라우저에서 연다. 예제의 전시와 행사는 가상이다.

<!doctype html>
<html lang="ko">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>겹쳐 놓은 요소의 기준점: 제작 예제</title>
<style>
* { box-sizing: border-box; }
body { margin: 0; padding: 1rem; color: #202020;
  background: #fff; font-family: sans-serif; line-height: 1.7; }
main { max-inline-size: 44rem; margin-inline: auto; }
h1 { font-size: 1.75rem; line-height: 1.3; }
a { color: #164d91; }
:focus-visible { outline: 3px solid #164d91; outline-offset: 4px; }
figure { display: grid; margin: 0; }
figure > * { grid-area: 1 / 1; min-inline-size: 0; }
svg { display: block; inline-size: 100%; block-size: auto; }
figcaption { align-self: end; z-index: 1; margin: .75rem;
  padding: .5rem .75rem; color: #202020; background: #fff;
  overflow-wrap: anywhere; }
</style>
<main>
  <h1>두 원 사이의 거리</h1>
  <figure>
    <svg viewBox="0 0 640 400" role="img" aria-labelledby="drawing-title">
      <title id="drawing-title">연두색 바탕 위에 나란히 놓인 파란 원 두 개</title>
      <rect width="640" height="400" fill="#e8f0d4"/>
      <circle cx="210" cy="160" r="75" fill="#3055a5"/>
      <circle cx="430" cy="160" r="75" fill="#3055a5"/>
    </svg>
    <figcaption>가상의 작품, 2026. 두 원은 같은 칸에 머문다.</figcaption>
  </figure>
  <p>이 문장은 그림과 캡션 뒤에 놓인다.</p>
</main>
</html>

캡션을 여러 줄로 바꾸고 창을 좁혀도 다음 문장이 캡션 아래로 이어지는지 확인한다. 캡션을 이미지에서 떼어낼 판단은 캡션이 작품을 바꾸는 순간과 겹침을 포기하는 너비에서 이어갈 수 있다.

참고

#HTML #CSS #편집

검색