ToyPJ/Python-Django

[ToyPJ/Python] django ๋กœ ์ธ์Šคํƒ€๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ - 06 ํ”ผ๋“œ ์ƒ์„ฑ ํ™”๋ฉด ๋งŒ๋“ค๊ธฐ

hellosonic 2023. 3. 30. 11:10

๐Ÿ“Œ 01. ๋นˆ ๋ชจ๋‹ฌ์ฐฝ ๋งŒ๋“ค๊ธฐ

์šฐ์„ , ํ”ผ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ™”๋ฉด์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”Œ๋Ÿฌ์Šค ์•„์ด์ฝ˜์„ ๋ˆŒ๋ €์„ ๋•Œ, ์‚ฌ์ง„์„ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์„ ๋„์šฐ๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒˆ๋กœ์šด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด์ง€ ์•Š๊ณ  ๋„์šฐ๋Š” ํ™”๋ฉด์„ "๋ชจ๋‹ฌ" ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด๋Ÿฐ "๋ชจ๋‹ฌ์ฐฝ"์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

 

๋ชจ๋‹ฌ์„ ๋งŒ๋“œ๋Š” ์†Œ์Šค๋ฅผ html์— ์ถ”๊ฐ€ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  <style> ํƒœ๊ทธ์— css ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๋ชจ๋‹ฌ์ฐฝ์— ์–ด๋– ํ•œ ์†์„ฑ์„ ์ค„ ๊ฒƒ์ธ์ง€ ์ž‘์„ฑํ•œ๋‹ค.

html - ๋ชจ๋‹ฌ

  • blur : ํ๋ฆฟํ•œ ํšจ๊ณผ๋ฅผ ๋„ฃ๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜
  • rgba : ์ปฌ๋Ÿฌ์™€ Alpha ๊ฐ’์„ ์กฐ์ • (Alpha ๊ฐ’์„ ์กฐ์ •ํ•˜์—ฌ ํˆฌ๋ช…๋„๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค.)

css - ๋ชจ๋‹ฌ

์‹คํ–‰์‹œํ‚ค๊ฒŒ ๋˜๋ฉด ๋นˆ ๋ชจ๋‹ฌ์ฐฝ์ด ์ƒ์„ฑ๋˜๋Š”๋ฐ ํ•ญ์ƒ ๋– ์žˆ๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋•Œ ์ž‘์„ฑํ•œ css์˜ modal_overlay ์†์„ฑ์˜ display ์†์„ฑ๊ฐ’์„ none์œผ๋กœ ์ฃผ๊ฒŒ ๋˜๋ฉด ๋ชจ๋‹ฌ์ฐฝ์ด ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. 

๋นˆ ๋ชจ๋‹ฌ์ฐฝ์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค.

์ด ์ ์„ ํ™œ์šฉํ•˜์—ฌ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ธ€ ์ƒ์„ฑ ์•„์ด์ฝ˜์„ ๋ˆ„๋ฅด๊ธฐ ์ „๊นŒ์ง€๋Š” display : none, ๊ธ€ ์ƒ์„ฑ ์•„์ด์ฝ˜์„ ๋ˆ„๋ฅด๋ฉด display : flex ๊ฐ€ ๋˜๋„๋ก ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์–ด๋– ํ•œ ์•ก์…˜์„ ์ทจํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ฌ๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ˜น์€ ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

์ด ๋‘ ๊ฐœ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์„œ ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋˜๋Š”๋ฐ, ๊ฐ•์˜์—์„œ๋Š” ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ํƒํ–ˆ๊ธฐ์— ๋‚˜๋„ ์ œ์ด์ฟผ๋ฆฌ๋กœ ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์›น์‚ฌ์ดํŠธ์—์„œ ์–ด๋– ํ•œ ์•ก์…˜์„ ์ทจํ–ˆ์„ ๋•Œ(๋ฒ„ํŠผ ํด๋ฆญ ๋“ฑ) ์ƒ์‘ํ•˜๋Š” ๊ฒฐ๊ณผ(ํŒ์—…์ฐฝ ๋„์šฐ๊ธฐ ๋“ฑ)๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๊ณ  ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

jQuery ๋งํฌ๋ฅผ ๊ฑธ์–ด์คŒ์œผ๋กœ์จ ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธ€ ์ƒ์„ฑ ์•„์ด์ฝ˜์˜ id๋ฅผ "nav_bar_add_box"๋ผ๊ณ  ์ •ํ•ด์ฃผ์—ˆ๋‹ค.

"nav_bar_add_box"๋ฅผ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด "modal_overlay"์˜ css ์†์„ฑ๊ฐ’ "display"๊ฐ€ flex๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋˜๊ณ , ๋™์‹œ์— ๋ฐ”๋”” ๋ถ€๋ถ„์˜ ์Šคํฌ๋กค ํ‘œ์‹œ์™€ ๊ธฐ๋Šฅ์ด ์‚ฌ๋ผ์ง€๋„๋ก ์ž‘์„ฑํ•œ๋‹ค.

jQuery - ๊ธ€ ์ƒ์„ฑ ์•„์ด์ฝ˜ ํด๋ฆญ ์‹œ ๋ชจ๋‹ฌ์ฐฝ ๋„์šฐ๊ธฐ

๐Ÿ“Œ 02. ๋ชจ๋‹ฌ์ฐฝ ๊พธ๋ฏธ๊ธฐ

๊ธ€์„ ์ƒ์„ฑํ•˜๋Š” ๋ชจ๋‹ฌ์ฐฝ์ด๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๊พธ๋ฉฐ๋ณด์•˜๋‹ค. "์ƒˆ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ" ๋ฌธ๊ตฌ๋ฅผ ์ƒ๋‹จ์— ์ถ”๊ฐ€ํ•˜์˜€๊ณ , ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์—๋Š” ๊ตฌ๊ธ€ ๋จธํ‹ฐ๋ฆฌ์–ผ ์•„์ด์ฝ˜์˜ ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ "๋‹ซ๊ธฐ ๋ฒ„ํŠผ"์„ ๋‹ฌ์•„์ฃผ์—ˆ๋‹ค. ๋˜ํ•œ ๋นˆ ํ™”๋ฉด์— ์ด๋ฏธ์ง€๋ฅผ ๋Œ์–ด๋‹ค ๋†“์•„์•ผํ•˜๋ฏ€๋กœ, "์‚ฌ์ง„๊ณผ ๋™์˜์ƒ์„ ์—ฌ๊ธฐ์— ๋Œ์–ด๋‹ค ๋†“์œผ์„ธ์š”" ๋ผ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ชจ๋‹ฌ์ฐฝ ์ค‘์•™์— ์œ„์น˜์‹œ์ผฐ๋‹ค.

์ œ๋ฒ• ๊ทธ๋Ÿด์‹ธํ•ด์ง„ ๊ธ€ ์ƒ์„ฑ ๋ชจ๋‹ฌ์ฐฝ

์ƒ๋‹จ๋ถ€๋ฅผ "flex-direction : row" ๋ฅผ ํ†ตํ•ด ๊ฐ€๋กœ๋กœ ๋‚˜์—ด๋˜๋„๋ก ํ•˜์˜€๊ณ , "justify-content: space-between" ์„ ํ†ตํ•ด ์•„๋ž˜์˜ ์š”์†Œ๋“ค์˜ ๊ฐ„๊ฒฉ์„ ์ผ์ •ํ•˜๊ฒŒ ๋˜๋„๋ก ์ž‘์„ฑํ•˜์˜€๋‹ค. ๊ทธ ํ›„, <div>๋ฅผ ์„ธ ๊ฐœ ์ƒ์„ฑํ•˜์—ฌ "์ƒˆ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ" ๋ฌธ๊ตฌ๊ฐ€ ๊ฐ€์šด๋ฐ์— ์œ„์น˜ํ•˜๋„๋ก ํ•˜์˜€๋‹ค. 

๋‹ค์‹œ ์ƒˆ๋กœ์šด ์ƒ์œ„ <div> ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ "style=border-top: solid 1px"์„ ํ†ตํ•ด ์ƒ๋‹จ์— ํ…Œ๋‘๋ฆฌ ์„ ์„ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  "์‚ฌ์ง„๊ณผ ๋™์˜์ƒ์„ ์—ฌ๊ธฐ๋‹ค ๋Œ์–ด๋‹ค ๋†“์œผ์„ธ์š”" ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

html - ๋ชจ๋‹ฌ์ฐฝ์„ ๊พธ๋ฉฐ๋ณด์•˜๋‹ค.

๐Ÿ“Œ 03. ๋˜ ํ•˜๋‚˜์˜ ๋ชจ๋‹ฌ์ฐฝ ๋งŒ๋“ค๊ธฐ - ์ด๋ฏธ์ง€ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋ž

์ด์ œ ์ด ํ™”๋ฉด์— ์ด๋ฏธ์ง€๋ฅผ ๋“œ๋ž˜๊ทธํ•ด์„œ ๋“œ๋žํ•˜๊ฒŒ ๋˜๋ฉด ๋“œ๋ž˜๊ทธํ•œ ์ด๋ฏธ์ง€๊ฐ€ ๋ชจ๋‹ฌ์ฐฝ์— ํ‘œ์‹œ๋˜๊ฒŒ ๋˜๊ณ , ์šฐ์ธก์— ๊ธ€์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ์ƒ์„ฑ๋˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋˜ ๋‹ค๋ฅธ ๋ชจ๋‹ฌ์ฐฝ์„ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์— ์ด๋ฏธ์ง€๋ฅผ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋žํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ ๋ฒˆ์งธ ์ƒˆ๋กœ์šด ๋ชจ๋‹ฌ์ฐฝ์ด ๋‚˜ํƒ€๋‚˜๋„๋ก ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ๋‘ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์ด ๋‚˜ํƒ€๋‚  ๋•Œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์€ ๋ณด์ด์ง€ ์•Š๋Š” ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋‚˜๋Š” ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์„ ๋งŒ๋“ค์—ˆ๋‹ค. 

์ด๋ฏธ์ง€๋ฅผ ๋“œ๋žํ–ˆ์„ ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ๋‘ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ

๋‘ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์„ ์ƒ์„ฑํ•˜๋Š” ์†Œ์Šค๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์˜ ์†Œ์Šค์™€ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€๋Š” ์•Š์ง€๋งŒ, ๋ชจ๋‹ฌ์ฐฝ์˜ ์ขŒ์ธก์—๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๊ณ , ์šฐ์ธก์—๋Š” "ํ…์ŠคํŠธ ์ž…๋ ฅ ํผ"๊ณผ "๊ณต์œ ํ•˜๊ธฐ ๋ฒ„ํŠผ"์ด ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค. ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” "img_upload_space" <div>์˜ width๋ฅผ ์ค„์—ฌ์ฃผ๊ณ , ํ•˜์œ„ <div>ํƒœ๊ทธ์˜ style ์†์„ฑ์˜ "border-left" ์†์„ฑ๊ฐ’์„ ํ†ตํ•ด ์„ธ๋กœ ํ…Œ๋‘๋ฆฌ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  <div>๋ฅผ ํ†ตํ•ด ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์—์„œ ์ฐพ์€ ํ…์ŠคํŠธ ์ž…๋ ฅ ํผ ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , ํ•˜๋‹จ์—๋Š” ๊ณต์œ ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค. 

html - ๋‘ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ ์†Œ์Šค

์ด๋ ‡๊ฒŒ ๋งŒ๋“  ๋‘ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์„ ์ฒซ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋“œ๋žํ–ˆ์„ ๋•Œ ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์‹œ ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

jQuery - ์ด๋ฏธ์ง€ ๋“œ๋ž˜๊ทธ

๋งŒ์•ฝ, ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ ์˜ฌ๋ ธ์„ ๋•Œ, ๊ทธ ํŒŒ์ผ์ด ์ด๋ฏธ์ง€์ด๋ผ๋ฉด, ์ฒซ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์€ "display: none"์ด ๋˜๊ณ , ๋‘ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์ฐฝ์€ "display: flex"๊ฐ€ ๋œ๋‹ค.

jQuery - ์ด๋ฏธ์ง€ ๋“œ๋ž ์‹œ ์ฒซ ๋ฒˆ์งธ ๋ชจ๋‹ฌ๊ณผ ๋‘ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์˜ ๋ณ€ํ™”

 

 

๐Ÿ“š ์š”์•ฝํ•˜์ž๋ฉด, 

ํ”ํžˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด "html, css๋กœ ๋งŒ๋“  ์›นํŽ˜์ด์ง€์— ์ƒ๋™๊ฐ์„ ๋ถˆ์–ด ๋„ฃ๋Š”๋‹ค."๊ณ  ํ•œ๋‹ค.

html๋กœ ์›น์˜ ๋‚ด์šฉ, ํฐ ํ‹€์„ ์ž‘์„ฑํ•˜๊ณ , css๋กœ ์›น์„ ๋””์ง€์ธํ•˜๋ฉฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์›น์˜ ๋™์ž‘์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

 

https://cholol.tistory.com/548

 

์ด ๊ฒŒ์‹œ๋ฌผ์˜ ๋ชจ๋“  ์ €์ž‘๊ถŒ์€ ๋งˆ์ด์ฎธ(mychew__)๋‹˜๊ป˜ ์žˆ์œผ๋ฉฐ, ์ €๋Š” ์˜ค์ง ํ•™์Šต๊ณผ ๊ธฐ๋ก์„ ๋ชฉ์ ์œผ๋กœ ํฌ์ŠคํŒ…ํ•œ ๊ฒƒ์ž„์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ข‹์€ ๊ฐ•์˜ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•ด์ฃผ์‹  ๋งˆ์ด์ฎธ๋‹˜๊ป˜ ๊ฐ์‚ฌ์˜ ๋ง์”€ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. (_ _)