AD JB Toolbox 01

CSS / Tutorial / 마우스 호버 효과 / 텍스트 나오게 하는 방법

CSS로 특정 요소에 마우스를 올렸을 때 보이지 않던 특정 요소가 보이게 할 수 있습니다. 아래는 문단에 마우스를 올렸을 때 div 요소가 나오게 하는 예제입니다. div 요소 안에 텍스트가 있지만, 텍스트가 아닌 이미지 등 다른 것도 가능합니다.

마우스 올렸을 때 모양 만들기

  • 마우스를 올렸을 때 보이길 원하는 모양을 먼저 만듭니다.
  • .jb-title에 마우스를 올리면 .jb-text가 보이게 만들 것입니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      * {
        font-family: Consolas, monospace;
        font-size: 16px;
      }
      .jb-text {
        padding: 15px 20px;
        background-color: #444444;
        border-radius: 5px;
        color: #ffffff;
      }
    </style>
  </head>
  <body>
    <p class="jb-title">Lorem ipsum dolor</p>
    <div class="jb-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
  </body>
</html>

display 속성 이용하여 만들기

  • display 속성으로 .jb-text를 보이지 않게 합니다.
.jb-text {
  padding: 15px 20px;
  background-color: #444444;
  border-radius: 5px;
  color: #ffffff;
  display: none;
}
  • :hover를 이용하여 .jb-title에 마우스가 올라간 것을 감지하고, 형제 선택자를 이용하여 .jb-text가 나오게 합니다.
.jb-title:hover + .jb-text {
  display: block;
}
  • 결과는 다음과 같습니다.

다른 요소 위에 나오게 하기

  • .jb-text 다음에 다른 요소가 있다면, .jb-text 요소가 보이면서 다른 요소가 아래로 밀리게 됩니다. 다른 요소가 밀리지 않고 그 위에 나오게 하려면 position 속성을 이용합니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      * {
        font-family: Consolas, monospace;
        font-size: 16px;
      }
      .jb-text {
        padding: 15px 20px;
        background-color: #444444;
        border-radius: 5px;
        color: #ffffff;
        position: absolute;
        display: none;
      }
      .jb-title:hover + .jb-text {
        display: block;
      }
    </style>
  </head>
  <body>
    <p class="jb-title">Lorem ipsum dolor</p>
    <div class="jb-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
    <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  </body>
</html>

애니메이션 효과 주기

  • .jb-text 요소가 보여지고 사라질 때 애니메이션 효과를 주고 싶다면, display가 아니라 opacity를 사용합니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      * {
        font-family: Consolas, monospace;
        font-size: 16px;
      }
      .jb-text {
        padding: 15px 20px;
        background-color: #444444;
        border-radius: 5px;
        color: #ffffff;
        position: absolute;
        opacity: 0;
        transition: all ease 0.5s;
      }
      .jb-title:hover + .jb-text {
        opacity: 1;
      }
    </style>
  </head>
  <body>
    <p class="jb-title">Lorem ipsum dolor</p>
    <div class="jb-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
    <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  </body>
</html>
같은 카테고리의 다른 글
CSS 강좌 / ::before와 ::after로 가상 요소 꾸미기

CSS 강좌 / ::before와 ::after로 가상 요소 꾸미기

::before와 ::after로 HTML을 늘리지 않고 장식용 점과 선을 추가합니다. content·display·currentColor의 역할, 실제 적용 전후 화면, 전체 코드와 가상 요소가 안 보일 때의 점검 방법을 설명합니다.

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

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

이미지에 마우스를 올렸을 때 다른 이미지가 나타나는 효과를 CSS로 만들어보겠습니다. 다음과 같이 이미지 두 개를 넣고 div로 감쌉니다.

CSS 강좌 / 색상 값과 px·em·rem·% 단위 이해하기

CSS 강좌 / 색상 값과 px·em·rem·% 단위 이해하기

색상 표기와 px·em·rem·%의 계산 기준을 비교합니다. 중첩된 글자 크기와 여백이 있는 상자 예제로 실제 크기를 계산하고 개발자 도구에서 확인할 수 있습니다.

CSS / Tutorial / 문자열 자르는 방법

CSS / Tutorial / 문자열 자르는 방법

웹페이지에 출력하는 문자열의 길이는 서버단에서 조절하는 게 보통입니다. 하지만, 어떤 경우에는 그게 불가능할 수 있습니다. 이미 전송 받은 문자열을 잘라야 하는 상황이 생길 수 있습니다. CSS를 이용하여 문자열의 일부만 보여주는 방법을 소개해드립니다.

CSS 강좌 / 표와 셀의 크기 조절하기

CSS 강좌 / 표와 셀의 크기 조절하기

표의 자동·고정 레이아웃, 30:70 열 너비, 긴 문자열의 영향을 같은 데이터로 비교합니다. 모바일 가로 스크롤과 키보드 이동을 확인하고 말줄임 원문을 보존하는 방법을 설명합니다.

CSS 강좌 / 미디어 쿼리와 콘텐츠 기준 분기점 만들기

CSS 강좌 / 미디어 쿼리와 콘텐츠 기준 분기점 만들기

카드의 최소 폭과 여백을 기준으로 미디어 쿼리 분기점을 정합니다. 1·2·3열 전체 예제와 경계값 비교로 조건이 적용되는 과정을 확인합니다.

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

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

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

CSS 강좌 / 관계 선택자와 가상 클래스로 요소 고르기

CSS 강좌 / 관계 선택자와 가상 클래스로 요소 고르기

자손·자식·인접 형제·일반 형제 선택자를 같은 문서 구조에서 비교합니다. hover·focus-visible·first-child·nth-child를 포함한 전체 예제와 구조를 바꿔 선택 결과를 확인하는 실습을 제공합니다.

CSS 강좌 / 문단과 목록의 간격, 정렬, 목록 표시 설정하기

CSS 강좌 / 문단과 목록의 간격, 정렬, 목록 표시 설정하기

문단 안의 줄 간격, 문단 사이 여백, 첫 줄 들여쓰기를 구분합니다. 긴 목록을 이용해 outside·inside 표시 위치와 항목 간격을 비교하고 정렬 문제를 확인할 수 있습니다.

CSS 강좌 / position의 값이 fixed일 때 가운데 정렬하는 방법

CSS 강좌 / position의 값이 fixed일 때 가운데 정렬하는 방법

position의 fixed를 이용하여 요소의 위치를 고정시킬 수 있습니다. 예를 들어 상단에 고정되는 메뉴바를 만들 때 사용합니다. 그런데, fixed를 하면 요소가 한쪽으로 치우칩니다. 만약 가운데에 위치시키고 싶다면 어떻게 할까요? transform 속성으로 해결할 수 있습니다.