AD JB Toolbox 01

CSS / Tutorial / 마우스 호버 효과 / 다른 이미지 보여주는 방법

이미지에 마우스를 올렸을 때 다른 이미지가 나타나는 효과를 CSS로 만들어보겠습니다.

display 속성 이용하기

  • 다음과 같이 이미지 두 개를 넣고 div로 감쌉니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      body {
        box-sizing: border-box;
        font-family: Consolas, monospace;
      }
      h1 {
        text-align: center;
      }
      img {
        max-width: 100%;
      }
      .jb-a {
        width: 400px;
        margin: 0px auto;
      }
    </style>
  </head>
  <body>
    <h1>Hover Effect</h1>
    <div class="jb-a">
      <img src="images/image-01.jpg" alt="" class="jb-b">
      <img src="images/image-02.jpg" alt="" class="jb-c">
    </div>
  </body>
</html>

  • position 속성을 이용해서 두 이미지가 겹치게 만듭니다.
.jb-a {
  width: 400px;
  margin: 0px auto;
  position: relative
}
.jb-c {
  position: absolute;
  top: 0px;
  left: 0px;
}

  • 두 번째 이미지를 보이지 않게 한 후, 마우스를 올렸을 때 나타나도록 합니다.
.jb-c {
  position: absolute;
  top: 0px;
  left: 0px;
  display: none;
}
.jb-a:hover .jb-c {
  display: block;
}

  • 전체 코드는 다음과 같습니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      body {
        box-sizing: border-box;
        font-family: Consolas, monospace;
      }
      h1 {
        text-align: center;
      }
      img {
        max-width: 100%;
      }
      .jb-a {
        width: 400px;
        margin: 0px auto;
        position: relative
      }
      .jb-c {
        position: absolute;
        top: 0px;
        left: 0px;
        display: none;
      }
      .jb-a:hover .jb-c {
        display: block;
      }
    </style>
  </head>
  <body>
    <h1>Hover Effect</h1>
    <div class="jb-a">
      <img src="images/image-01.jpg" alt="" class="jb-b">
      <img src="images/image-02.jpg" alt="" class="jb-c">
    </div>
  </body>
</html>

opacity 속성 이용하기

  • display 속성을 이용하면 이미지가 바로 바뀝니다. 만약 서서히 나타나고 사라지는 효과를 주고 싶다면 opacity 속성을 사용합니다.
.jb-c {
  position: absolute;
  top: 0px;
  left: 0px;
  opacity: 0;
  transition: opacity 0.5s linear;
}
.jb-a:hover .jb-c {
  opacity: 1;
}

같은 카테고리의 다른 글
CSS 강좌 / 큰 스타일시트 정리하기: 파일 구성·중첩·레이어

CSS 강좌 / 큰 스타일시트 정리하기: 파일 구성·중첩·레이어

역할별 CSS 파일 연결과 네이티브 중첩, 캐스케이드 레이어를 실행 가능한 작은 프로젝트로 익힙니다. 선택자 충돌을 비교하고 원래 설정으로 복원하는 실습을 제공합니다.

CSS 강좌 / 이미지와 동영상 크기·비율 맞추기

CSS 강좌 / 이미지와 동영상 크기·비율 맞추기

이미지와 동영상의 원본 비율과 표시 영역을 구분하고 aspect-ratio·object-fit으로 크기와 잘림을 조절합니다. 같은 그림의 네 가지 비교와 재생 가능한 영상 예제로 결과를 확인합니다.

CSS 강좌 / transform과 transition으로 상태 변화 표현하기

CSS 강좌 / transform과 transition으로 상태 변화 표현하기

transform의 이동·회전·확대와 transition의 시간·곡선·지연을 비교합니다. 문서 흐름, 키보드 초점과 움직임 감소 설정을 전체 예제로 확인할 수 있습니다.

CSS 강좌 / display와 기본 배치 흐름 이해하기

CSS 강좌 / display와 기본 배치 흐름 이해하기

block·inline·inline-block의 줄바꿈과 크기 적용을 같은 요소로 비교합니다. display: none과 visibility: hidden의 공간 차이, 인라인 이미지의 크기 예외를 실행하며 확인합니다.

CSS / Tutorial / 인용문(Blockquote) 꾸미는 방법

CSS / Tutorial / 인용문(Blockquote) 꾸미는 방법

blockquote 요소의 기본 모양은 양쪽에 여백이 있는 것입니다. 그대로 사용하기보다는 여러 가지 모양으로 꾸미는 것이 일반적입니다. 다음은 아래와 같은 인용문을 꾸미는 몇 가지 예제입니다.

CSS 강좌 / CSS를 HTML에 적용시키는 방법

CSS 강좌 / CSS를 HTML에 적용시키는 방법

인라인·내부·외부 CSS의 작성 위치를 비교하고, 두 HTML 페이지가 하나의 스타일시트를 공유하도록 구성합니다. 폴더 위치에 따른 경로와 CSS가 적용되지 않을 때의 확인 순서도 설명합니다.

CSS 강좌 / 링크 꾸미는 방법

CSS 강좌 / 링크 꾸미는 방법

링크의 기본 밑줄과 방문·호버·활성 상태를 설정하고 키보드 포커스를 표시합니다. 두 파일로 방문 이력과 Tab·Enter 동작을 확인하며 상태 규칙이 겹칠 때의 결과를 설명합니다.

CSS 강좌 / 문법: 선택자·선언·주석과 오류 처리

CSS 강좌 / 문법: 선택자·선언·주석과 오류 처리

CSS의 선택자·선언·구분 기호·주석을 예제로 설명합니다. 잘못된 속성값과 세미콜론 누락을 비교하고, 실행 가능한 예제와 오류 수정 실습으로 브라우저가 적용한 결과를 확인합니다.

CSS 강좌 / 브라우저 개발자 도구로 CSS 확인하고 수정하기

CSS 강좌 / 브라우저 개발자 도구로 CSS 확인하고 수정하기

브라우저 개발자 도구에서 안내 문단을 선택하고, Styles의 선언과 Computed의 최종 값을 확인합니다. 색상 변경·선언 끄기·원본 저장 실습과 적용되지 않는 CSS의 원인별 점검 방법을 제공합니다.

CSS 강좌 / 세로 가운데 정렬하는 방법

CSS 강좌 / 세로 가운데 정렬하는 방법

CSS에서 텍스트의 가로 가운데 정렬은 text-align 속성을 이용합니다. 요소의 가로 가운데 정렬은 margin 속성을 이용합니다. 세로 정렬을 가운데로 하려면 어떻게 해야 할까요? 네 가지 방법을 소개합니다.