[๐Ÿ’ป] ์‹ค์Šต - NEVER

J-silverยท2022๋…„ 8์›” 29์ผ

web-project

๋ชฉ๋ก ๋ณด๊ธฐ
5/18
post-thumbnail

๐Ÿ“– Overview

์‚ฌ์ดํŠธ๋ช…: ๋„ค์ด๋ฒ„
์ž‘์—… ๊ธฐ๊ฐ„: 3์ผ ์†Œ์š”
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: -
์œ ํ˜•: PC ์ ์‘ํ˜•, ํด๋ก  ์ฝ”๋”ฉ
์ฐธ์—ฌ๋„: 100%

๐Ÿ‘€ Check-point

  • ์‹œ๋ฉ˜ํ‹ฑ๋งˆํฌ์—…์ด๋ž€?
  • ์ข‹์€ ํด๋ž˜์Šค๋ช… ์ž‘์„ฑ๋ฒ•์€?
  • ํƒญ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ํ™œ์„ฑํ™”๋˜์–ด ์Šฌ๋ผ์ด๋“œ์˜ ์ฒด์ธ์ง€
  • ๊ฒฝ๋กœ์žก๋Š” ๋ฐฉ๋ฒ•์ด๋ž€?
  • ir,is๊ธฐ๋ฒ•์ด๋ž€?
  • img์™€ background๋Š” ์–ธ์ œ ์“ฐ๋Š”๊ฒŒ ์ข‹์„๊นŒ?

float์„ ์ด์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์ œ์ž‘


๐Ÿ”‘ ๊ฐœ๋ฐœ์ž๋ชจ๋“œ

ctrl + shift + i โ†’ ํฌ์ปค์Šค๊ฐ€ ์—†๋Š”์ฑ„๋กœ ๊ฐœ๋ฐœ์ž๋ชจ๋“œ์—ด๋ฆผ
ctrl + shift + c โ†’ ํฌ์ปค์Šค๊ฐ€ ์žกํžŒ์ฑ„๋กœ ๋ฐ”๋กœ ์„ ํƒ๊ฐ€๋Šฅ


โœ semantic markup

๊ธฐ์–ต ์•ˆ๋‚œ๋‹ค๋ฉด ์‹œ๋ฉ˜ํ‹ฑํƒœ๊ทธ ์ •๋ฆฌ ๋‹ค์‹œ๋ณด๊ธฐ

โ•ฐ (๐Ÿ”ด'โ—ก'๐Ÿ”ด)๐Ÿ’ฌ

์ฒ˜์Œ์— ๋งˆํฌ์—…์‹œ div๋กœ๋งŒ ๋งˆํฌ์—…์„ ๊ตฌ์„ฑํ•˜์˜€๋‹ค.
header, main, footer๋ฟ ์ œ๋Œ€๋กœ๋œ ๋งˆํฌ์—…์„ ํ•˜์ง€ ๋ชปํ•˜์˜€๋‹ค.
div๋กœ ์ž‘์—…ํ•˜๋Š”๊ฒŒ ๋” ๋น ๋ฅธ๊ฑฐ ์•„๋‹Œ๊นŒ??
ํ•˜์ง€๋งŒ

์ด์ œ๋Š” ํƒœ๊ทธ์ž์ฒด์— ์˜๋ฏธ๊ฐ€์žˆ๋Š” ์‹œ๋ฉ˜ํ‹ฑํƒœ๊ทธ๋กœ ๋งˆํฌ์—…๊ตฌ์„ฑ์„ ํ•ด์•ผํ•œ๋‹ค.

SEO ์ตœ์ ํ™”์— ์œ ๋ฆฌ.
์›น ์ ‘๊ทผ์„ฑ์— ํšจ์œจ์ 
์œ ์ง€๋ณด์ˆ˜์˜ ์šฉ์ด์„ฑ

์›น ์ ‘๊ทผ์„ฑ์— ํšจ์œจ์ ์ด๋ ค๋ฉด ์ง€์ผœ์•ผํ•œ๋‹ค!!!



๐Ÿ“Œ ํด๋ž˜์Šค๋ช… ์ž‘์„ฑ๋ฒ•

ํด๋ž˜์Šค๋ช…์€ ํ†ต์ผ์„ฑ ์žˆ๊ฒŒ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค.

โ—ผ ์˜๋ฏธ์—†๋Š” ์˜์—ญ ๊ตฌ์„ฑ

  • group-flex
  • column-left, column-right
  • col-left ,col-right
  • row-top , row-bottom
    .
    .
    .

โ—ผ ์˜๋ฏธ์žˆ๋Š” ์˜์—ญ ๊ตฌ์„ฑ

ํด๋ž˜์Šค๋ช…์„ ์ง€์„๋•Œ๋Š” ๊ฐ€์žฅ ํ•ต์‹ฌ์ด๋ผ๊ณ  ๋ณด์—ฌ์ง€๋Š” ๊ฑธ ์˜์—ญ ์ด๋ฆ„์œผ๋กœ ์ง ๋‹ค.
ex) logo-area , gnb-area

section-event [sc-event]
event-area โ€” ์˜์—ญ์žก์•„์ค„๋•Œ [์„น์…˜๊ธ‰์ด์•„๋‹ˆ๋ผ๋ฉด area๋ถ€ํ„ฐ ์‹œ์ž‘]
event-wrap โ€” ์ž‘์€๋‹จ์œ„
event-box โ€” ๋”์ž‘์€๋‹จ์œ„

โ—ผ ๋ฆฌ์ŠคํŠธ ํด๋ ˆ์Šค ์ž‘์„ฑ

ul โ†’ event-list (๋ถ€๋ชจ)
li โ†’ event-item (์ž์‹)

โ—ผ ๋ชฉ์ ์— ๋งž๋Š” ํด๋ž˜์Šค (aํด๋ž˜์Šค)

link โ†’ ๋งํฌ ์ด๋™์ด ๋ชฉ์ 
btn (๋”๋ณด๊ธฐ) โ†’ ๋งํฌ์ด๋™(x) ์Šคํฌ๋ฆฝํŠธ ์ž‘๋™(o)

โ—ผ ํด๋ž˜์Šค css ์‚ฌ์šฉ์‹œ ์ฃผ์˜์‚ฌํ•ญ

4๋‹จ๊ณ„์ด์ƒ์˜ ์ƒ์†์€ ์‚ฌ์‹ค์ƒ ์˜๋ฏธ๋„์—†๊ณ  ์˜ˆ์ œ1์ฒ˜๋Ÿผ ์“ฐ๊ฒŒ๋˜๋ฉด ์ถ”ํ›„ ์ž์‹ ์š”์†Œ ๊ฒน์นจ์ด ์ผ์–ด๋‚ ์ˆ˜์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•˜์ž!

[์˜ˆ์ œ1]
.section-event ul{} [x]
.section-event ul li{} [x]
.section-event ul li a{} [x]
.section-event ul li a img{} [x]
[์˜ˆ์ œ2]
.section-event .event-list{} [O]
.section-event .event-item{}[O]
.section-event .link-item{}[O]
.section-event .link-item img{}[O]

์„ ํƒ์ž๋ฅผ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋๋‚ผ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค!


๐Ÿ’ก๐Ÿค” ์—ฐ๊ด€์„ฑ์ด ์—†๋Š”์• ๋“ค ํด๋ž˜์Šค๋Š”์š”??

[๊ทธ๋ฆผ1]

[๊ทธ๋ฆผ2]

๊ทธ๋ฆผ1,2๋ฒˆ ์ฒ˜๋Ÿผ ์„œ๋กœ ์—ฐ๊ด€์„ฑ์—†๋Š” ๋‹จ์ˆœ ๋””์ž์ธ ๋ฌถ์Œ์ผ๋•Œ ์ด๋ฆ„์ด ๊ฐ™๊ณ  ์œ„์•„๋ž˜ ์—ฌ๋ฐฑ์„ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ์ค˜์•ผํ•œ๋‹ค๋ฉด ํด๋ž˜์Šค ์ด๋ฆ„์„ ์ฃผ๊ธฐ ๋„ˆ๋ฌด ์–ด๋ ต๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด!!

๐Ÿ‘Œ๐Ÿ˜† ํ•ด๊ฒฐ๋ฐฉ์•ˆ

  • group-flex1, group-flex2
  • inner1, inner2
  • group-row

๋“ฑ๋“ฑ์œผ๋กœ ์ˆซ์ž๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ์„œ ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

๋‹จ์ˆœ ์œ„์•„๋ž˜ ์—ฌ๋ฐฑ์„์œ„ํ•ด์„œ ๋งŒ๋“  ํƒœ๊ทธ๋‹ˆ๊นŒ!!


โœ css ํŒŒ์ผ ๊ตฌ์กฐ/๋ช…

assets(์œ ์‚ฐ) - ์‚ฌ์ดํŠธ์— ํ•„์š”ํ•œ ์ค€๋น„๋ฌผ / css, img, jq...

  • reset.css - ์ดˆ๊ธฐํ™” ํฐ ๋„ํ™”์ง€๋ฅผ ๋งŒ๋“œ๋Š”๋А๋‚Œ ( reset ๊ธฐ๋ณธ ์†Œ์Šค)
  • common.css - ๊ณตํ†ต์œผ๋กœ ์“ฐ์ด๋Š” ์˜์—ญ! ์–ด๋””์„œ๋“  ์“ฐ์ด๋Š”๊ณณ๋“ค
    ex) blind
  • layout.css - ํฐ ๊ตฌ์กฐ๋ฌผ (ํฐํ‹€) ํ—ค๋”,ํ‘ธํ„ฐ๋ฅผ ๊ณตํ†ต์œผ๋กœ ๊พธ๋ฉฐ๋†“๋Š”๋‹ค. -> body์— ๋Œ€ํ•œ์Šคํƒ€์ผ๋„
  • main.css -> ๋ฉ”์ธ๋ฉ”์ด์ง€๋งŒ์„ ์œ„ํ•œ css
  • style.css -> mainํŽ˜์ด์ง€๊ฐ€ ์•„๋‹๊ฒฝ์šฐ ๋ถˆ๋Ÿฌ์˜ค๋Š”์šฉ๋„ ๋ชจ๋“ ์„œ๋ธŒํŽ˜์ด์ง€ ์Šคํƒ€์ผ

โœ @import

layout.css์— reset, common css๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๊ณ  main์— ๋งํฌ ์—ฐ๊ฒฐ์„ ํ•œ๋‹ค.

โ— ์ฃผ์˜ํ• ์ 

๋ฐ˜๋“œ์‹œ ์ˆœ์„œ reset, common๋ฅผ ์ง€์ผœ์ค˜์•ผํ•œ๋‹ค.

<link rel="stylesheet" href="./assets/css/layout.css">

โœ ๊ฒฝ๋กœ์žก๋Š” ๋ฐฉ๋ฒ•(์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ ๊ธฐ์ค€)

  • ๊ฐ™์€ ๋ ˆ๋ฒจ(ํด๋”)์— ์žˆ์„๋•Œ - ./ํŒŒ์ผ๋ช…
  • ์ƒ์œ„๋ ˆ๋ฒจ์— ์žˆ์„๋•Œ - ../
  • ํ•˜์œ„๋ ˆ๋ฒจ์— ์žˆ์„๋•Œ - /ํด๋”๋ช…
    ex)โ€œ../(์ƒ์œ„)ํด๋”๋ช…/(์•ˆ์—)์ด๋ฆ„.jpgโ€ altโ€œ๋Œ€์ฒด๋งโ€
  • ํด๋” ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐˆ๋•Œ๋Š” / ์‚ฌ์šฉ



โœ ํ…์ŠคํŠธ ์„ ํƒ์ž

strong : ๋ฌธ์žฅ๊ฐ•์กฐ ๊ฒŒ์‹œ๊ธ€์—์„œ ์ œ๋ชฉ๊ธ‰
em: ๋‹จ์–ด๊ฐ•์กฐ ๊ฒŒ์‹œ๊ธ€์ด๋ผ๊ณ ํ•˜๋ฉด ์นดํ…Œ๊ณ ๋ฆฌ,๋ถ„๋ฅ˜๊ธ‰
p : ๋ฌธ์žฅ,๋‹จ๋ฝ,๋‚ด์šฉ ์œ ์˜๋ฏธํ•œ ํ…์ŠคํŠธ
span : ์˜๋ฏธ๊ฐ€ ๋งŽ์ด ๋–จ์–ด์ง€๋Š” ์ฉŒ๋ฆฌํ…์ŠคํŠธ

๐Ÿ’ก๐Ÿค”๋‹จ๋… spanํƒœ๊ทธ๋Š” ์–ธ์ œ ์“ฐ๋Š”๊ฒŒ ์ข‹์„๊นŒ??

  • ์˜๋ฏธ๊ฐ€ ๋–จ์–ด์งˆ ๋•Œ
  • ํ…์ŠคํŠธ๋ฅผ ๊พธ๋ฉฐ์ค„ ๋•Œ
  • ํด๋ฆญ๋„ ์•ˆ๋˜๊ณ  ์˜๋ฏธ ๋–จ์–ด์งˆ ๋•Œ
  • ๋‹จ๋… span โ†’ ์ฉŒ๋ฆฌํ…์ŠคํŠธ
  • aํƒœ๊ทธ, ๋‹ค๋ฅธํƒœ๊ทธ์— ์†Œ์†๋œ span โ†’ ๋””์ž์ธ

pํƒœ๊ทธ

๋ฌธ์žฅ,๋‹จ๋ฝ,์ œ๋ชฉ,๋‚ด์šฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง



๐Ÿ“Œ ์ •๋ณด ์ „๋‹ฌ

โœ form: ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํƒœ๊ทธ

formํƒœ๊ทธ ํ•„์ˆ˜ ์š”์†Œ

GET: ๊ธฐ๋ณธ๊ฐ’, URL์— ์ •๋ณด๋ฅผ ๊ฐ™์ด ๋ณด๋ƒ„, ์ฃผ๋กœ ๊ฒ€์ƒ‰, ๋ณด์•ˆ(x)
POST: ์ˆจ๊ฒจ์„œ ๋ณด๋ƒ„, ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…๋“ฑ ์ค‘์š”ํ•œ ์ •๋ณด ์ „์†ก, ๋ณด์•ˆ(0)

โœ method: ์ •๋ณด๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹

formํƒœ๊ทธ ์“ฐ๋ ค๋ฉด ์ด ๋‘ ๊ฐœ ํ•„์ˆ˜

  • GET : ๊ธฐ๋ณธ๊ฐ’, URL์— ์ •๋ณด๋ฅผ ๊ฐ™์ด ๋ณด๋ƒ„, ์ฃผ๋กœ ๊ฒ€์ƒ‰
  • POST : ์ˆจ๊ฒจ์„œ ๋ณด๋ƒ„, ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…๋“ฑ ์ค‘์š”ํ•œ ์ •๋ณด ์ „์†ก
๊ฒ€์ƒ‰ ๊ฒ€์ƒ‰
<form action="" method="get">
  <fieldset>
     <legend class="blind">๊ฒ€์ƒ‰</legend>
        <input type="text">
          <button type="button"><!-- ๋ฒ„ํŠผ์€ ํ•ญ์ƒ ๊ฐ€์šด๋ฐ ์ •๋ ฌํ•˜๋Š” ์†์„ฑ -->
            <span class="blind">๊ฒ€์ƒ‰</span> <!-- ์ œ๊ณต๋˜๋Š” ์˜์—ญ์—” ๋ธ”๋ผ์ธ๋“œ ํ•„์ˆ˜ -->
          </button>
  </fieldset>
</form>
  • <fieldset> </fieldset> - ํ…Œ๋‘๋ฆฌ์— ์ด๋ฆ„, ๊ตฌ์—ญ ํ‘œ์‹œ block๋ ˆ๋ฒจ, ๋ถ€๋ชจ๋กœ๋งŒ ๊ฐ€๋Šฅ, ํผ์— ๋Œ€ํ•œ ์˜์—ญ
  • <legend> </legend> - ์ž์‹์œผ๋กœ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๊ตฌ์—ญ์˜ ํƒ€์ดํ‹€/์ œ๋ชฉ (์‹œ๊ฐ์žฅ์• ์ธ + ๊ฒ€์ƒ‰์—”์ง„์„ ์œ„ํ•ด ์‹ค์งˆ์ ์œผ๋กœ ํ•„์š”์—†์–ด๋„ ์จ์ฃผ๊ธฐ blind๋กœ ๊ฐ€๋ฆฌ๊ธฐ)

โœ inputk ์ฒดํฌ๋ผ์ธ ์—†์• ๊ธฐ

input์€ ํด๋ฆญ์‹œ ๋ผ์ธ์ด ์ƒ๊ธด๋‹ค.
์—†์• ๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จ! outline: 0;์ฃผ๊ธฐ

.header-area .search-area input{
    outline: 0;
}

๐Ÿ“Œ img, background ์–ด๋–ค๊ฑธ ์จ์•ผํ• ๊นŒ?

โœ img๋Š” ์–ธ์ œ์จ์•ผํ• ๊นŒ?

img์ฝ˜ํ…์ธ (์˜๋ฏธ ์žˆ๋Š”) ํ•œํ…Œ ์“ฐ๋Š”๊ฒŒ ๊ฐ€์žฅ์ข‹๋‹ค!
์ด๋ฏธ์ง€๋กœ ํ•˜์—ฌ๊ธˆ ์ •๋ณด์ œ๊ณต์„ ํ•˜๊ณ ์‹ถ์„ ๋•Œ

<img src="์ด๋ฏธ์ง€์ฃผ์†Œ" alt="๋Œ€์ฒด๋ง">

-> alt ํƒœ๊ทธ - ์ด๋ฏธ์ง€๊ฐ€ ์—†์„๋•Œ ์ถœ๋ ฅํ•  ๋Œ€์ฒด ๋ฌธ์ž ํ‘œํ˜„ (์›น์ ‘๊ทผ์„ฑ์กฐ๊ฑด)

๋กœ๊ณ ,์•„์ด์ฝ˜,ํ™”์‚ดํ‘œ โ†’ ์ด๋ฏธ์ง€๋กœ ์“ฐ๊ธฐ๋ณด๋‹จ ๋ฐฐ๊ฒฝ์ฒ˜๋ฆฌ(IR)๊ฐ€ ๋‚ซ๋‹ค.
imgํƒœ๊ทธ๋Š” ์ด๋ฏธ์ง€์ฝ˜ํ…์ธ ํ•œํ…Œ ์“ฐ๋Š”๊ฒŒ ์ ๋‹นํ•˜๋‹ค.
[ ์•„์ด์ฝ˜,๋กœ๊ณ  x ]

โœ background๋Š” ์–ธ์ œ์จ์•ผํ• ๊นŒ?

์˜๋ฏธ์—†๋Š” ์ด๋ฏธ์ง€, ๋ถ€์ˆ˜์  ์ด๋ฏธ์ง€

  • img(์›๋ณธ์‚ฌ์ด์ฆˆ๋Œ€๋กœ ๋‚˜์˜ด)ํƒœ๊ทธ์™€๋Š” ๋‹ฌ๋ฆฌ ์˜์—ญ ๋งŒํผ๋งŒ ๋ณด์—ฌ์ค€๋‹ค.
  • ์›๋ณธ ์ด๋ฏธ์ง€๊ฐ€ ๋” ํฌ๋ฉด ์˜์—ญ๋งŒํผ๋งŒ ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค.
  • ์›๋ณธ ์ด๋ฏธ์ง€๊ฐ€ ๋” ์ž‘์œผ๋ฉด ๋ฐ˜๋ณต๋˜์„œ ์˜์—ญ์— ๋‹ค ์น ํ•ด์ค€๋‹ค.(๋ฒฝ์ง€์ฒ˜๋Ÿผ ์‚ฌ์ง„ ๋ฐ˜๋ณต)

๋ฐฐ๊ฒฝ ex)๋„ํŠธ๊ฐ€ ๋ฐฐ๊ฒฝ์ฒ˜๋Ÿผ๋‚˜์˜จ๊ฑฐ - > background ์†์„ฑ

๐Ÿ”‘ width, height ํ•„์ˆ˜๋กœ ์ฃผ์ž!!


๐Ÿ“Œ IR/IS ๊ธฐ๋ฒ•

โœ ๋‹จ์ผ์ด๋ฏธ์ง€(IR / Image Replacement) ํ…์ŠคํŠธ์ด๋ฏธ์ง€์ฒ˜๋ฆฌ

  • ์ด๋ฏธ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์ ˆํ•œ ๋Œ€์ฒด ํ…์ŠคํŠธ๋ฅผ ์ œ๊ณต
    ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž๋ฟ ์•„๋‹ˆ๋ผ ๊ฒ€์ƒ‰ ์—”์ง„์˜ ํšจ๊ณผ์ ์ธ ๋‚ด์šฉ ์ˆ˜์ง‘์„ ์œ„ํ•ด์„œ๋„ ํ•„์š”!
  • ๋ฐฐ๊ฒฝ์ฒ˜๋ฆฌ๋กœ ์‚ฌ์šฉ๋จ

โœ ์Šคํ”„๋ผ์ดํŠธ์ด๋ฏธ์ง€(IS)

IS๊ธฐ๋ฒ•์€ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์ด๋ฏธ์ง€๋“ค์„ ๋ชจ์•„ ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด ๊ทธ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋งŒ ์„œ๋ฒ„์— ์š”์ฒญ

  • HTML์˜ imgํƒœ๊ทธ๊ฐ€ background-image๋ณด๋‹ค ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฅด๊ธด ํ•˜์ง€๋งŒ imgํƒœ๊ทธ๋ฅผ ๊ฐ€์ง€๊ณ  ํ•˜๋‚˜์”ฉ ์ด๋ฏธ์ง€๋“ค์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.
  • ์„œ๋ฒ„์ธก์—์„œ ํŠธ๋ ˆํ”ฝ์ด ํ™• ์ค€๋‹ค.
    ex) ์ด๋ฏธ์ง€ 100๋ฒˆํ†ต์‹  vs ์ด๋ฏธ์ง€ 1๋ฒˆํ†ต์‹ 
  • ์กฐ๊ฐ๋‚œ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ณ‘ํ•ฉ ํ›„ ๋ฐฐ๊ฒฝ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์„œ ์›น ๋ฌธ์„œ ์ „์†ก ์†๋„๋ฅผ ๋†’์ด๋Š” ๊ธฐ๋ฒ•
    -> ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ค„์–ด๋“ฌ
  • DPI โ€“ ๋„ํŠธ ํผ ์ธ์น˜ (๋ชจ๋ฐ”์ผ, ๋งฅ๋ถ๋ชจ๋‹ˆํ„ฐ) ํ•ด์ƒ๋„๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ 2๋ฐฐ ํ‚ค์šด๋‹ค.

์ด๋ฏธ์ง€ ๋ณ€ํ™˜ ์‚ฌ์ดํŠธ 1
์ด๋ฏธ์ง€ ๋ณ€ํ™˜ ์‚ฌ์ดํŠธ 2


โœ ์‚ฌ์šฉ๋ฒ•

common.css์— ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋  ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ๊ณ  ํด๋ž˜์Šค์ด๋ฆ„์„ ๋„ฃ์–ด์ค€๋‹ค.

.shop-body .news-top .next::before,
.shop-deal .shopdeal-title .deal-link::before,
.plusdeal-item .plusdeal-box .ico_one_plus,
.plusdeal-item .plus-R::before{
    background-image: url(../images/sp_shop_a620bd.png);
    background-repeat: no-repeat;
    background-size: 107px 101px;
}
  • background-size๋Š” ์›๋ณธ ์ด๋ฏธ์ง€๊ฐ€ 2๋ฐฐ ์ปค์ ธ์žˆ์Œ์œผ๋กœ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ ์ค€๋‹ค.
  • background-position์œผ๋กœ ์œ„์น˜ ์ฐพ์•„์ฃผ๋ฉด๋œ๋‹ค.



๐Ÿ“ ํŠน์ง• ์ •๋ฆฌ

<div class="logo-area">
  <div class="inner"> <!-- w์žก๊ณ  ์ค‘์•™์ •๋ ฌ ๊ณตํ†ต -->
    <h1 class="logo"><a href=""><span class="blind">๋„ค์ด๋ฒ„</span></a></h1>
    <div class="search-area">
      <form action="" method="get"><!-- ๋ณด์•ˆ์ด ๋…ธํ•„์š”get, ํ•„์š” post -->
        <fieldset>
          <legend class="blind">๊ฒ€์ƒ‰</legend>
          <input type="text">
          <button type="button"><!-- ๋ฒ„ํŠผ์€ ํ•ญ์ƒ ๊ฐ€์šด๋ฐ ์ •๋ ฌํ•˜๋Š” ์†์„ฑ -->
            <span class="blind">๊ฒ€์ƒ‰</span> <!-- ์ œ๊ณต๋˜๋Š” ์˜์—ญ์—” ๋ธ”๋ผ์ธ๋“œ ํ•„์ˆ˜ -->
            <!-- after์— ๊ฒ€์ƒ‰ ์ด๋ฏธ์ง€ -->
          </button>
        </fieldset>
      </form>
    </div>
    <div class="service-area">
      <a href="" class="link-start">๋„ค์ด๋ฒ„๋ฅผ ์‹œ์ž‘ํŽ˜์ด์ง€๋กœ</a><i class="bar"></i>
      <a href="" class="link-junior">์ฅฌ๋‹ˆ์–ด ๋„ค์ด๋ฒ„</a>
      <a href="" class="link-bin">ํ•ดํ”ผ๋นˆ</a>
    </div>
  </div>
</div>
  • ์ž์‹๋“ค์—๊ฒŒ ๊ฐ๊ฐ ๊ฐ€๋กœ์‚ฌ์ด์ฆˆ, ๊ฐ€์šด๋ฐ ์ •๋ ฌ์„ ์ฃผ๋Š”๊ฒƒ๋ณด๋‹ค ๊ณตํ†ตํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ถ€๋ชจ์—๊ฒŒinner๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์คŒ์œผ๋กœ์จ ์ปจํŠธ๋กค์ด ํŽธํ•ด์ง„๋‹ค.width: 1130px;,margin: 0 auto;
  • h1์€ ํ•ญ์ƒ ํŽ˜์ด์ง€์—์„œ ํ•˜๋‚˜๋งŒ ๋‚˜์™€์•ผํ•จ. ๋กœ๊ณ ์—๋งŒ!!
  • <button type="button">ํƒœ๊ทธ๋Š” ํ•ญ์ƒ ๊ฐ€์šด๋ฐ ์ •๋ ฌ์„ ์‹œ์ผœ์ค€๋‹ค.

<div class="service-area">
  <a href="" class="link-start">๋„ค์ด๋ฒ„๋ฅผ ์‹œ์ž‘ํŽ˜์ด์ง€๋กœ</a><i class="bar"></i>
  <a href="" class="link-junior">์ฅฌ๋‹ˆ์–ด ๋„ค์ด๋ฒ„</a>
  <a href="" class="link-bin">์ฅฌ๋‹ˆ์–ด ๋„ค์ด๋ฒ„</a>
</div>
  • ํ™”์‚ดํ‘œ ์ด๋ฏธ์ง€๋Š” vertical-align: top;๋ฅผ ์ด์šฉํ•˜์—ฌ ํ…์ŠคํŠธ์™€ ์ •๋ ฌ์„ ๋งž์ถฐ์ค€๋‹ค.
  • iํƒœ๊ทธ๋Š” ์˜๋ฏธ๊ฐ€ ์—†๋Š” ์š”์†Œ์— ์‚ฌ์šฉ.

๐Ÿ’ก vertical-align์€ inline๋ ˆ๋ฒจ์„ ์ˆ˜์ง์ •๋ ฌ ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ

<section class="sc-news">
  <h2 class="blind">๋‰ด์Šค์˜์—ญ</h2>
  ...
</section>
  • ์ƒˆ๋กœ์šด ์˜์—ญ์ด ์‹œ์ž‘๋˜๋Š” sectionํƒœ๊ทธ์—์„  h2๋กœ ๋ณด์ด์ง€ ์•Š๋Š” ์ œ๋ชฉ ๋„ฃ์–ด์ค˜์•ผํ•จ

โœ ๋ฆฌ์ŠคํŠธ border ๋””์ž์ธ

<i class="vt-line vt01"></i><!-- ์„ธ๋กœ -->
<i class="vt-line vt02"></i>
<i class="vt-line vt03"></i>
<i class="vt-line vt04"></i>
<i class="vt-line vt05"></i>
<i class="hr-line hr01"></i><!-- ๊ฐ€๋กœ -->
<i class="hr-line hr02"></i>
<i class="hr-line hr03"></i>
position: absolute;
top: 0;
left: 124px;
width: 1px;
height: 100%;
background: #dae1e6;

iํƒœ๊ทธ์— border๊ฐ€ ์•„๋‹Œ width๋กœ css๋ฅผ ์ค€๋‹ค.

โœ iํƒœ๊ทธ

๊พธ๋ฐ€ ๋•Œ, ์„ ๋งŒ๋“ค ๋•Œ... ์•„๋ฌด ์˜๋ฏธ์—†๋Š” ๋ฆฌ๋”๊ธฐ๊ฐ€ ์ฝ์ง€ ์•Š๋Š” ์˜์—ญ

๐Ÿ’ก๐Ÿค” border๋ฅผ ์“ฐ์ง€ ์•Š๋Š” ์ด์œ ๋Š”?

๊ฐœ์ˆ˜์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ์„ ์„ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ํ‹€์„ ๋งŒ๋“ค์–ด์คŒ์œผ๋กœ์จ ๋””์ž์ธ ๋ ˆ์ด์•„์›ƒ์„ ๋ง์น˜์ง€ ์•Š๋Š”๋‹ค.

  • ์ˆ˜์ง ์ˆ˜ํ‰์„ ์„ ๊ณ ์ •ํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์ด ๋ฌด๋„ˆ์ง€์ง€ ์•Š๊ฒŒ ํ•˜๋Š”๊ฒŒ ํฌ์ธํŠธ!

โœ Hover ์ด๋ฏธ์ง€ ์ปค์ง€๊ธฐ


์ด๋ฏธ์ง€์— ํ˜ธ๋ฒ„์‹œ ์ด๋ฏธ์ง€๊ฐ€ ์ปค์ง€๊ณ  ํŠน์ • ํ…์ŠคํŠธ์— ๋ฐ‘์ค„

.sc-recipe .content-box:hover .title-txt {
    text-decoration: underline;
}
.sc-recipe .content-box:hover img {
    transform: scale(1.1);
}
.sc-recipe .preview-area img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

๐Ÿ”‘ ๋ฐ˜๋“œ์‹œ ์ปค์ง€๋ ค๋Š” ์ด๋ฏธ์ง€์— ์†๋„๋ฅผ ์ค˜์•ผํ•œ๋‹ค.

transition: ์†์„ฑ 0.3s;

transition์€ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์†๋„๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.
์†์„ฑ ๋ถ€๋ถ„์— ์ ์šฉํ•˜๋ ค๋Š” ์†์„ฑ์„ ์ ์–ด์ค˜์•ผํ•œ๋‹ค.
ex) transform, rotate, scale, all...


โœ overflow:hidden ์œผ๋กœ ๋ชจ๋“  ์˜์—ญ์˜ float ํ•ด์ œ๋ฅผ ํ• ์ˆ˜์—†๋Š”์ด์œ 

์ปจํ…์ธ  ์˜์—ญ๋ฐ–์œผ๋กœ ๋„˜์ณ์•ผํ•˜๋Š” ๊ฒฝ์šฐ overflow:hidden์„ ์“ฐ๊ฒŒ๋˜๋ฉด ๋‚ด์šฉ์ด ์งค๋ฆฐ๋‹ค.

main::after{
    content: '';  //-> ๋นˆ์นธ์ƒ์„ฑ
    display: block;  //-> ๊ทธ ๋นˆ์นธ์ธ ์ธ๋ผ์ธ์ด์—ฌ์„œ block์œผ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ์นธ์„ ์ฐจ์ง€ํ•จ
    clear: both; //-> float ์–‘์ชฝํ•ด์ œ
}

ํฐํ‹€์„ ๊ตฌ์„ฑํ•˜๋Š” ์˜์—ญ์ด๋ผ๋ฉด overflow๋ณด๋‹จ :after ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒŒ ์ด๋“์ด๋‹ค.

๐Ÿ“Œ ๋ง์ค„์ž„ ํ‘œ์‹œ ๊ธฐ๋ฒ•

โœ ํ•œ ์ค„ ๋‹จ์œ„ ํ…์ŠคํŠธ ๋ง์ค„์ž„

display:block; -> ๋ง์ค„์ž„ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ธ€์ž ์ถœ๋ ฅํ•  ๊ณต๊ฐ„์ด ํ•„์š”ํ•จ
overflow:hidden; -> ๋„˜์น˜๋Š” ํ…์ŠคํŠธ ์ˆจ๊น€์ฒ˜๋ฆฌ
white-space:nowrap; -> ํ…์ŠคํŠธ๊ฐ€ ๋ถ€๋ชจ๋ฅผ ๋„˜์–ด๊ฐ€๋„ ๋‹ค์Œ์ค„๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๊ณ  ํ•œ์ค„๋กœ ํ‘œ์‹œ๋จ.
text-overflow:ellipsis; -> ๋ง์ค„์ž„ ... ํ‘œ์‹œ

โœ ๋‘์ค„ ์ด์ƒ ํ…์ŠคํŠธ ๋ง์ค„์ž„

text-overflow: ellipsis; -> ๋ง์ค„์ž„ ... ํ‘œ์‹œ
overflow: hidden;
display: -webkit-box; -> ์›นํ‚ท ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•ด์„œ
-webkit-box-orient: vertical; -> ์›นํ‚ท ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•ด์„œ
-webkit-line-clamp: 3; -> ๋ช‡์ค„ ํ• ๊ป€์ง€
line-height: 20px; -> ํ•„์ˆ˜๋กœ ์•Œ์•„์•ผํ•จ
max-height: 60px; -> clamp(์ค„) x line-heightํ•˜๋ฉด๋จ

๐Ÿค” height๊ฐ’์„ ์™œ ์ง€์ •ํ•˜๋‚˜์š”?

๋ฌธ์ž์—ด์˜ ์ค„ ์ˆ˜๊ฐ€ ์ œํ•œ ์ค„ ์ˆ˜ ๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ ๋†’์ด๋„ ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ๋†’์ด๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์—๋Š” height์†์„ฑ ๊ฐ’์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ

๐Ÿค” webkit์€ ๋ญ”๊ฐ€์—ฌ?

๋ช‡ css๋“ค์€ ์˜› ๋ธŒ๋ผ์šฐ์ €๋“ค์ด ์ ์šฉ/์ง€์›์ด ์•ˆ๋œ๋‹ค.
ํฌ๋กœ์Šค๋ธŒ๋ผ์šฐ์ง•์„ ์œ„ํ•ด ๋‚ฎ์€๋ฒ„์ „๋“คํ•œํ…Œ webkit์„ ์จ์ค˜์•ผ์ง€ ์ ์šฉ์ด ๋œ๋‹ค.

-webkit- : ํฌ๋กฌ, ์‚ฌํŒŒ๋ฆฌ
-mox- : ํŒŒ๋ฆฌ์–ดํญ์Šค
-ms- : ์ต์Šคํ”Œ๋กœ๋Ÿฌ
-o- :์˜คํŽ˜๋ผ ํ•˜์šฐ์Šค




์˜ค๋‹ตโœ(โ—”โ—กโ—”)โœง

<li class="recipe-item">
  <a href="">
    <img src="./assets/images/infood01.jpg" alt="">

    <div class="rec-box">
      <em class="citem-title">๋ ˆ์‹œํ”ผ</em>
      <strong class="title-txt">๋‚จํŽธ ๋„์‹œ๋ฝ๋ฐ˜์ฐฌ๋„ ์ƒˆ๋ฒฝ๋ฐฐ์†ก์œผ๋กœ~</strong>
      <p class="desc">ํ—ค๋กœ์šฐ- ๊น€๋Œํฌ์˜ˆ์š”! ์ง‘๋ฐฅ์—ฌ์‹ ์ด๊ณ  ์‹ถ์—ˆ๋˜ (๊ตฌ)์ง‘๋ฐฅ๋จธ์‹  ๊ทธ๋Ÿฌ๋‚˜ ์ง์Œ์€ ๋ฌผ๋Ÿฌ์„ค์ˆ˜์—†๋Š” (ํ˜„)์•„๊ฐ€๋ฆฌ๋‹ค์ด์–ดํ„ฐ!! ๋‚ ์”จ๊ฐ€ ๋”์›Œ์ง€๊ณ  ์˜ท์ฐจ๋ฆผ์ด ์–‡์•„์ง€๋‹ˆ ์ฃผ๋ณ€๋ถ„๋“ค์ด ํ•˜๋‚˜๋‘˜ ์ง•๋ฒŒ๊ณผ ํ˜•๋ฒŒ(aka ๋‹ค์ด์–ดํŠธ)์— ๋Œ์ž…ํ•˜์‹œ๋”๋ผ๊ตฌ์š”..?</p>
      <div class="source">
        <span class="name">
          ๊น€๋Œํฌ
        </span>
        <span class="date">
          1์ฃผ์ผ ์ „
        </span>
      </div>
    </div>
  </a>
</li>

๋ ˆ์‹œํ”ผ ์˜์—ญ์—์„œ ์ด๋ฏธ์ง€ ์˜์—ญ๊ณผ ๋‚ด์šฉ์˜์—ญ์ด ๊ฒน์ณ์ ธ์žˆ๋‹ค.
ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€?

โ•ฐ (๐Ÿ”ด'โ—ก'๐Ÿ”ด)๐Ÿ’ฌ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ํ•ด๊ฒฐ๋ฐฉ์•ˆ

.rec-box์— float: right;์„ ์ฃผ๊ณ  ๊ทธ ๋ถ€๋ชจ์ธ aํƒœ๊ทธ์— overflow: hidden;
-> .rec-box์ด ์˜์—ญ ๋ฐ‘์œผ๋กœ ๋–จ์–ด์ง€๋ฉด์„œ ๋ ˆ์ด์•„์›ƒ์— ๋งž์ง€ ์•Š๊ฒŒ ๋จ

๐Ÿ‘Œ๐Ÿ˜† ํ•ด๊ฒฐ๋ฐฉ์•ˆ

imgํƒœ๊ทธ์— ์คฌ๋˜ float: left;์„ ํ•ด์ œ ์‹œ์ผœ์ฃผ๋ฉด ๋œ๋‹ค.
-> .rec-box์— overflow: hidden;์„ ์ค€๋‹ค.

๐Ÿ’ก imgํƒœ๊ทธ๋Š” ํ˜ผ์ž ์“ฐ๋Š”๊ฒƒ ๋ณด๋‹ค ํ•œ๋ฒˆ ๊ฐ์‹ธ์ฃผ๋Š”๊ฒŒ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฃจ๋Š”๋ฐ ๋” ํŽธํ•˜๋‹ค.



์ด๋ฏธ์ง€ ์˜์—ญ๋“ค์ด ์™ผ์ชฝ์œผ๋กœ ์ ๋ ค์žˆ๋Š” ํ˜„์ƒ ๋ฐœ์ƒ

.footer-banner .banner-item {
    float: left;
    width: 350px;
    height: 86px;
}

๐Ÿ‘Œ๐Ÿ˜† ํ•ด๊ฒฐ๋ฐฉ์•ˆ

width: 350px;๊ฐ’์„ ์ง€์ •ํ•˜๋Š”๊ฒŒ ์‹ค์ˆ˜!
-> calcํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚˜๋ˆ ์ค€๋‹ค.width: calc(100% / 3);



ํ•œ์ค„๋กœ ํ‘œํ˜„๋˜์–ด์•ผํ•˜๋Š”๋ฐ ํ•œ๋‹จ์–ด์”ฉ ๋ฐ€๋ฆฌ๋Š” ํ˜„์ƒ ๋ฐœ์ƒ

๐Ÿ‘Œ๐Ÿ˜† ํ•ด๊ฒฐ๋ฐฉ์•ˆ

mall-area์— whith 100%
์ (ํด๋ž˜์Šค dot)์— float: left;


๋˜‘๊ฐ™์€ ํ˜•์‹์˜ ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐ€์šด๋ฐ ์ •๋ ฌ์ด ๋˜์ง€์•Š์Œ

๐Ÿ‘Œ๐Ÿ˜† ํ•ด๊ฒฐ๋ฐฉ์•ˆ

.shop-body .recommend-area .btn {
    float: left;
    background-color: #fff;
    border: 1px solid #dae1e6;
}

๊ณตํ†ต ํด๋ž˜์Šค๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค btn๋ฅผ ์ฃผ๋Š”๊ฑด ์ข‹์•˜์ง€๋งŒ ๋งˆํฌ์—…, css๋ฅผ ์ž‘์„ฑํ• ๋•Œ ๊ณตํ†ต์œผ๋กœ ์ฃผ๋ ค๋Š” ์š”์†Œ์— ๋‹ค๋ฅธ์š”์†Œ์—” ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” float: left;๋ฅผ ์ค˜์„œ ๊ผฌ์˜€๋‹ค.




โ•ฐ (๐Ÿ”ด'โ—ก'๐Ÿ”ด)๐Ÿ’ฌ
๊ณตํ†ต ํด๋ž˜์Šค๋ฅผ ์ค„๋•Œ ํฐํ‹€์„ ์ƒ๊ฐํ•˜๊ณ  ์งœ์•ผํ•œ๋‹ค.
๊ณตํ†ต ๋ผˆ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง„์• ๋“ค๋กœ๋งŒ ์งค ์ˆ˜ ์žˆ๊ฒŒ ๋…ธ๋ ฅํ•˜๊ธฐ
ํด๋ž˜์Šค ์ด๋ฆ„ ์ง“๋Š”๊ฒŒ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต๋‹คใ…  ์ตœ์ ํ™”๋œ ํด๋ž˜์Šค๋ช…์„ ์ง€์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŽ์ด ํ•ด๋ณด๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค!

profile
๋‹ฌ๋ฆฌ๋Š” ๊ฑฐ๋ถ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€