โ ๏ธ ํค๋๋ฅผ ์์ ๊ณ ์ ํ๋๊น ์น์
์ด ํค๋ ๋ฐ์ผ๋ก ๋ค์ด๊ฐ์ ๊ฐ๋ ค์ง๋ ๋ฌธ์
โ ๏ธ ํ๋ฒ๊ฑฐ ๋ฒํผ์ด๋ ๋ก๊ณ ๋ถ๋ฆฌโ ๏ธ ํ๋ฒ๊ฑฐ ๋ฒํผ ์์ด์ฝ X์๋ก ๋ฐ๊พธ๊ธฐ
โ ๏ธ ํ๋ฒ๊ฑฐ ๋ฉ๋ด margin-top
โ ๏ธ ํค๋๋ ํ๋ฒ๊ฑฐ ๋ฉ๋ด ์๊ฒน์น๊ฒ ์ด๋ป๊ฒ ๊ตฌ์ฑํ ์ง
- innerHeader์ด ์ค๋ฅธ์ชฝ์ผ๋ก ํ๋ฒ๊ฑฐ ๋ฉ๋ด ๋์ด๋งํผ ์ด๋
- ์ฌ๋ ์ด๋ฏธ์ง ๋ฐฐ๊ฒฝ ์ ๊ฑฐํด์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐ๋ฆฌ๋๋ก
- ์ฌ๋ ์ค๋ฃจ์ฃ ๋ฐ์ ๋์ ์ผ๋ก ์ ์ด ์๊ธฐ๊ฒ ํ๊ธฐ
โ ๏ธ Nav ๋ฉ๋ด hover ํจ๊ณผ ์์
โ ๏ธ ํฅ์ ์ด๋ฏธ์ง์ ์ผ๋ฌ์
์ถ๊ฐํ๊ธฐ ๋ค๋ฅธ ํฅ์๋ก ์ ํ๋๊ฒ
์ผ๋จ ๋์ถฉ ์ ์ด๋๊ณ ๋์ค์ ์ง์ง๊ธฐ ํด์ ๊น readMe์์ ์ฐ์
์ค๋ ํ ๋ถ๋ถ
- ํ๋์ค์ด๋ก "๊ฟ์ ํฅ์", "๊ฟ์ ๋ฌผ"์ ๋ฐ์ EAU DE REVE(์ค ๋ ๋ ๋ธ)
- ์ผ๋จ ๋ผ๋๋ง ๋ง๋ค๊ณ ํ์ด์ง 5๊ฐ ์ ๋ ์ถ๊ฐํ์
๋ก๊ณ
- Canva
ํฐํธ[๊ตฌ๊ธ ๋ฌด๋ฃ ํฐํธ ์ฌ์ฉํจ]
- Dancing Script โ ํ๊ธฐ์ฒด ๋ถ๋ถ
- Merriweather โ ์์ด ๋ณธ๋ฌธ์ฉ
- Noto Sans KR โ ํ๊ตญ์ด ๋ณธ๋ฌธ์ฉ, ๊ฐ๋ ์ฑ ์ข์
์์ด์ฝ ์ถ์ฒ
- ํฐํธ์ด์ธ cdn https://fontawesome.com/
์ฌ์ง ์ถ์ฒ ๊ตฌ๊ธ
- https://floromashop.com/products/pink-sakura-perfume
- https://www.tatlerasia.com/style/beauty/fresh-new-fragrances-for-spring
- https://21ninety.com/national-fragrance-day
- https://parfumexquis.com/products/purple-molecule-070-07?variant=43065368346880
๋ฐฐ๊ฒฝ์ ๊ฑฐ
1. ๋ก๊ณ

2. Header
๋ค๋น๊ฒ์ด์
๋ฐ = ๋ฉ๋ด + (๊ฒ์/๋ก๊ทธ์ธ/์ฅ๋ฐ๊ตฌ๋)
๋ฉ๋ด
- About (ํ์ฌ์๊ฐ)
- Collections (์ ํ ์๊ฐ)
- Signature Scent (์๊ทธ๋์ฒ / Best)
- Notes (ํฅ๋ณ๋ก ํฅ์ ์ฌ์ฉ ๊ฐ์ด๋)
- Contact (์ฐพ์์ค์๋ ๊ธธ)



โญ ๋ฉ๋ด์ ๋ง์ฐ์ค ์ฌ๋ฆฌ๋ฉด ๋ถ๋๋ฝ๊ฒ ๋ฐ์ค ์๊ธฐ๊ฒ ํ๊ธฐ ๊ฐ์์์ ์์ฐ๊ณ span ํ๊ทธ๋ก
<nav class="mainMenu">
<span class="bar"></span>
<ul class="gnb en">
<li><a href="#">About</a></li>
<li><a href="#">Collections</a></li>
<li><a href="#">Signature Scent</a></li>
<li><a href="#">Notes</a></li>
<li><a href="#">Contact</a></li>
</ul>
<ul class="sns">
<li><a href="#"><img src="img/sns-icon01.png" alt=""></a></li>
<li><a href="#"><img src="img/sns-icon03.png" alt=""></a></li>
<li><a href="#"><img src="img/sns-icon04.png" alt=""></a></li>
</ul>
</nav>
span.bar {
position: absolute;
left: 0;
bottom: 40px;
width: 0;
height: 3px;
background-color: #e7e7e7;
transition: all 0.4s;
}

โญ overflow: hidden ์์ฑ ์ฃผ๊ณ ๋ฐฐ๊ฒฝ์ ๋ฃ์ผ๋ฉด ํ์ฌ ์์
์์ญ ํ์ธ ๊ฐ๋ฅ


.bgPerfume {
position: absolute;
top: 15%;
right: 100px; /* ์ค๋ฅธ์ชฝ ๋์์ 200px ์ผ์ชฝ์ผ๋ก ์ด๋ */
width: 400px; /* ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ */
opacity: 0.8; /* ์ด์ง ํฌ๋ช
ํ๊ฒ */
z-index: -1; /* ํ
์คํธ ๋ค๋ก ๋ฐฐ์น */
}
โญ z-index : -1; ์ด๋ฏธ์ง๋ฅผ ๊ธ์ ๋ค๋ก ๋ฐฐ์น
โญ opacity ๋์์๋ก ์ด๋ฏธ์ง๊ฐ ์ ๋ช
ํจ ๋ฎ์์๋ก ํฌ๋ช
๋ ์ฌ๋ผ๊ฐ
โญ ์ ์ด์ฟผ๋ฆฌ VS ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ
์ ์ด์ฟผ๋ฆฌ๊ฐ ํจ์ฌ ์งง๋ค ์ฝ๋๊ฐ ๊ทธ๋์ ๋ํํ
๋ ๋ ํธํ๊ฑฐ ๊ฐ๋ค
// 1.gnb Mouseover, Focus ๋ฐ์ค => span.bar
$(function(){
$('.gnb li a').on('mouseenter focus', function(){
let bar = $(this).position().left;
let widNum = $(this).width();
$('span.bar').css({'left': bar + 'px', 'width': widNum + 'px', 'opacity': 1});
});
$('.gnb li a').on('mouseleave', function(){
$('span.bar').css({'left': '0px', 'width': '0px', 'opacity': 0});
});
});
/*
document.addEventListener('DOMContentLoaded', function () {
const menuItems = document.querySelectorAll('.gnb li a');
const bar = document.querySelector('span.bar');
menuItems.forEach(item => {
item.addEventListener('mouseenter', function () {
const barLeft = this.offsetLeft;
const barWidth = this.offsetWidth;
bar.style.left = `${barLeft}px`;
bar.style.width = `${barWidth}px`;
bar.style.opacity = '1';
});
item.addEventListener('focus', function () {
const barLeft = this.offsetLeft;
const barWidth = this.offsetWidth;
bar.style.left = `${barLeft}px`;
bar.style.width = `${barWidth}px`;
bar.style.opacity = '1';
});
item.addEventListener('mouseleave', function () {
bar.style.left = '0px';
bar.style.width = '0px';
bar.style.opacity = '0';
});
});
});
*/


3. ๋ธ๋๋ ํ์คํ ๋ฆฌ ํํธ ๋ง๋ค๊ธฐ
์์ ๋ฐ์ดํฐ ์์ฑํ๊ณ ์ถ๊ฐํ๊ธฐ
์ผ๋จ CSS ์์ค ํ๋ฉด


/* section ์์ .inner(๊ณตํต ๋์ด ๊ฐ์ด๋) .box(float) */
section .inner {
width: 1320px;
margin: auto;
display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */
justify-content: space-between; /* ์์ ๊ฐ๊ฒฉ ์๋ ์ ๋ ฌ */
}
section .inner .box {
width: 50%;
}
ํ๋ ์ค๋ง ์จ์ค๋ ์ฌ์ง ์์ผ๋ก ๊ธ์๊ฐ ๋ฐฐ์น๋จ
โญ ์์์์์ float ์ ์ฉํ๋ฉด ๋ถ๋ชจ ์์์ ๋์ด๊ฐ ์๊ฒ ๋จ
๊ทธ๋์ ๋ฐ๋์ float์ ์ธ ๋๋ ๋ถ๋ชจ ์์์ overflow: hidden ์ผ๋ก ๊ฐ์ธ์ฃผ์ด์ผ ํ๋ค.
์๋๋ฉด flex๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.



โญ div .box์ width ๊ฐ 660px์ธ๋ฐ ์์ ul ๋๋น๊ฐ ๋๋ฌด ์ข์
section .inner .box ul{
width: 85%; /* ๋ถ๋ชจ ์์(.box)์ ๋๋น์ 85% ๋งํผ ์์ํ๊ฒ ์ค์ */
border-top: 1px solid #e6e6e6;
padding-top: 40px;
}
โญ ์ฌ์ง ๋์ด๋ ๊ธ์จ ์์์ ์ด๋ ์๋ง์์ ๊น๋ํ์ง ์์
โญ read more ๋ฒํผ ๊ฐ์ด๋ฐ๋งํผ ๋จ์ด๋จ๋ฆฌ๊ธฐ
[์์ ์ ]

[์์ ํ]

4. Best Collections ์น์
css ์ ์ฉ ์ํ๊ณ html์ด๋ ์ฌ์ง๋ง ๋ฐฐ์นํ ์ํ



โญ ์ด๋ฏธ์ง์๋ text-align: center ; ์์ฑ ์ฌ์ฉ ๊ฐ๋ฅ
section.collection .inner .box .img {
margin-top: 60px;
text-align: center;
}
โ ๋ง๋ค๋ฉด์ ์ฐพ์๋ณธ ๊ฒ
โญ Emmet ๋จ์ถํค ์๋์์ฑ
`h100` + `Tab`: height: 100%;
`w100` + `Tab`: width: 100%;
`m0a` + `Tab`: margin: 0 auto;
`p20` + `Tab`: padding: 20px;
`bgc` + `Tab`: background-color:
`bd` + `Tab`: border: ;
`ta-c` + `Tab`: text-align: center;
`fw-b` + `Tab`: font-weight: bold;
`div.header` + `Tab`: <div class="header"></div>
`div#main` + `Tab`: <div id="main"></div>
`ul>li*3` + `Tab`: <ul><li></li><li></li><li></li></ul>
`Shift + Alt + A` : ์ฌ๋ฌ ์ค ์ฃผ์ /* */
`Ctrl` +` Alt` + `โ`(์๋ ํ์ดํ) ๋ฉํฐ์ปค์
`Shift` + `Alt` + `I` ์ ํํ ์ค ๋ชจ๋์ ์ปค์
`Ctrl` + `D` (๊ฐ์ ๋จ์ด ํ๊บผ๋ฒ์ ์ ํ
์ธ ์ค์ ํ ๋ฒ์ ์
๋ ฅํ๋ ค๋ฉด?
Ctrl + Alt + โ (๋ฉํฐ ์ปค์ ๋ง๋ค๊ธฐ)
ul>li*3 ์
๋ ฅ ํ Tab ํค
๋ฒํผ์ ์ ๋๋ฉ์ด์
์ ์ ์ฉํ ๋ <b> ํ๊ทธ ์ฌ์ฉ
๋ฒํผ ์ ์ฒด๊ฐ ์๋๋ผ ํ
์คํธ ๋ถ๋ถ๋ง ์ ๋๋ฉ์ด์
์ผ๋ก ๋ณ๋ ์คํ์ผ
b ํ๊ทธ์ transform, opacity, animation ๋ฑ์ ์ ์ฉํด์ ํ
์คํธ๋ง ์์ง์ด๊ฒ ๋ง๋ค๊ธฐ
โญ top์์ -๊ฐ ์ฃผ๋ฉด ์๋ก ์ฌ๋ผ๊ฐ
โญ transform ๊ด๋ จ
transform: skewX(-15deg) translateX(5px);
- ์์๋ฅผ X์ถ ๊ธฐ์ค์ผ๋ก -15๋ ๊ธฐ์ธ์ฌ ์ผ์ชฝ์ผ๋ก ๋นํ๋ฆฐ ํจ๊ณผ๊ฐ ์๊ธด๋ค.
- ์์๋ฅผ X์ถ ๋ฐฉํฅ์ผ๋ก 5px ์ด๋ํ์ฌ ์ค๋ฅธ์ชฝ์ผ๋ก ์กฐ๊ธ ์ด๋ํ๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ์์๊ฐ ์ผ์ชฝ์ผ๋ก ๊ธฐ์ธ์ด์ง๋ฉด์ ์ฝ๊ฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์์น๊ฐ ์กฐ์ ๋๋ค.
โญ display: inline-block; ์ ์ฐ๋๊ฐ?
์ธ๋ผ์ธ ์์์ฒ๋ผ ๋์ํ์ง๋ง ๋ธ๋ก ์์์ ์์ฑ์ ๊ฐ์ง
๊ธฐ๋ณธ์ ์ผ๋ก inline ์์๋ width, height ์์ฑ์ ์ ์ฉํ ์ ์์
inline-block์ ์ฌ์ฉํ๋ฉด width, height์ ์ง์ ํ ์ ์์ด ์คํ์ผ์ ์กฐ์ ๊ฐ๋ฅ
์ฌ๋ฌ ์์๋ฅผ ๊ฐ๋ก๋ก ์ ๋ ฌํ๋ฉด์ ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ
block ์์์ฒ๋ผ ๊ฐ๋ณ ํฌ๊ธฐ ์กฐ์ ์ด ๊ฐ๋ฅํ๋ฉด์, inline์ฒ๋ผ ํ ์ค์ ์ฌ๋ฌ ๊ฐ ๋ฐฐ์น ๊ฐ๋ฅ
๋ฒํผ, ์์ด์ฝ, ๋ฉ๋ด ํญ๋ชฉ ๋ฑ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ฉด์ ๊ฐ๋ก ์ ๋ ฌํด์ผ ํ๋ ์์์ ๋ง์ด์ฌ์ฉํ๋ค.
โญ spanํ๊ทธ์ ์ค๋ฐ๊ฟ ํ๋ ๋ฒ
display์ block์์ ์ฃผ๋ฉด ๋๋ค
.tit span {
display: block;
}
โญ .moreBtn์์ before์ position: relative;๋ฅผ ์ฐ๋ ์ด์

::before์ ์ฌ์ฉํ ๋ position: relative;๋ฅผ ์ง์ ํ๋ ์ด์ ๋, ๋ณดํต ์์ ์์(::before)๋ฅผ ์ ํํ ์์น์ ๋ฐฐ์นํ๊ธฐ ์ํด ๊ธฐ์ค์ ์ญํ ์ ํ๋๋ก ์ค์ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ::before ๋๋ ::after๋ ๊ฐ์ ์์๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก position: static; ์ํ์ด๋ค.
๋ถ๋ชจ ์์์ธ .moreBtn์ position: relative;๋ฅผ ์ง์ ํ๋ฉด, ::before์ position: absolute;๋ฅผ ์ ์ฉํ ๊ฒฝ์ฐ, ๋ถ๋ชจ(.moreBtn)๋ฅผ ๊ธฐ์ค์ผ๋ก ์์น๊ฐ ์กฐ์ ๋๋ค.
โญ ๊ฐ์์์ before ์ธ ๋ ์ข์ธก ํจ๋ฉ ์ค (padding-left: 45px;)
์ผ์ชฝ์ 45px์ ์ฌ๋ฐฑ์ ์ถ๊ฐํด์, ๋ด์ฉ์ด ์ข ๋ ์ค๋ฅธ์ชฝ์์ ์์ํ๋๋ก ํจ.
๋ณดํต ::before์ ์์ด์ฝ์ฒ๋ผ ์ฌ์ฉํ๊ณ ์ถ์ ๋, ์ผ์ชฝ์ ์์ด์ฝ์ ๋ฐฐ์นํ ๊ณต๊ฐ์ ๋ง๋ค๊ธฐ ์ํด padding-left ์
โ padding-left: 45px; ๋๋ถ์, ๊ฐ์์์์ ํ
์คํธ๊ฐ ๊ฒน์น์ง ์์.
โญ transition: all 0.15s; ์ ๋๋ฉ์ด์
ํจ๊ณผ๋ฅผ 0.15์ด ๋์ ๋ถ๋๋ฝ๊ฒ ์ ์ฉํ๊ธฐ
์ฆ, transform: skewX(-15deg) translateX(5px);์ฒ๋ผ ๋ฒํผ์ด ๊ธฐ์ธ์ด์ง๊ณ ์ด๋ํ ๋
transition ๋๋ถ์ ์ฆ์ ๋ณํ์ง ์๊ณ ๋ถ๋๋ฝ๊ฒ ๋ณํํ๋ ํจ๊ณผ๊ฐ ์๊ธฐ๊ฒ ์ ์ฉํด์ฃผ์๋ค.
โ ๋ฒํผ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆด ๋ ์์ฐ์ค๋ฝ๊ฒ ์์ง์ด๋๋ก ์ค์ ํ๊ธฐ
โญ ํด๋์ค๋ช
๋์ด์ฐ๊ธฐ

section.journal์ ๋ถ์ฌ์ฐ์ง๋ง .scroll์ ๋ ์?
journal์ section์ ํด๋์ค๋ช
, scroll ํ์ div์ ํด๋์ค๋ช
<section class="journal"><div class="scroll">srcoll</div></secion>
๋์ด์ฐ๊ธฐ ์ฌ๋ถ์ ๋ฐ๋ผ ์ ํ ๋ฒ์๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒ
section์ด class="journal"์ผ ๋, ๊ทธ ์์ ์๋ .scroll ์์์๋ง ์ ์ฉ๋จ.
section.journal section ํ๊ทธ ์ค์์ class="journal"์ ๊ฐ์ง ์์ ์ ํ
.scroll class="scroll"์ด ์๋ ๋ชจ๋ ์์ ์ ํ
section.journal .scroll class="journal"์ธ section ๋ด๋ถ์ ์๋ class="scroll" ์์ ์ ํ
โญ ์คํฌ๋กค ๋ฒํผ ๋ง๋ค๋ ` writing-mode: vertical-rl` vs ` writing-mode: vertical-lr`



โญ ์ด์ ์์ฐ๋ float์ ์ต์ ํธ๋ ๋ flex๋น๊ต
float์ ํด๋น ์์์ ๋จน์
flex๋ ๋ถ๋ชจ ์์์ display: flex;
/* section ์์ .inner(๊ณตํต ๋์ด ๊ฐ์ด๋) .box(float) */
section .inner {
width: 1320px;
margin: auto;
overflow: hidden;
}
section .inner .box {
float: left;
width: 50%;
}
section .inner {
width: 1320px;
margin: auto;
display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */
justify-content: space-between; /* ์์ ๊ฐ๊ฒฉ ์๋ ์ ๋ ฌ */
}
section .inner .box {
width: 50%;
}
'ํ๋ก๊ทธ๋๋ฐ์ธ์ด > html&css' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โ ๏ธ ํค๋๋ฅผ ์์ ๊ณ ์ ํ๋๊น ์น์
์ด ํค๋ ๋ฐ์ผ๋ก ๋ค์ด๊ฐ์ ๊ฐ๋ ค์ง๋ ๋ฌธ์
โ ๏ธ ํ๋ฒ๊ฑฐ ๋ฒํผ์ด๋ ๋ก๊ณ ๋ถ๋ฆฌโ ๏ธ ํ๋ฒ๊ฑฐ ๋ฒํผ ์์ด์ฝ X์๋ก ๋ฐ๊พธ๊ธฐ
โ ๏ธ ํ๋ฒ๊ฑฐ ๋ฉ๋ด margin-top
โ ๏ธ ํค๋๋ ํ๋ฒ๊ฑฐ ๋ฉ๋ด ์๊ฒน์น๊ฒ ์ด๋ป๊ฒ ๊ตฌ์ฑํ ์ง
- innerHeader์ด ์ค๋ฅธ์ชฝ์ผ๋ก ํ๋ฒ๊ฑฐ ๋ฉ๋ด ๋์ด๋งํผ ์ด๋
- ์ฌ๋ ์ด๋ฏธ์ง ๋ฐฐ๊ฒฝ ์ ๊ฑฐํด์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐ๋ฆฌ๋๋ก
- ์ฌ๋ ์ค๋ฃจ์ฃ ๋ฐ์ ๋์ ์ผ๋ก ์ ์ด ์๊ธฐ๊ฒ ํ๊ธฐ
โ ๏ธ Nav ๋ฉ๋ด hover ํจ๊ณผ ์์
โ ๏ธ ํฅ์ ์ด๋ฏธ์ง์ ์ผ๋ฌ์
์ถ๊ฐํ๊ธฐ ๋ค๋ฅธ ํฅ์๋ก ์ ํ๋๊ฒ
์ผ๋จ ๋์ถฉ ์ ์ด๋๊ณ ๋์ค์ ์ง์ง๊ธฐ ํด์ ๊น readMe์์ ์ฐ์
์ค๋ ํ ๋ถ๋ถ
- ํ๋์ค์ด๋ก "๊ฟ์ ํฅ์", "๊ฟ์ ๋ฌผ"์ ๋ฐ์ EAU DE REVE(์ค ๋ ๋ ๋ธ)
- ์ผ๋จ ๋ผ๋๋ง ๋ง๋ค๊ณ ํ์ด์ง 5๊ฐ ์ ๋ ์ถ๊ฐํ์
๋ก๊ณ
- Canva
ํฐํธ[๊ตฌ๊ธ ๋ฌด๋ฃ ํฐํธ ์ฌ์ฉํจ]
- Dancing Script โ ํ๊ธฐ์ฒด ๋ถ๋ถ
- Merriweather โ ์์ด ๋ณธ๋ฌธ์ฉ
- Noto Sans KR โ ํ๊ตญ์ด ๋ณธ๋ฌธ์ฉ, ๊ฐ๋ ์ฑ ์ข์
์์ด์ฝ ์ถ์ฒ
- ํฐํธ์ด์ธ cdn https://fontawesome.com/
์ฌ์ง ์ถ์ฒ ๊ตฌ๊ธ
- https://floromashop.com/products/pink-sakura-perfume
- https://www.tatlerasia.com/style/beauty/fresh-new-fragrances-for-spring
- https://21ninety.com/national-fragrance-day
- https://parfumexquis.com/products/purple-molecule-070-07?variant=43065368346880
๋ฐฐ๊ฒฝ์ ๊ฑฐ
1. ๋ก๊ณ

2. Header
๋ค๋น๊ฒ์ด์
๋ฐ = ๋ฉ๋ด + (๊ฒ์/๋ก๊ทธ์ธ/์ฅ๋ฐ๊ตฌ๋)
๋ฉ๋ด
- About (ํ์ฌ์๊ฐ)
- Collections (์ ํ ์๊ฐ)
- Signature Scent (์๊ทธ๋์ฒ / Best)
- Notes (ํฅ๋ณ๋ก ํฅ์ ์ฌ์ฉ ๊ฐ์ด๋)
- Contact (์ฐพ์์ค์๋ ๊ธธ)



โญ ๋ฉ๋ด์ ๋ง์ฐ์ค ์ฌ๋ฆฌ๋ฉด ๋ถ๋๋ฝ๊ฒ ๋ฐ์ค ์๊ธฐ๊ฒ ํ๊ธฐ ๊ฐ์์์ ์์ฐ๊ณ span ํ๊ทธ๋ก
<nav class="mainMenu"> <span class="bar"></span> <ul class="gnb en"> <li><a href="#">About</a></li> <li><a href="#">Collections</a></li> <li><a href="#">Signature Scent</a></li> <li><a href="#">Notes</a></li> <li><a href="#">Contact</a></li> </ul> <ul class="sns"> <li><a href="#"><img src="img/sns-icon01.png" alt=""></a></li> <li><a href="#"><img src="img/sns-icon03.png" alt=""></a></li> <li><a href="#"><img src="img/sns-icon04.png" alt=""></a></li> </ul> </nav>
span.bar { position: absolute; left: 0; bottom: 40px; width: 0; height: 3px; background-color: #e7e7e7; transition: all 0.4s; }

โญ overflow: hidden ์์ฑ ์ฃผ๊ณ ๋ฐฐ๊ฒฝ์ ๋ฃ์ผ๋ฉด ํ์ฌ ์์
์์ญ ํ์ธ ๊ฐ๋ฅ


.bgPerfume { position: absolute; top: 15%; right: 100px; /* ์ค๋ฅธ์ชฝ ๋์์ 200px ์ผ์ชฝ์ผ๋ก ์ด๋ */ width: 400px; /* ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ */ opacity: 0.8; /* ์ด์ง ํฌ๋ช
ํ๊ฒ */ z-index: -1; /* ํ
์คํธ ๋ค๋ก ๋ฐฐ์น */ }
โญ z-index : -1; ์ด๋ฏธ์ง๋ฅผ ๊ธ์ ๋ค๋ก ๋ฐฐ์น
โญ opacity ๋์์๋ก ์ด๋ฏธ์ง๊ฐ ์ ๋ช
ํจ ๋ฎ์์๋ก ํฌ๋ช
๋ ์ฌ๋ผ๊ฐ
โญ ์ ์ด์ฟผ๋ฆฌ VS ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ
์ ์ด์ฟผ๋ฆฌ๊ฐ ํจ์ฌ ์งง๋ค ์ฝ๋๊ฐ ๊ทธ๋์ ๋ํํ
๋ ๋ ํธํ๊ฑฐ ๊ฐ๋ค
// 1.gnb Mouseover, Focus ๋ฐ์ค => span.bar $(function(){ $('.gnb li a').on('mouseenter focus', function(){ let bar = $(this).position().left; let widNum = $(this).width(); $('span.bar').css({'left': bar + 'px', 'width': widNum + 'px', 'opacity': 1}); }); $('.gnb li a').on('mouseleave', function(){ $('span.bar').css({'left': '0px', 'width': '0px', 'opacity': 0}); }); }); /* document.addEventListener('DOMContentLoaded', function () { const menuItems = document.querySelectorAll('.gnb li a'); const bar = document.querySelector('span.bar'); menuItems.forEach(item => { item.addEventListener('mouseenter', function () { const barLeft = this.offsetLeft; const barWidth = this.offsetWidth; bar.style.left = `${barLeft}px`; bar.style.width = `${barWidth}px`; bar.style.opacity = '1'; }); item.addEventListener('focus', function () { const barLeft = this.offsetLeft; const barWidth = this.offsetWidth; bar.style.left = `${barLeft}px`; bar.style.width = `${barWidth}px`; bar.style.opacity = '1'; }); item.addEventListener('mouseleave', function () { bar.style.left = '0px'; bar.style.width = '0px'; bar.style.opacity = '0'; }); }); }); */


3. ๋ธ๋๋ ํ์คํ ๋ฆฌ ํํธ ๋ง๋ค๊ธฐ
์์ ๋ฐ์ดํฐ ์์ฑํ๊ณ ์ถ๊ฐํ๊ธฐ
์ผ๋จ CSS ์์ค ํ๋ฉด


/* section ์์ .inner(๊ณตํต ๋์ด ๊ฐ์ด๋) .box(float) */ section .inner { width: 1320px; margin: auto; display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* ์์ ๊ฐ๊ฒฉ ์๋ ์ ๋ ฌ */ } section .inner .box { width: 50%; }
ํ๋ ์ค๋ง ์จ์ค๋ ์ฌ์ง ์์ผ๋ก ๊ธ์๊ฐ ๋ฐฐ์น๋จ
โญ ์์์์์ float ์ ์ฉํ๋ฉด ๋ถ๋ชจ ์์์ ๋์ด๊ฐ ์๊ฒ ๋จ
๊ทธ๋์ ๋ฐ๋์ float์ ์ธ ๋๋ ๋ถ๋ชจ ์์์ overflow: hidden ์ผ๋ก ๊ฐ์ธ์ฃผ์ด์ผ ํ๋ค.
์๋๋ฉด flex๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.



โญ div .box์ width ๊ฐ 660px์ธ๋ฐ ์์ ul ๋๋น๊ฐ ๋๋ฌด ์ข์
section .inner .box ul{ width: 85%; /* ๋ถ๋ชจ ์์(.box)์ ๋๋น์ 85% ๋งํผ ์์ํ๊ฒ ์ค์ */ border-top: 1px solid #e6e6e6; padding-top: 40px; }
โญ ์ฌ์ง ๋์ด๋ ๊ธ์จ ์์์ ์ด๋ ์๋ง์์ ๊น๋ํ์ง ์์
โญ read more ๋ฒํผ ๊ฐ์ด๋ฐ๋งํผ ๋จ์ด๋จ๋ฆฌ๊ธฐ
[์์ ์ ]

[์์ ํ]

4. Best Collections ์น์
css ์ ์ฉ ์ํ๊ณ html์ด๋ ์ฌ์ง๋ง ๋ฐฐ์นํ ์ํ



โญ ์ด๋ฏธ์ง์๋ text-align: center ; ์์ฑ ์ฌ์ฉ ๊ฐ๋ฅ
section.collection .inner .box .img { margin-top: 60px; text-align: center; }
โ ๋ง๋ค๋ฉด์ ์ฐพ์๋ณธ ๊ฒ
โญ Emmet ๋จ์ถํค ์๋์์ฑ
h100
+ Tab
: height: 100%; w100
+ Tab
: width: 100%; m0a
+ Tab
: margin: 0 auto; p20
+ Tab
: padding: 20px; bgc
+ Tab
: background-color: bd
+ Tab
: border: ; ta-c
+ Tab
: text-align: center; fw-b
+ Tab
: font-weight: bold;
div.header
+ Tab
: <div class="header"></div> div#main
+ Tab
: <div id="main"></div> ul>li*3
+ Tab
: <ul><li></li><li></li><li></li></ul>Shift + Alt + A
: ์ฌ๋ฌ ์ค ์ฃผ์ /* */
Ctrl
+ Alt
+ โ
(์๋ ํ์ดํ) ๋ฉํฐ์ปค์ Shift
+ Alt
+ I
์ ํํ ์ค ๋ชจ๋์ ์ปค์ Ctrl
+ D
(๊ฐ์ ๋จ์ด ํ๊บผ๋ฒ์ ์ ํ
์ธ ์ค์ ํ ๋ฒ์ ์
๋ ฅํ๋ ค๋ฉด?
Ctrl + Alt + โ (๋ฉํฐ ์ปค์ ๋ง๋ค๊ธฐ)
ul>li*3 ์
๋ ฅ ํ Tab ํค
๋ฒํผ์ ์ ๋๋ฉ์ด์
์ ์ ์ฉํ ๋ <b> ํ๊ทธ ์ฌ์ฉ
๋ฒํผ ์ ์ฒด๊ฐ ์๋๋ผ ํ
์คํธ ๋ถ๋ถ๋ง ์ ๋๋ฉ์ด์
์ผ๋ก ๋ณ๋ ์คํ์ผ
b ํ๊ทธ์ transform, opacity, animation ๋ฑ์ ์ ์ฉํด์ ํ
์คํธ๋ง ์์ง์ด๊ฒ ๋ง๋ค๊ธฐ
โญ top์์ -๊ฐ ์ฃผ๋ฉด ์๋ก ์ฌ๋ผ๊ฐ
โญ transform ๊ด๋ จ
transform: skewX(-15deg) translateX(5px);
- ์์๋ฅผ X์ถ ๊ธฐ์ค์ผ๋ก -15๋ ๊ธฐ์ธ์ฌ ์ผ์ชฝ์ผ๋ก ๋นํ๋ฆฐ ํจ๊ณผ๊ฐ ์๊ธด๋ค.
- ์์๋ฅผ X์ถ ๋ฐฉํฅ์ผ๋ก 5px ์ด๋ํ์ฌ ์ค๋ฅธ์ชฝ์ผ๋ก ์กฐ๊ธ ์ด๋ํ๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ์์๊ฐ ์ผ์ชฝ์ผ๋ก ๊ธฐ์ธ์ด์ง๋ฉด์ ์ฝ๊ฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์์น๊ฐ ์กฐ์ ๋๋ค.
โญ display: inline-block; ์ ์ฐ๋๊ฐ?
์ธ๋ผ์ธ ์์์ฒ๋ผ ๋์ํ์ง๋ง ๋ธ๋ก ์์์ ์์ฑ์ ๊ฐ์ง
๊ธฐ๋ณธ์ ์ผ๋ก inline ์์๋ width, height ์์ฑ์ ์ ์ฉํ ์ ์์
inline-block์ ์ฌ์ฉํ๋ฉด width, height์ ์ง์ ํ ์ ์์ด ์คํ์ผ์ ์กฐ์ ๊ฐ๋ฅ
์ฌ๋ฌ ์์๋ฅผ ๊ฐ๋ก๋ก ์ ๋ ฌํ๋ฉด์ ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ
block ์์์ฒ๋ผ ๊ฐ๋ณ ํฌ๊ธฐ ์กฐ์ ์ด ๊ฐ๋ฅํ๋ฉด์, inline์ฒ๋ผ ํ ์ค์ ์ฌ๋ฌ ๊ฐ ๋ฐฐ์น ๊ฐ๋ฅ
๋ฒํผ, ์์ด์ฝ, ๋ฉ๋ด ํญ๋ชฉ ๋ฑ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ฉด์ ๊ฐ๋ก ์ ๋ ฌํด์ผ ํ๋ ์์์ ๋ง์ด์ฌ์ฉํ๋ค.
โญ spanํ๊ทธ์ ์ค๋ฐ๊ฟ ํ๋ ๋ฒ
display์ block์์ ์ฃผ๋ฉด ๋๋ค
.tit span { display: block; }
โญ .moreBtn์์ before์ position: relative;๋ฅผ ์ฐ๋ ์ด์

::before์ ์ฌ์ฉํ ๋ position: relative;๋ฅผ ์ง์ ํ๋ ์ด์ ๋, ๋ณดํต ์์ ์์(::before)๋ฅผ ์ ํํ ์์น์ ๋ฐฐ์นํ๊ธฐ ์ํด ๊ธฐ์ค์ ์ญํ ์ ํ๋๋ก ์ค์ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ::before ๋๋ ::after๋ ๊ฐ์ ์์๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก position: static; ์ํ์ด๋ค.
๋ถ๋ชจ ์์์ธ .moreBtn์ position: relative;๋ฅผ ์ง์ ํ๋ฉด, ::before์ position: absolute;๋ฅผ ์ ์ฉํ ๊ฒฝ์ฐ, ๋ถ๋ชจ(.moreBtn)๋ฅผ ๊ธฐ์ค์ผ๋ก ์์น๊ฐ ์กฐ์ ๋๋ค.
โญ ๊ฐ์์์ before ์ธ ๋ ์ข์ธก ํจ๋ฉ ์ค (padding-left: 45px;)
์ผ์ชฝ์ 45px์ ์ฌ๋ฐฑ์ ์ถ๊ฐํด์, ๋ด์ฉ์ด ์ข ๋ ์ค๋ฅธ์ชฝ์์ ์์ํ๋๋ก ํจ.
๋ณดํต ::before์ ์์ด์ฝ์ฒ๋ผ ์ฌ์ฉํ๊ณ ์ถ์ ๋, ์ผ์ชฝ์ ์์ด์ฝ์ ๋ฐฐ์นํ ๊ณต๊ฐ์ ๋ง๋ค๊ธฐ ์ํด padding-left ์
โ padding-left: 45px; ๋๋ถ์, ๊ฐ์์์์ ํ
์คํธ๊ฐ ๊ฒน์น์ง ์์.
โญ transition: all 0.15s; ์ ๋๋ฉ์ด์
ํจ๊ณผ๋ฅผ 0.15์ด ๋์ ๋ถ๋๋ฝ๊ฒ ์ ์ฉํ๊ธฐ
์ฆ, transform: skewX(-15deg) translateX(5px);์ฒ๋ผ ๋ฒํผ์ด ๊ธฐ์ธ์ด์ง๊ณ ์ด๋ํ ๋
transition ๋๋ถ์ ์ฆ์ ๋ณํ์ง ์๊ณ ๋ถ๋๋ฝ๊ฒ ๋ณํํ๋ ํจ๊ณผ๊ฐ ์๊ธฐ๊ฒ ์ ์ฉํด์ฃผ์๋ค.
โ ๋ฒํผ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆด ๋ ์์ฐ์ค๋ฝ๊ฒ ์์ง์ด๋๋ก ์ค์ ํ๊ธฐ
โญ ํด๋์ค๋ช
๋์ด์ฐ๊ธฐ

section.journal์ ๋ถ์ฌ์ฐ์ง๋ง .scroll์ ๋ ์?
journal์ section์ ํด๋์ค๋ช
, scroll ํ์ div์ ํด๋์ค๋ช
<section class="journal"><div class="scroll">srcoll</div></secion>
๋์ด์ฐ๊ธฐ ์ฌ๋ถ์ ๋ฐ๋ผ ์ ํ ๋ฒ์๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒ
section์ด class="journal"์ผ ๋, ๊ทธ ์์ ์๋ .scroll ์์์๋ง ์ ์ฉ๋จ.
section.journal section ํ๊ทธ ์ค์์ class="journal"์ ๊ฐ์ง ์์ ์ ํ
.scroll class="scroll"์ด ์๋ ๋ชจ๋ ์์ ์ ํ
section.journal .scroll class="journal"์ธ section ๋ด๋ถ์ ์๋ class="scroll" ์์ ์ ํ
โญ ์คํฌ๋กค ๋ฒํผ ๋ง๋ค๋ writing-mode: vertical-rl
vs writing-mode: vertical-lr



โญ ์ด์ ์์ฐ๋ float์ ์ต์ ํธ๋ ๋ flex๋น๊ต
float์ ํด๋น ์์์ ๋จน์
flex๋ ๋ถ๋ชจ ์์์ display: flex;
/* section ์์ .inner(๊ณตํต ๋์ด ๊ฐ์ด๋) .box(float) */ section .inner { width: 1320px; margin: auto; overflow: hidden; } section .inner .box { float: left; width: 50%; }
section .inner { width: 1320px; margin: auto; display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* ์์ ๊ฐ๊ฒฉ ์๋ ์ ๋ ฌ */ } section .inner .box { width: 50%; }