woalsrhKR
EVERYDAY
woalsrhKR
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“š ๊ธ€ ๋ชจ์Œ์ง‘ (578)
    • ๐Ÿ”ค Language (84)
      • ๐ŸŸจ JavaScript (52)
      • ๐ŸŸฆ TypeScript (12)
      • ๐Ÿ’— SCSS (0)
      • ๐ŸŸ  HTML (12)
      • ๐Ÿ”ต CSS (8)
    • ๐ŸŒƒ ํ•˜๋ฃจ๊ธฐ๋ก (469)
    • ๐ŸŽฌ ์˜ํ™” ๊ฐ์ƒํšŒ (1)
    • ๐Ÿ’ป Web Develop (16)
      • โ˜•๏ธ STARBUCKS ๊ฐœ๋ฐœ์ผ์ง€ (14)
    • ๐ŸŽ“ University (6)
      • ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ (5)
      • ์ •๋ณดํ†ต์‹ ๊ฐœ๋ก  (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์—ฌ์ž์นœ๊ตฌ
  • ์ผ์ƒ
  • ์ƒ๋Œ€๊ฒฝ๋กœ
  • ํด๋ก 
  • ๊ฐ์ฒด
  • ์ ˆ๋Œ€๊ฒฝ๋กœ
  • 79๋Œ€ํฌ
  • ์ง„์‹๋‹น
  • ๋‹ค์ด์†Œ์‚ฌ์ฐฝ
  • ์•„์ด์ฝ˜
  • ํŒŒ๋น„์ฝ˜
  • ์Šคํƒ€๋ฒ…์Šค
  • ์‚ฌ์ฐฝ
  • ๋‹ค์ด์†Œ
  • ์˜คํ”ˆ๊ทธ๋ž˜ํ”ผ
  • object
  • ํŠธ์œ„ํ„ฐ์นด๋“œ
  • ์ผ๊ธฐ
  • ๋ฉ”๊ฐ€์ปคํ”ผ
  • ํฐํŠธ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
woalsrhKR

EVERYDAY

2. ์Šคํƒ€๋ฒ…์Šค ๋กœ๊ณ , header, ์„œ๋ธŒ๋ฉ”๋‰ด, ๊ฒ€์ƒ‰
๐Ÿ’ป Web Develop/โ˜•๏ธ STARBUCKS ๊ฐœ๋ฐœ์ผ์ง€

2. ์Šคํƒ€๋ฒ…์Šค ๋กœ๊ณ , header, ์„œ๋ธŒ๋ฉ”๋‰ด, ๊ฒ€์ƒ‰

2022. 2. 2. 18:13

๋กœ๊ณ (Logo)

๋กœ๊ณ ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๋ฉด

      <a href="/" class="logo">
        <img src="./images/starbucks_logo.png" alt="STARBUCKS" />
      </a>

๋กœ๊ณ ๋Š” a ํƒœ๊ทธ๋กœ img ํƒœ๊ทธ๋ฅผ ๋ฌถ์–ด์„œ ๋กœ๊ณ ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ˜„์žฌ ํŽ˜์ด์ง€๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค.

aํƒœ๊ทธ์— ์žˆ๋Š” '/'์˜ ์˜๋ฏธ

- '/'๋Š”ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

logo์— ์ ์šฉ๋˜๋Š” CSS ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

img {
  display: block;
}
a {
  text-decoration: none;
}

img ํƒœ๊ทธ๋ฅผ ์ธ๋ผ์ธ ์š”์†Œ๊ฐ€ ์•„๋‹Œ ๋ธ”๋ก ์š”์†Œ๋กœ ๋งŒ๋“ค๊ณ  ์ƒํ•˜์ขŒ์šฐ ๋ณ€๊ฒฝ์ด ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

block : ํ•œ ์ค„ ๋ชจ๋‘ ์ฐจ์ง€

inline : ์ฝ˜ํ…์ธ  ํฌ๊ธฐ ๋งŒํผ๋งŒ ์ฐจ์ง€

 

a ํƒœ๊ทธ๋Š” ์›๋ž˜ ๋ฐ‘์ค„์ด ์ƒ๊ธฐ์ง€๋งŒ ๋ฐ‘์ค„์„ ์—†์• ๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

 

logo ํด๋ž˜์Šค์— ์ ์šฉ๋˜๋Š” CSS๋ฅผ ์‚ดํŽด๋ณด๋ฉด

header .logo {
  height: 75px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}

์„ธ๋กœ๋Š” 75px์ด๊ณ  inner ํด๋ž˜์Šค๋ฅผ ๋ถ€๋ชจ ์š”์†Œ๋กœ ๋‘ฌ์„œ inner๋ฅผ ๊ธฐ์ค€์œผ๋กœ

top:0, bottom:0, left:0์— margin: auto๋กœ ํ•˜์—ฌ ๊ฐ€์šด๋ฐ ์ •๋ ฌํ•˜๊ณ  ์™ผ์ชฝ์— ๋กœ๊ณ ๊ฐ€ ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.


CSS ํ—ค๋” & inner

์ด๋ฒˆ์—๋Š” header ์•„๋ž˜์—์„œ ๊ตฌ์„ฑํ•˜๋Š” ๋Œ€๋ถ€๋ถ„ ์š”์†Œ๋ฅผ inner class๋กœ ๋ฌถ๋Š”๋‹ค.

.inner {
  width: 1100px;
  margin: 0 auto;
  position: relative;
}

inner ํด๋ž˜์Šค์˜ css ์†์„ฑ์„ ๋ณด๋ฉด 

๊ฐ€๋กœ๋Š” 1100px, margin์€ 0 auto๋กœ ํ•˜์—ฌ ๊ฐ€์šด๋ฐ ์ •๋ ฌ์„ ํ•˜๊ณ 

position์„ relative๋กœ ํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ž๊ธฐ ์ž์‹  ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.

์ž์‹ ์š”์†Œ๋“ค์€ inner๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žก์„ ๊ฒƒ์ด๋‹ค.

 

/* HEADER */
header {
  background-color: #f6f5f0;
  border-bottom: 1px solid #c8c8c8;
}
header > .inner { 
  /* 1๋‹จ inner๋งŒ */
  height: 120px;
}

HEADER๋ผ๋Š” ์ฃผ์„์„ ๋‹ฌ์•„์ค˜์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ด๋„ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  header > .inner๋ž€ 1๋‹จ inner๋งŒ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ฐ”๋กœ ์•„๋ž˜ inner ํด๋ž˜์Šค๋งŒ ์„ธ๋กœ 120px์„ ์ ์šฉํ•˜๋ผ๋Š” ์ฝ”๋“œ์ด๋‹ค.

#f6f5f0์˜ ์ƒ‰์ƒ์ด 1๋‹จ์„ ์ฐจ์ง€ํ•œ๋‹ค.

 


์Šคํƒ€๋ฒ…์Šค ํ—ค๋” ์„œ๋ธŒ๋ฉ”๋‰ด 

 

์Šคํƒ€๋ฒ…์Šค ํ—ค๋” ์„œ๋ธŒ๋ฉ”๋‰ด html

      <div class="sub-menu">
        <ul class="menu">
          <li>
            <a href="/signin">Sign In</a>
          </li>
          <li>
            <a href="javascript:void(0)">My Starbucks</a>
          </li>
          <li>
            <a href="javascript:void(0)">Customer Service & Ideas</a>
          </li>
          <li>
            <a href="javascript:void(0)">Find a Store</a>
          </li>
        </ul>
        <div class="search">
          <input type="text" />
          <div class="material-icons">search</div>
        </div>
      </div>

ํ—ค๋” ์„œ๋ธŒ ๋ฉ”๋‰ด์˜ html์ด๋‹ค. 

์„œ๋ธŒ๋ฉ”๋‰ด๋Š” ์•„๋ž˜ ์‚ฌ์ง„์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

์ด ๋ถ€๋ถ„์ด ์„œ๋ธŒ ๋ฉ”๋‰ด์ด๋‹ค.

ul ํƒœ๊ทธ๋กœ li ํƒœ๊ทธ๋ฅผ ๋ฌถ๊ณ  li ํƒœ๊ทธ๋Š” a ํƒœ๊ทธ๋ฅผ ๋ฌถ์–ด ๊ฐ๊ฐ์˜ ์„œ๋ธŒ๋ฉ”๋‰ด ์•ˆ์œผ๋กœ ์ด๋™ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.

aํƒœ๊ทธ์•ˆ์— ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๋กœ๊ทธ์ธํ•˜๋Š” Sign In ์„œ๋ธŒ๋ฉ”๋‰ด๋Š” ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ณ 

๋‚˜๋จธ์ง€ ์„œ๋ธŒ๋ฉ”๋‰ด๋Š” ๋งŒ๋“ค์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ํ™ˆํŽ˜์ด์ง€๋Š” ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— javascript:void(0)์„ ๊ฒฝ๋กœ์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.

javascript:void(0)

a ํƒœ๊ทธ์˜ ๋””์ž์ธ์„ฑ์€ ์‚ด๋ฆฌ๋ฉด์„œ ๋งํฌ ๊ธฐ๋Šฅ์€ ์—†์•ค ๊ฒƒ์ด๋‹ค.

javascript:void(0) ๋Œ€์‹  #์„ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.


์Šคํƒ€๋ฒ…์Šค ํ—ค๋” ์„œ๋ธŒ๋ฉ”๋‰ด CSS

header .sub-menu {
  position: absolute;
  top: 10px;
  right: 0;
  display: flex;
}

์„œ๋ธŒ๋ฉ”๋‰ด๋Š” ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

ํ—ค๋”์—์„œ ์œ„๋กœ 10px, ์˜ค๋ฅธ์ชฝ์œผ๋กœ 0๋งŒํผ ๋„์–ด๋†“๊ณ  ์œ„์น˜์— ์„œ๋ธŒ๋ฉ”๋‰ด๋ฅผ ๋†“๋Š”๋‹ค.

display:flex๋ฅผ ํ•˜์—ฌ ์„œ๋ธŒ๋ฉ”๋‰ด๋Š” ์ˆ˜ํ‰์ •๋ ฌ์„ ํ•œ๋‹ค.

header .sub-menu ul.menu {
  font-family: Arial, sans-serif;
  display: flex;
}
header .sub-menu ul.menu li {
  position: relative;
}
header .sub-menu ul.menu li::before {
  content: "";
  width: 1px;
  height: 12px;
  background-color: #e5e5e5;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
}
header .sub-menu ul.menu li:first-child:before {
  display: none;
}
header .sub-menu ul.menu li a {
  font-size: 12px;
  padding: 11px 16px;
  display: block;
  color: #656565;
}
header .sub-menu ul.menu li a:hover {
  color: #000;
}
header .sub-menu ul.menu {
  font-family: Arial, sans-serif;
  display: flex;
}

๋‚˜๋ˆ”๊ณ ๋”•์„ ์ด ์›นํŽ˜์ด์ง€์˜ ๊ธฐ๋ณธ ํฐํŠธ๋กœ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ 

์„œ๋ธŒ๋ฉ”๋‰ด๋Š” ๋‚˜๋ˆ”๊ณ ๋”•๊ณผ ์–ด์šธ๋ฆฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Arial ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  display: flex๋ฅผ ํ•˜์—ฌ ์ˆ˜ํ‰์ •๋ ฌํ•˜์˜€๋‹ค.

header .sub-menu ul.menu li {
  position: relative;
}
header .sub-menu ul.menu li::before {
  content: "";
  width: 1px;
  height: 12px;
  background-color: #e5e5e5;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
}

li ํƒœ๊ทธ๋Š” absolute๋กœ ํ•˜์—ฌ ๋ถ€๋ชจ์š”์†Œ๋ฅผ  ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.

li ํƒœ๊ทธ ์•ž์— ์ž‘์€ ๊ตฌ๋ถ„์„ ์ด ์žˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด

content๋Š” ๊ณต๋ฐฑ์œผ๋กœ ํ•ด๋†“๊ณ , ๊ฐ€๋กœ 1px, ์„ธ๋กœ 12px์งœ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค.

์ƒ‰์€ #e5e5e5๋กœ ํ•˜๊ณ 

position์„ ์ž๊ธฐ๋กœ ๊ธฐ์ค€์„ ์‚ผ๋Š”๋‹ค.

์œ„์•„๋ž˜ 0๋งŒํผ ๊ณต๋ฐฑ์„ ์ฃผ๊ณ  ์œ„์•„๋ž˜ ๊ฐ€์šด๋ฐ๋กœ ์ •๋ ฌ์„ ์ฃผ์—ˆ๋‹ค.

 

header .sub-menu ul.menu li:first-child:before {
  display: none;
}

ํ•˜์ง€๋งŒ ์ฒซ๋ฒˆ์งธ ์š”์†Œ์—๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์ด๋Ÿฌํ•œ ์š”์†Œ๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๋ ค๊ณ 

display:none์„ ์ ์šฉํ–ˆ๋‹ค.

Sign In ์•ž์—๋Š” ๊ตฌ๋ถ„์„ ์ด ์—†์–ด์กŒ๋‹ค.

header .sub-menu ul.menu li a {
  font-size: 12px;
  padding: 11px 16px;
  display: block;
  color: #656565;
}

a ํƒœ๊ทธ๋Š” ๊ธ€์ž์˜ ์†์„ฑ์„ ๋‹ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์—

font-size๋Š” 12px, ๊ธ€์ž ์ธ๋ผ์ธ ์š”์†Œ์— 11px, 16px๋งŒํผ ์—ฌ์œ ๋ฅผ ์ฃผ๊ณ 

display๋ฅผ ๋ธ”๋ก์š”์†Œ๋กœ ํ•œ๋‹ค.

๊ธ€์ž์ƒ‰์€ #656565๋กœ ํ•œ๋‹ค.

header .sub-menu ul.menu li a:hover {
  color: #000;
}

hover ์„ ํƒ์ž๋Š” ์š”์†Œ๋ฅผ ๋งˆ์šฐ์Šค์— ์˜ฌ๋ ธ์„ ๋•Œ ๋ฐ˜์‘ํ•˜๋Š” ์š”์†Œ์ด๋‹ค.

๊ธ€์ž ์ƒ‰์ด #656565์˜€๋Š”๋ฐ #000 ์ฆ‰, ๊ฒ€์€์ƒ‰์œผ๋กœ ๋ฐ”๋€๋‹ค.


์Šคํƒ€๋ฒ…์Šค ํ—ค๋” ์„œ๋ธŒ๋ฉ”๋‰ด ๊ฒ€์ƒ‰ html

        <div class="search">
          <input type="text" />
          <div class="material-icons">search</div>
        </div>

์„œ๋ธŒ๋ฉ”๋‰ด ์•ˆ์— ์žˆ๋Š” ๊ฒ€์ƒ‰ ์•„์ด์ฝ˜๊ณผ ๊ฒ€์ƒ‰์ฐฝ์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค.

search๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๊ณ  input type์„ text๋กœ ํ•˜์—ฌ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•œ๋‹ค.

material-icons ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๊ณ  ์•ˆ์— search๋ฅผ ๋„ฃ์œผ๋ฉด

๊ฒ€์ƒ‰ ์•„์ด์ฝ˜์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

์œ„ ์ฝ”๋“œ์— ์•„์ด์ฝ˜์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ผ๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค ์•ˆ์— ๊ธ€์ž๋ฅผ ๊ณ„์† ๋ฐ”๊พธ๋ฉด ๊ตฌ๊ธ€ ์•„์ด์ฝ˜ ์‚ฌ์ดํŠธ์•ˆ์— ์žˆ๋Š”

์•„์ด์ฝ˜๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.


์Šคํƒ€๋ฒ…์Šค ํ—ค๋” ์„œ๋ธŒ๋ฉ”๋‰ด ๊ฒ€์ƒ‰ CSS

header .sub-menu .search {
  height: 34px;
  position: relative;
}

search ํด๋ž˜์Šค๋Š” ์„ธ๋กœ๋กœ 34px, ํฌ์ง€์…˜์€ ๋ถ€๋ชจ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํด๋ฆญ์„ ํ–ˆ์„ ๋•Œ ๊ธ€์ž๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ํฌ๊ธฐ๊ฐ€ ์ž‘๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋งˆ์šฐ์Šค ํด๋ฆญ์„ ํ–ˆ์„ ๋•Œ ๋ณ€ํ™”๋ฅผ ๋”ฐ๋กœ css ์†์„ฑ์„ ์ž…๋ ฅํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

header .sub-menu .search input {
  width: 36px;
  height: 34px;
  padding: 4px 10px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  border-radius: 5px;
  outline: none;
  background-color: #fff;
  color: #777;
  font-size: 12px;
  transition: width .4s;
}

input ์š”์†Œ๋Š” ๊ฐ€๋กœ 36px, ์„ธ๋กœ 34px์ด๊ณ 

์ธ๋ผ์ธ ์š”์†Œ๋Š” padding์„ ์ด์šฉํ•ด ์œ„์•„๋ž˜ 4px, ์ขŒ์šฐ 10px ์—ฌ๋ฐฑ์„ ์ค€๋‹ค.

ํ…Œ๋‘๋ฆฌ๋Š” 1px solid๋กœ ์ƒ‰์€ #ccc๋กœ ํ•œ๋‹ค.

box-sizing์€ border-box๋กœ ํ•˜์—ฌ 

border-box๊นŒ์ง€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.

ํ…Œ๋‘๋ฆฌ๋Š” radius 5px๋กœ ์„ค์ •ํ•˜์—ฌ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๊ณ 

outline: border์˜ ๋ฐ”๊นฅ ํ…Œ๋‘๋ฆฌ๋ฅผ ์˜๋ฏธํ•˜๋Š”๋ฐ ์ด ๋ฐ”๊นฅ ํ…Œ๋‘๋ฆฌ๋ฅผ ์—†์ด ํ•œ๋‹ค.

๋ฐฐ๊ฒฝ: #fff

ํ†ตํ•ฉ๊ฒ€์ƒ‰์ด ๋‚˜์˜ฌ ๊ธ€์”จ ์ƒ‰์€ #777๋กœ ํ•œ๋‹ค.

font-size๋Š” 12px๋กœ ํ•œ๋‹ค.

ํด๋ฆญ์„ ํ–ˆ์„ ๋•Œ ๊ฐ€๋กœ๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š” ์†๋„๋Š” 0.4s๋กœ ํ•œ๋‹ค.

 

header .sub-menu .search input:focus {
  width: 190px;
  border-color: #669900;
}

ํด๋ฆญ์„ ํ–ˆ์„ ๋•Œ ๊ฐ€๋กœ ๊ธธ์ด๋Š” 190px๊นŒ์ง€ ๋Š˜๋ฆฌ๊ณ 

border ์ƒ‰์€ #669900์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.


์Šคํƒ€๋ฒ…์Šค ํ—ค๋” ์„œ๋ธŒ๋ฉ”๋‰ด ๊ฒ€์ƒ‰ JS

const searchEl = document.querySelector('.search');
const searchInputEl = searchEl.querySelector('input');

searchEl.addEventListener('click', function () {
  searchInputEl.focus();
});

searchInputEl.addEventListener('focus', function () {
  searchEl.classList.add('focused');
  searchInputEl.setAttribute('placeholder', 'ํ†ตํ•ฉ๊ฒ€์ƒ‰');
});

searchInputEl.addEventListener('blur', function () {
  searchEl.classList.remove('focused');
  searchInputEl.setAttribute('placeholder', '');
});

JS๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธ€์”จ์™€ ์•„์ด์ฝ˜์ด ๊ฐ™์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ผ๋‹จ searchEl์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์„œ์—์„œ search ํด๋ž˜์Šค๋ฅผ ์ฐพ๋Š”๋‹ค.

searchInputEl์€ searchEl์—์„œ input ํƒœ๊ทธ๋ฅผ ์ฐพ๋Š”๋‹ค. 

๋ฌธ์„œ์—์„œ ์ฐพ๊ฒŒ ๋˜๋ฉด ์ค‘๋ณต ์ ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— searchEl๋กœ ๋ฒ”์œ„๋ฅผ ์ค„์—ฌ๋†“๊ณ  ์ฐพ์€ ๊ฒƒ์ด๋‹ค.

 

addEventListener์„ ์ด์šฉํ•˜์—ฌ ํด๋ฆญ์„ ํ•˜๋ฉด focus๋ฅผ ์ฐพ๊ฒŒ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.

 

classList.add๋ฅผ ์ด์šฉํ•˜์—ฌ

focus๊ฐ€ ๋งž์ถฐ์ง€๋ฉด focused๋ฅผ ํด๋ž˜์Šค ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•˜๋ฉด ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด

์‚ฌ์ง„ 1์—์„œ๋Š” class๊ฐ€ search์˜€์ง€๋งŒ focus ์ƒํƒœ์—์„œ๋Š” focused๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ focus๊ฐ€ ์•ˆ๋งž์ถฐ์ง„ ์ƒํƒœ๋Š” blur๊ณ  ๊ทธ ์ƒํƒœ์—์„œ๋Š”

classList.remove๋ฅผ ์ด์šฉํ•˜์—ฌ focused๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์ด ์—†์–ด์ง„๋‹ค.

๊ทธ๋ฆฌ๊ณ  focus ์ƒํ™ฉ์—์„œ ๋ณด์ด๋˜ ํ†ตํ•ฉ๊ฒ€์ƒ‰๋„ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

์ด์ฒ˜๋Ÿผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธ€์ž์™€ ์•„์ด์ฝ˜์ด ์ค‘๋ณต๋˜์–ด ๋ณด์˜€๋˜  ํ˜„์ƒ์ด ์—†์–ด์กŒ๋‹ค.

 

๋‹ค์Œ ๊ธ€์€ ๋ฉ”์ธ ๋ฉ”๋‰ด์— ๋Œ€ํ•œ ๊ธ€์ด๋‹ค.

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ’ป Web Develop > โ˜•๏ธ STARBUCKS ๊ฐœ๋ฐœ์ผ์ง€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

6. ์Šคํƒ€๋ฒ…์Šค ์š”์†Œ ์Šฌ๋ผ์ด๋“œ  (0) 2022.02.05
5. ์Šคํƒ€๋ฒ…์Šค ์ˆœ์ฐจ์  ์• ๋‹ˆ๋ฉ”์ด์…˜  (0) 2022.02.04
4. ์Šคํƒ€๋ฒ…์Šค ์ „์—ญ๋ฐฐ์ง€(GSAP)  (0) 2022.02.04
3. ์Šคํƒ€๋ฒ…์Šค ๋ฉ”์ธ๋ฉ”๋‰ด  (0) 2022.02.03
1. ๊ฐœ๋ฐœ ์‹œ์ž‘ ๋ฐ ๊ธฐ๋ณธ ์„ค์ • css ์ดˆ๊ธฐํ™”, ํฐํŠธ ์„ค์ •, ์•„์ด์ฝ˜ ์„ค์ •  (0) 2022.02.02
    '๐Ÿ’ป Web Develop/โ˜•๏ธ STARBUCKS ๊ฐœ๋ฐœ์ผ์ง€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • 5. ์Šคํƒ€๋ฒ…์Šค ์ˆœ์ฐจ์  ์• ๋‹ˆ๋ฉ”์ด์…˜
    • 4. ์Šคํƒ€๋ฒ…์Šค ์ „์—ญ๋ฐฐ์ง€(GSAP)
    • 3. ์Šคํƒ€๋ฒ…์Šค ๋ฉ”์ธ๋ฉ”๋‰ด
    • 1. ๊ฐœ๋ฐœ ์‹œ์ž‘ ๋ฐ ๊ธฐ๋ณธ ์„ค์ • css ์ดˆ๊ธฐํ™”, ํฐํŠธ ์„ค์ •, ์•„์ด์ฝ˜ ์„ค์ •
    woalsrhKR
    woalsrhKR

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”