๐ ์น ํฐํธ ์ฒจ๋ถ ๋ฐฉ๋ฒ
โ ํฐํธ ๋ฃ๋ ๋ฐฉ๋ฒ
body {
font-family: "gulim", 'dotum';
}
โผ body ํ๊ทธ ์์ ์๋ ๋ชจ๋ ๊ธ์๋ฅผ ๊ตด๋ฆผ์ฒด๋ก ์ ์ฉํ๋ค. ๊ตด๋ฆผ์ฒด ์ ์ฉ ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๋์์ฒด๊ฐ ์ ์ฉ๋๋ค.
โผ ํด๋ผ์ด์ธํธ ์ปดํจํฐ์ ํด๋น ํฐํธ๊ฐ ์ค์น๋์ด ์์ด์ผ ์ ์ฉ๋๋ค.
โผ font-family๋ inherit ๋๋ค. -> ์๋ ์์
โ ์ปค์คํ ํฐํธ ๋ฃ๋ ๋ฐฉ๋ฒ
@font-face {
font-family: 'ํฐํธ ์ด๋ฆ';
src: url(ํฐํธ ๊ฒฝ๋ก);
}
โผ @font-face: ๋ด๊ฐ ์ค๋นํ ํฐํธ ํ์ผ์ CSS์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ฑ๋กํ๋ค.
โผ ํด๋ผ์ด์ธํธ ์ปดํจํฐ์ ๋ฑ๋กํ ํฐํธ๊ฐ ์์ ์, url๋ก ์ง์ ํ ๊ณณ์์ ๋ค์ด ๋ฐ์ ์ฌ์ฉ๋๋ค.
โผ ํ๊ธ ํฐํธ์ ์ฌ์ด์ฆ๋ ๋งค์ฐ ํฌ๊ธฐ ๋๋ฌธ์, 1~2๊ฐ๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๐ฅํฐํธ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, ์ฉ๋์ด ์ ์ .woff ํ์(์น์ฉ)์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
โ ํฐํธ๋ฅผ ๋ถ๋๋ฝ๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ
p, h4, h3, h2, h1, span {
transform: rotate(0.03deg);
}
โผ transform: rotate๋ก ์ด์ง ํ์ ์ํค๋ฉด ํฐํธ๊ฐ ๋ถ๋๋ฝ๊ฒ ๋ณด์ฌ์ง๋ค.
โผ Window ํ๊ฒฝ์์ ํฐ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
๐ CSS ๋๋ฒ๊น ๋ฐฉ๋ฒ
โ ๋ด๊ฐ ์ง CSS ์ฝ๋๊ฐ ์ ์ฉ๋์ง ์๋๋ค๋ฉด?
โผ CSS ํ์ผ๋ถํฐ ์์ธ์ ์ฐพ์ ๋ด์ผ ํ๋ค. -> ๋๋ฌด ๋ง์ ์๊ฐ์ด ์์ ๋๋ค.
โผ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์ ์์ธ์ ์ฐพ๋๋ค.
โผ 1๋ฒ์ ํด๋ฆญํ ๋ค, ์ํ๋ ์์๋ฅผ ์ ํ(2๋ฒ)
โผ ์๋ Styles๋ฅผ ํด๋ฆญํ๋ฉด ํด๋น ์์์ ์ ์ฉ๋๋ ์คํ์ผ์ ๋ณด์ฌ์ฃผ๊ณ (3๋ฒ) ๊ฐ์ฅ ์์ ์์ ์๋ก ์ฐ์ ์์๊ฐ ๋์ ์คํ์ผ์ด๋ค.
โผ element.style์ ํ๊ทธ ์์์ ์ง์ style ์์ฑ์ผ๋ก ๋ฃ์ ๋ถ๋ถ์ ๋ณด์ฌ์ค๋ค.
๐ ์์ด์ฝ ์ฌ์ฉํ๊ธฐ
๐ฅ Font Awesome ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
โ CDN์ผ๋ก ์ค์นํ๊ธฐ
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
โผ head ํ๊ทธ์ ์ ์ฝ๋๋ฅผ ์ฒจ๋ถํ๋ค.
โผ ๋งํฌ ์๋ฒ๊ฐ ๋ค์ด ๋๋ฉด ํด๋น css ํ์ผ์ ๋ค์ด ๋ฐ์ ์ฌ์ฉํ์ง ๋ชปํ๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
โ ์ง์ ๋ค์ด๋ก๋ ํ๊ธฐ
https://fontawesome.com/download
โผ ํด๋น ์ฌ์ดํธ์์ ๋ค์ด ๋ฐ๊ณ , ์ค์ ์์ ํ๋ css ํด๋์ ๋ฃ๊ณ ์ฌ์ฉํ๋ค.
โผ css, webfont ํด๋๋ง ๋จ๊ธฐ๊ณ , css ํด๋ ์์์๋ all, all.min๋ง ๋จ๊ธฐ๊ณ ์ ๋ถ ์ญ์ ํด๋ ๋๋ค.
โ ๊ถํ ์์ฑ
<script src="https://kit.fontawesome.com/{something} "crossorigin="anonymous"></script>
โผ FontAwesome์์ Free๋ก ํ์ ๊ฐ์ ํ ๋ค, ์ธ์ฆ script๋ฅผ ๋ฐ์ head ํ๊ทธ ์์ ๋ฃ๋๋ค.
โ ์์ด์ฝ ๋ฃ๊ธฐ
<i class="fa-solid fa-star fa-3x"></i>
โผ FontAwesome ์ฌ์ดํธ์์ ์ํ๋ ์์ด์ฝ์ ์ฐพ์ ๋ค, ์ ์ฝ๋๋ฅผ ๋ณต์ฌํด์ ์ํ๋ ๊ณณ์ ๋ถ์ฌ ๋ฃ๋๋ค.
โผ fa-3x ์ฒ๋ผ ์คํ์ผ์ ๋ณ๊ฒฝํ ์ ์๋ค.
๐ ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ
โONE-WAY ์ ๋๋ฉ์ด์
โ Step
โผ ์์ ์คํ์ผ ๋ง๋ค๊ธฐ
โผ ์ต์ข ์คํ์ผ ๋ง๋ค๊ธฐ
โผ ์ธ์ ์ต์ข ์คํ์ผ๋ก ๋ณํ๋ ํธ๋ฆฌ๊ฑฐ ์ค์
โผ transition์ผ๋ก ์ ๋๋ฉ์ด์ ํจ๊ณผ ์ฃผ๊ธฐ
โtransition -> ์คํ์ผ์ด ๋ณํ๋ฉด, ์์ํ ๋ณ๊ฒฝํ๋๋ก ์ง์
.overlay {
position: absolute;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
opacity: 0;
display: flex;
justify-content: center;
align-items: center;
transition: opacity 1s;
align-items: center;
}
.overlay p {
font-size: 20px;
color: red;
}
.overlay:hover {
opacity: 1;
}
โผ hover ์, opacity ์์ฑ์ 0์์ 1๋ก 1์ด ๋์ ์์ํ ๋ณด์ฌ์ฃผ๋ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค ์ ์๋ค.
โ ํ ์ฌ์ดํธ ์ ๋๋ฉ์ด์ ํ์ธํ๊ธฐ
โผ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์์ Animations๋ฅผ ํด๋ฆญํ ๋ค, ์ ๋๋ฉ์ด์ ์ ๊ฐ์ง๊ณ ์๋ ์์๋ฅผ hoverํ๋ฉด Animations ํญ์ ๊ธฐ๋ก๋๊ณ ์ด๋ค ์์๊ฐ ๋ณ๊ฒฝ๋๋์ง ํ์ธํ ์ ์๋ค.
๐ BootStrap ์ฌ์ฉํ๊ธฐ
โ ์ฌ์ฉ ์ด์
โผ HTML CSS ๊ฐ๋ฐ ์๊ฐ ๋จ์ถ
โ Html ํ์ผ์ ๋ค์ ์ฝ๋๋ฅผ ๋ถ์ฌ ๋ฃ๋๋ค.
https://getbootstrap.com/docs/5.3/getting-started/introduction/
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap demo</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous">
</head>
<body>
<h1>Hello, world!</h1>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script>
</body>
</html>
โ BootStrap Docs์์ ํ์ํ ๋ฌด๋ฃ Component๋ฅผ ์ฐพ์ ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ์ด ์ฌ์ฉํ๋ค.
<button type="button" class="btn btn-primary">Primary</button>
โผ ๋ณดํต ๋ผ๋์ฉ์ผ๋ก ๋ง์ด ์ฌ์ฉํ๋ค.
๐ CSS ๋ฎ์ด์ฐ๊ธฐ
CSS ์์ ์์ ์ ์งํํ๋ค๋ณด๋ฉด, ์ด๋ ํ์ผ์์ ์ด๋ ๋ถ๋ถ์ด ์คํ์ผ์ ์ ์ฉํ๋์ง ๋ชจ๋ฅผ ๋๊ฐ ์๋ค. ์ด๋ด ๋ CSS ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํด์ ์๋ก์ด ๊ฒ์ผ๋ก ๋ฎ์ด๋ฒ๋ฆด ์ ์๋ค.
โ ๊ฐ์ Class์ผ ๊ฒฝ์ฐ
.custom {
color: red;
}
.custom {
color: white;
}
โผ main.css ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ๋์ด ์๊ณ , class="custom"์ ์ฌ์ฉํ๋ฉด red ๋์ white๊ฐ ์ ์ฉ๋๋ค. ์๋์ ์๋ ๊ฒ์ผ ์๋ก ์ฐ์ ์์๊ฐ ๋๋ค.
โ ๋ค๋ฅธ Class์ผ ๊ฒฝ์ฐ
<link href="css/main.css" rel="stylesheet" />
<link href="css/main2.css" rel="stylesheet" />
/* main.css */
.custom {
color: red;
}
/* main2.css */
.custom {
color: white;
}
โผ ํค๋์ link ํ๊ทธ๋ฅผ ์ฌ์ฉํด์ ์ ์ฉํ css ์ค ์๋์ ์๋ css ํ์ผ์ด ์ ์ฉ๋๋ค. ์ฆ, main2.css ํ์ผ์ custom์ด ์ ์ฉ๋๋ค.
โ CSS ์ ํ์ ์ฐ์ ์์๋ก ๋ฎ์ด์ฐ๊ธฐ
ํ๊ทธ < .(class) < #(id) < style
โ ๋ช ๋ น์ด ์ฌ์ฉ
/* main.css */
.custom {
color: red; !important
}
/* main2.css */
.custom {
color: white;
}
โผ !important๋ฅผ ์ฌ์ฉํ๋ฉด ์ต์ฐ์ ์ ์ผ๋ก ์ ์ฉ๋๋ค. (์ถ์ฒํ์ง ์๋๋ค.)
๐ ๋ณต์กํ ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ
โA -> B -> C, A -> B -> A, A -> 1์ด ์ ์ง -> B ๋ฑ ์ฌ๋ฌ ์ํ๋ก ๋ณ๊ฒฝ๋๋ ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ
โผ @keyframes๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
โผ transform์ ์์์ ์์น ๋ฐ ๋ฐฉํฅ ๋ฑ์ ์ค์ , ํด๋น ์ต์ ์ผ๋ก ์์น๋ฅผ ์ค์ ํ๋ฉด ์ ๋๋ฉ์ด์ ์ ์ ์ margin๋ณด๋ค ๋ ๋ถ๋๋ฌ์ด ์ ๋๋ฉ์ด์ ์ ๋ง๋ค ์ ์๋ค.
โผ transform๋ณด๋ค margin ๋ณ๊ฒฝ์ด ๋ ๋๋ฆฌ๋ค.
โ ์ข์ฐ ์ด๋ ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ
.ani-text {
text-align: center;
}
.ani-text:hover {
animation-name: ์ข์ฐ์ด๋;
animation-duration: 1s;
}
@keyframes ์ข์ฐ์ด๋ {
0% {
transform: translateX(0px);
}
50% {
transform: translateX(-100px);
}
100% {
transform: translateX(100px);
}
}
โผ 0%, 50%, 100%๋ ๊ฐ ์งํ ์ ์ ์ฉํ ์คํ์ผ์ ๋ช ์ํ๋ค.
โผ ์์ฑํ ์ ๋๋ฉ์ด์ keyframes๋ฅผ animation-name ์์ฑ์ ์ ์ฉํ๊ณ , animation-duration์ผ๋ก ์ ๋๋ฉ์ด์ ์๊ฐ์ ์ ์ฉํ๋ค.
โผ animation-iteration-count: ์ ๋๋ฉ์ด์ ๋ฐ๋ณต ํ์
โผ animation-delay: ์ ๋๋ฉ์ด์ ๋๋ ์ด์
๐ Position: sticky ์ฌ์ฉํ๊ธฐ
โ ์คํฌ๋กค์ ๋ด๋ ธ์ ๋, ์ข์ธก ์ฐ์ธก์ผ๋ก ์ด๋ํ๋ ๋ฒ
โ ์คํฌ๋กค์ ๋ด๋ ธ์ ๋, ์ข์ธก๋ง ์์ง์ด๊ณ ์ฐ์ธก์ ๊ฐ๋งํ ๊ณ ์ ์ํค๋ ๋ฒ
.grey {
background-color: lightgray;
height: 2000px;
margin-top: 500px;
}
.image {
float: right;
width: 400px;
position: sticky;
top: 10px;
}
.text {
float: left;
width: 300px;
}
<body style="background: gray; height: 3000px">
<div class="grey">
<div class="image">
<img src="html_part_1_img.png" width="100%" />
</div>
<div class="text">
position: sticky test position: sticky test position: sticky test
position: sticky test position: sticky test position: sticky test
position: sticky test position: sticky test position: sticky test
</div>
</div>
</body>
โผ position: sticky๋ ์กฐ๊ฑด๋ถ๋ก fixed ํ ์ ์๋ค.
โผ ์์ ๊ฐ์ ์ฝ๋๋ฅผ ์ ์ฉํ๋ฉด, ์คํฌ๋กค์ ๋ด๋ฆฌ๋ค๊ฐ image๋ฅผ ๋ง๋๊ฒ ๋๋ฉด, ์ด๋ฏธ์ง๋ ๊ณ ์ ๋๊ณ ์คํฌ๋กค์ ์ด์ด๊ฐ ์ ์๋ค.
โผ ๋ถ๋ชจ ๋ฐ์ค๋ฅผ ๋์ด๊ฐ๋ฉด ์กฐ๊ฑด์ด ํด์ ๋์ด ๊ณ ์ ์ด ํ๋ฆฌ๊ฒ ๋๋ค.
'Web > Html&Css' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SASS ์ฌ์ฉ๋ฒ (0) | 2023.04.21 |
---|---|
๋ฐ์ํ ๋ ์ด์์ (0) | 2023.04.01 |
Html&CSS ์ฌ์ฉํ๊ธฐ (0) | 2023.03.31 |