[CSS - Hover, Opacity] Hover시 디테일 표시

2022. 9. 25. 11:37· 프론트엔드/CS
목차
  1. 2. CSS 작성
  2. 2-2. 상세 설명 작성
  3. 2-3. Hover

각 품목에 hover 했을 때, 이미지의 상세설명이 나오는 디자인을 구현해봅니다.

 

display: none으로 구현하는 것은 transition의 영향을 받지 않기에 opacity를 조정하여 구현하는 것이 보기 좋습니다.

 

1. HTML

<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link rel="stylesheet" href="css/style.css">
</head>

<body>

  <div class="items">
    <div class="item">
      <img src="images/product-01.png" alt="" style="width:100%">
      <div class="caption">
        <h2>MacBook Air M2 13in</h2>
        <p>
          Don’t take it lightly.
        </p>
        <p>Price : $1199</p>
        <a href="#none">View details</a>
      </div>
    </div>
    <div class="item">
      <img src="images/product-01.png" alt="" style="width: 100%">
      <div class="caption">
        <h2>MacBook Air M2 13in</h2>
        <p>
          Don’t take it lightly.
        </p>
        <p>Price : $1199</p>
        <a href="#none">View details</a>
      </div>
    </div>
    <div class="item">
      <img src="images/product-01.png" alt="" style="width: 100%">
      <div class="caption">
        <h2>MacBook Air M2 13in</h2>
        <p>
          Don’t take it lightly.
        </p>
        <p>Price : $1199</p>
        <a href="#none">View details</a>
      </div>
    </div>
  </div>

  <script src="script/jquery-1.12.4.js"></script>
  <script src="script/custom.js"></script>
</body>

</html>

이미지 파일은 구글에서 가져와 링크하면 됩니다. 이미지가 꽤 커서, width를 100%로 조정했습니다. CSS로 부모에 width를 지정하면 줄어듭니다.

 

2. CSS 작성

2-1. 상품 품목 표시

.items {
  text-align: center;
}
.item {
  display: inline-block;
  width: 300px;
  height: 300px;
  position: relative;
  margin: 10px;
}

.item img {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
}

각 품목이 가로로 배치될 수 있도록 inline-block으로 바꿉니다. 그리고 상세설명이 품목과 겹쳐서 보일 수 있도록 position을 relative로 정합니다.

 

img태그가 item의 중앙에 올 수 있도록 top은 50%로, 이미지 크기가 크기 때문에 translate로 -50% 위로 올라올 수 있게 했습니다.

 

2-2. 상세 설명 작성

.caption {
  width: inherit;
  height: inherit;
  background-color: rgba(0, 0, 0, 0.3);
  position: absolute;
  top: 0;
  left: 0;
  color: #fff;
  padding: 20px;
  box-sizing: border-box;
  opacity: 0;
  transition: 0.5s;
}

.caption a {
  color: #fff;
  background-color: #333;
  text-decoration: none;
  padding: 7px;
  border-radius: 3px;
}

item과 같은 크기가 될 수 있게 너비와 높이를 상속받습니다. 그리고 이미 안 보이게 하기 위해 opacity는 0으로 지정합니다. 그리고 padding을 사용하기 위해 box-sizing을 border-box로 지정했습니다.

 

2-3. Hover

.caption a:hover {
  background-color: #fff;
  color: #000;
}

.item:hover .caption {
  opacity: 1;
}

각각 호버 되면 보일 수 있게 opacity를 다시 1로 지정해 display 시켰습니다.

저작자표시 비영리 (새창열림)

'프론트엔드 > CS' 카테고리의 다른 글

[CSS - Hover, Display] 드롭다운 네비게이션  (0) 2022.09.25
[CSS - keyframes, border-radius] 원 도형 아티클 디자인  (0) 2022.09.23
[CSS - Keyframes] 로딩 애니메이션(사각형 회전 이동, 색상 변화)  (1) 2022.09.23
[CSS - keyframes] 로딩 애니메이션(원 도형 크기, 투명도 변화)  (0) 2022.09.22
  1. 2. CSS 작성
  2. 2-2. 상세 설명 작성
  3. 2-3. Hover
'프론트엔드/CS' 카테고리의 다른 글
  • [CSS - Hover, Display] 드롭다운 네비게이션
  • [CSS - keyframes, border-radius] 원 도형 아티클 디자인
  • [CSS - Keyframes] 로딩 애니메이션(사각형 회전 이동, 색상 변화)
  • [CSS - keyframes] 로딩 애니메이션(원 도형 크기, 투명도 변화)
턴태
턴태
import { Dream } from "future";
턴태의 밑바닥부터 시작하는 de-vlogimport { Dream } from "future";
턴태
턴태의 밑바닥부터 시작하는 de-vlog
턴태
전체
오늘
어제
  • ROOT (187)
    • Node.js (37)
      • ES6 (1)
      • TypeScript (3)
      • Express.js (16)
      • NestJS (16)
      • JS (24)
    • 프론트엔드 (29)
      • CS (5)
    • 백엔드 (1)
      • 검색 (2)
      • Database (1)
    • 기타 툴 (1)
      • git (1)
    • 데브옵스 & 인프라 (19)
      • Kubernetes (15)
      • Docker (2)
      • Monitoring (1)
      • IaC (1)
    • Algorithm (90)
      • Implementation & simulation (5)
      • Math (4)
      • Brute Force (1)
      • String (0)
      • Graph (5)
      • Recursion & Backtracking (19)
      • Divide & Conquer (2)
      • Dynamic Programming (18)
      • Greedy (13)
      • Priority Queue (2)
      • Binary Search (6)
      • Data Structure (7)
      • Shortest Path (5)
      • Minimum Spanning Tree (1)
      • Sorting (1)
      • Prefix Sum (1)
    • Linux (1)
      • Ubuntu (1)
    • Diary (5)
      • Algorithm (1)
      • Conference (1)
      • Retrospective (3)
    • Book (0)
      • Self-Development (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 토이프로젝트
  • 디프만
  • 네스트
  • 인프런X디프만
  • 오먹
  • nestjs
  • 백트래킹
  • Toy Project
  • baekjoon
  • 타입스크립트
  • 함수형 프로그래밍
  • python
  • 인프런
  • 노드
  • k8s
  • Kubernetes
  • N과 M
  • Express
  • 파이썬
  • dynamic programming
  • 쿠버네티스
  • TypeScript
  • backtracking
  • 자바스크립트
  • node.js
  • 백준
  • 익스프레스
  • 다이나믹 프로그래밍
  • Omuk
  • GREEDY

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
턴태
[CSS - Hover, Opacity] Hover시 디테일 표시
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.