Windows: F12 또는 우클릭 → 검사
Mac: Alt + Command + I
/* 개발자도구에서 보이는 형태 */
element {
color: red; /* 적용됨 */
color: blue; /* 취소선 - 적용 안됨 */
font-size: 16px;
}
규칙: 위에 있을수록 높은 우선순위, 취소선은 적용되지 않은 스타일
윈도우10: 시작 → Internet Explorer 검색
윈도우11: IE 11 직접 설치
IE 개발자도구: 우클릭 → 검사 → 에뮬레이션 탭
<!--[if lt IE 9]>
<link rel="stylesheet" href="css/ie8.css" />
<![endif]-->
<!--[if lt IE 10]>
<link rel="stylesheet" href="css/ie9.css" />
<![endif]-->
적용 순서: 다른 CSS 파일들 다음에 배치 (덮어쓰기 위해)
# 다운로드 후 필요한 폴더만 복사
css/ # all.css 파일 포함
webfonts/ # 폰트 파일들
<link href="css/all.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" />
장점: 간편, 빠름
단점: 외부 서버 의존
<i class="fas fa-book"></i> <!-- 책 아이콘 -->
<i class="fas fa-heart"></i> <!-- 하트 아이콘 -->
<i class="fab fa-github"></i> <!-- GitHub 아이콘 -->
.icon {
font-size: 24px;
color: #007bff;
}
.box {
opacity: 0; /* 완전 투명 */
opacity: 0.5; /* 반투명 */
opacity: 1; /* 완전 불투명 */
}
.container {
width: 100px;
height: 100px;
overflow: hidden; /* 넘치는 부분 숨김 */
overflow: visible; /* 넘치는 부분 보임 (기본값) */
overflow: scroll; /* 스크롤바 생성 */
}
.box {
opacity: 0;
transition: all 1s; /* 모든 속성 1초간 */
transition: opacity 0.5s ease; /* opacity만 0.5초간 */
}
.box:hover {
opacity: 1;
}
.box {
transition-property: opacity; /* 대상 속성 */
transition-duration: 0.5s; /* 지속 시간 */
transition-timing-function: ease; /* 속도 곡선 */
transition-delay: 0.2s; /* 시작 지연 */
}
/* 축약형 */
.box {
transition: opacity 0.5s ease 0.2s;
}
/* 1. 시작 스타일 */
.button {
background-color: #007bff;
transform: scale(1);
transition: all 0.3s ease;
}
/* 2. 최종 스타일 + 3. 트리거 */
.button:hover {
background-color: #0056b3;
transform: scale(1.05);
}
<div class="shop-bg">
<div class="shop-container">
<div class="shop-item">
<img src="img/product1.jpg">
</div>
<div class="shop-item">
<img src="img/product2.jpg">
</div>
<div class="shop-item">
<img src="img/product3.jpg">
</div>
</div>
</div>
.shop-bg {
background-color: #eee;
padding: 20px;
}
.shop-container {
display: flex;
width: 90%;
margin: auto;
gap: 20px;
}
.shop-item {
flex: 1;
padding: 10px;
}
.shop-item img {
width: 100%;
display: block;
}
<div class="shop-item">
<div class="overlay-wrap">
<div class="overlay-black">
<span>$60</span>
</div>
</div>
<img src="img/product1.jpg">
</div>
.shop-item {
position: relative;
}
.overlay-wrap {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
.overlay-black {
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.7);
color: white;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
font-weight: bold;
/* 시작 위치 */
transform: translateY(100%);
transition: transform 0.3s ease;
}
/* 호버 시 최종 위치 */
.overlay-wrap:hover .overlay-black {
transform: translateY(0);
}
.overlay-black {
opacity: 0;
transition: opacity 0.3s ease;
}
.overlay-wrap:hover .overlay-black {
opacity: 1;
}
.overlay-black {
transform: translateX(-100%);
transition: transform 0.3s ease;
}
.overlay-wrap:hover .overlay-black {
transform: translateX(0);
}
.overlay-black {
transform: scale(0);
transition: transform 0.3s ease;
}
.overlay-wrap:hover .overlay-black {
transform: scale(1);
}
/* 부모에 hover 시 자식 요소 변경 */
.parent:hover .child {
opacity: 1;
}
/* 형제 요소 선택 */
.item:hover + .sibling {
color: red;
}
/* GPU 가속 활용 */
.animated-element {
will-change: transform;
transform: translateZ(0);
}
/* 부드러운 애니메이션을 위한 속성들 */
.smooth-animation {
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
}