Banner

My Tech Blog (CSS)



๊พธ๋ฏธ๊ธฐ ๋ผ๊ณ  ํ•˜๊ธฐ์—๋Š” ์†Œ์†Œํ•˜์ง€๋งŒ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์†์„ฑ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๊ฐ„ ๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ” ์•„๋ž˜ ๋ฉ”์ธ ์˜์—ญ์— ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์œผ๋กœ ์†Œ๊ฐœ๊ธ€ ์ถ”๊ฐ€main์˜์—ญ์ด๋ผ๊ณ  ํ•ด์•ผ ํ• ์ง€ content ์˜์—ญ์ด๋ผ๊ณ  ํ•ด์•ผ ํ• ์ง€ 1. ์†Œ๊ฐœ๊ธ€ ์ถ”๊ฐ€ `jumbotron`ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๊ฐ•์กฐํ•˜๋Š” ํžˆ์–ด๋กœ ์„น์…˜์ด๊ณ  ํฐ ํ…์ŠคํŠธ์™€ ์—ฌ๋ฐฑ์„ ๊ธฐ๋ณธ์œผ๋กœ ํฌํ•จํ•จ๋ถ€ํŠธ์ŠคํŠธ๋žฉ 5์—์„œ๋Š” Jumbotron ํด๋ž˜์Šค๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ํด๋ž˜์Šค๋ฅผ ์กฐํ•ฉํ•ด์„œ ๋น„์Šทํ•œ ํšจ๊ณผ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋‚ด์•ผ ํ•œ๋‹ค. `rounded`์š”์†Œ์˜ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“ฌ  border-radius: 0.375rem (์•ฝ 6px)์—ฌ๊ธฐ์„œ rounded-circle, rounded-pill ์“ฐ๋ฉด ๋” ๊ทน๋‹จ์ ์œผ๋กœ(?) ๋‘ฅ๊ทผ ์Šคํƒ€์ผ ๊ฐ€๋Šฅ`display-4`ํ…์ŠคํŠธ๋ฅผ ํฌ๊ฒŒ ํ‘œ์‹œํ•˜๋Š” ํ—ค๋”ฉ ์Šคํƒ€์ผ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์˜ ๋””์Šคํ”Œ๋ ˆ์ด ํด๋ž˜์Šค์ธ๋ฐ ..
CSS Diner๋Š” CSS ์„ ํƒ์ž๋ฅผ ํ•™์Šตํ•˜๊ณ  ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ๋ฏธ์žˆ๋Š” ์›น ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„์ด๋‹ค.์‚ฌ์šฉ์ž๊ฐ€ HTML ์ฝ”๋“œ์— ์ ์šฉํ•  ์˜ฌ๋ฐ”๋ฅธ CSS ์„ ํƒ์ž๋ฅผ ์ž‘์„ฑํ•˜๋ฉด, ๊ฒŒ์ž„์˜ ๊ฐ ๋ ˆ๋ฒจ์„ ํด๋ฆฌ์–ดํ•˜๋ฉฐ ์ ์  ๋” ๋ณต์žกํ•œ ์„ ํƒ์ž๋ฅผ ์ตํž ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒŒ์ž„์€ CSS๋ฅผ ๋ฐฐ์šฐ๊ฑฐ๋‚˜ ๋ณต์Šตํ•˜๊ณ  ์‹ถ์€ ์ดˆ๋ณด์ž์™€ ์ค‘๊ธ‰์ž๋ฅผ ์œ„ํ•œ ์ข‹์€ ๋„๊ตฌ์ด๊ณ ํŠนํžˆ ์„ ํƒ์ž ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค๊ป˜ ์ถ”์ฒœํ•œ๋‹ค.ํฌ๋กค๋ง ์—ฐ์Šตํ•˜์‹œ๋Š” ๋ถ„๋“ค๊ป˜๋„ ๋งŽ์€ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค.  https://flukeout.github.io/ CSS DinerA fun game to help you learn and practice CSS selectors.flukeout.github.io ๊ฐ€์žฅ ์‰ฌ์šด ๋‚œ์ด๋„์ธ 1๋ฒˆ๋ถ€ํ„ฐ ๊ฐ€์žฅ ์–ด๋ ค์šด 32๋ฒˆ๊นŒ์ง€ ์žˆ๋‹ค.ใ…‹ใ…‹ ํ™”๋ฉด์—์„œ ๊ณ ๋ฅด๋ผ๊ณ  ํ•˜๋Š” ๋ฌผ๊ฑด์„ ๊ณ ๋ฅด๋Š” CSS..
์ด๋ฒˆ ํฌ์ŠคํŒ… ์„ค๋ช…์€ ์ œ๊ฐ€ ์ž‘์„ฑํ–ˆ์œผ๋‚˜ ์ด๋ฏธ์ง€๋Š” ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ž˜ ๊ทธ๋ ค์ง„ ๊ฒƒ๋“ค์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.์ด๋ฏธ์ง€๋งˆ๋‹ค ์ถœ์ฒ˜ ํ‘œ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค :)  ์—ฌ๊ธฐ ๊ฐ€์‹œ๋ฉด flex ์š”์†Œ๋“ค์„ ์ง์ ‘ ํด๋ฆญํ•ด ๋ณด๋ฉด์„œ ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ์„ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด์š”. flex-shrink - CSS: Cascading Style Sheets | MDNThe flex-shrink CSS property sets the flex shrink factor of a flex item. If the size of all flex items is larger than the flex container, the flex items can shrink to fit according to their flex-shrink value. Each flex line's negati..
1. ๊ฒŒ์‹œํŒ ๋ฉ”์ธ ํŽ˜์ด์ง€ `bbs.jsp`๋งŒ๋“ค๊ธฐ๋จผ์ € `main.jsp` ํŽ˜์ด์ง€์—์„œ ๊ฒŒ์‹œํŒ ๋ถ€๋ถ„ href ์†์„ฑ์— "bbs.jsp" ๋ฅผ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.  `main.jsp` ํŽ˜์ด์ง€๋ฅผ ๋ณต์‚ฌํ•ด์„œ webapp ์—๋‹ค ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜๊ณ  ์ด๋ฆ„๋งŒ `bbs.jsp`๋กœ ๋ฐ”๊พธ์ž.์—ฌ๊ธฐ์„œ ์ฝ”๋“œ์— ์†์„ ์ข€ ๋ณผ ๊ฒƒ์ด๋‹ค. ๋งŒ๋“ค์—ˆ์œผ๋ฉด `Home`์— ์žˆ๋˜ active ํด๋ž˜์Šค๋ฅผ `๊ฒŒ์‹œํŒ`์œผ๋กœ ์˜ฎ๊ฒจ ์ค˜์„œ ํ˜„์žฌ ์„ ํƒํ•œ ํŽ˜์ด์ง€์ž„์„ ๊ฐ€์‹œ์ ์œผ๋กœ ๋ณด์—ฌ ์ค€๋‹ค. ๊ทธ ๋‹ค์Œ ๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ” ์•„๋ž˜์— ๊ฒŒ์‹œํŒ ํ˜•์‹์˜ ํ…Œ์ด๋ธ”์„ ์‚ฝ์ž… ํ•ด ์ค€๋‹ค.ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ธฐ ์ „์—  `` ํƒœ๊ทธ๋กœ container์™€ row ์˜์—ญ์„ ์žก์•„ ์ฃผ๊ณ  ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด์ฃผ์ž.  ๋ฒˆํ˜ธ ..
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ๊ฐ„๋‹จํžˆ ํฌ์ŠคํŒ…ํ•˜๋ ค๊ณ  ์‹ฌํ”Œํ•œ To Do List๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค!    1. ๊ตฌ๊ธ€ํฐํŠธ, ์Šคํƒ€์ผ์‹œํŠธ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—ฐ๊ฒฐ- `style.css`์™€ `script.js` ์—ฐ๊ฒฐ- ๊ตฌ๊ธ€ ํฐํŠธ `Poppins`  ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ Embed Code๋ฅผ 2.  ์ „์ฒด  ์ ์šฉ๋  css ์„ค์ • & container์— ๋ฐฐ๊ฒฝ ์ถ”๊ฐ€โšก  ํฐํŠธ๋Š” ๊ตฌ๊ธ€ ํฐํŠธ `Poppins` ๋กœ ์„ค์ • โšก `box-sizing: border-box;`์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ `ํŒจ๋”ฉ(padding)`๊ณผ `ํ…Œ๋‘๋ฆฌ(border)`๊นŒ์ง€ ํฌํ•จํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ์†์„ฑ. ๊ธฐ๋ณธ์ ์œผ๋กœ CSS์—์„œ box-sizing์˜ ๊ธฐ๋ณธ๊ฐ’์€ `content-box`์ด๋‹ค. `content-box`๋Š” ์š”์†Œ์˜ `width`์™€ `height`๊ฐ€ ์ฝ˜ํ…์ธ  ์˜์—ญ..
๋ธ”๋กœ๊ทธ ๊พธ๋ฏธ๊ธฐ ํ•˜๋ฉด์„œ ๊ฐ„๋‹จํ•œ ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์Œ์•…์ด ์žฌ์ƒ ์ค‘์ผ ๋•Œ๋งŒ ํ˜„์žฌ ํ”Œ๋ ˆ์ด์ค‘์ธ ์Œ์•… ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ฝ”๋“œ ์–ด๋–ป๊ฒŒ ์งฐ๋Š”์ง€ ๊ฐ„๋‹จํžˆ ์˜ฌ๋ ค ๋ณธ๋‹ค. ํ”Œ๋ ˆ์ด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ธฐ ์ „๊นŒ์ง€๋Š” `Title` ๊ณผ `Progress Bar` ์ด ์ˆจ๊ฒจ์ ธ ์žˆ๋‹ค๊ฐ€ ๊ณก์ด ์žฌ์ƒ๋˜๋ฉด ์ œ๋ชฉ๊ณผ ํ”„๋กœ๊ทธ๋ ˆ์Šค๋ฐ”๊ฐ€ ํ”Œ๋ ˆ์ด์–ด ์œ„๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š” ์ฝ”๋“œ์ด๋‹ค. โšก music-info ํด๋ž˜์Šค CSS ์ฝ”๋“œ์Œ์•… ์žฌ์ƒ ์ „(๊ธฐ๋ณธ์ƒํƒœ).music-body .music-container .music-info { opacity: 0; /* ํˆฌ๋ช…๋„ 100%๋กœ ํ™”๋ฉด์—์„œ์ˆจ๊ฒจ์ง */ transform: translateY(100%); /* (์ˆ˜์ง ๋ฐฉํ–ฅ) ์ž๊ธฐ ์ž์‹  ๋†’์ด๋งŒํผ ์•„๋ž˜๋กœ ์ด๋™ */ transition: transform 0.3s ease-in..
1. form ํƒœ๊ทธencrype์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ๊ฐ’ "name", "method", "actioin", "encrype" ํŒŒ์ผ์ด๋‚˜ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๊ฐ€ ์žˆ๋Š” ํผ์€ ๋ฐ˜๋“œ์‹œ enctype="multipart/from-data" ์ด ํƒ€์ž…์œผ๋กœ ์ง€์ •์„ ํ•ด์•ผ ํŒŒ์ผ ์—…๋กœ๋“œ(์ „์†ก)์ด ๋œ๋‹ค. ๊ทธ๋ž˜์•ผ ์„œ๋ฒ„์— ํŒŒ์ผ์„ ์ €์žฅํ•ด์„œ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.    ๋ณด์•ˆ๋•Œ๋ฌธ์— ์ž๋™์™„์„ฑ์ด๋‚˜ ์ž…๋ ฅ ๊ฐ’ ์ฒดํฌ๋ฅผ ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด qutocomoplete="off" ํผ ์†์„ฑ๊ณผ "novalidate" ์†์„ฑ ์‚ฌ์šฉ + +  2. input ํƒœ๊ทธplaceholder="ํ…์ŠคํŠธ"์ž…๋ ฅ ํ•„๋“œ์— ์˜ˆ์ƒ๋˜๋Š” ์ถ”์ฒœ ๊ฐ’์„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ•˜๋Š” ์šฉ๋„ ํƒœ๊ทธ ํฌ์ปค์Šค ๋˜๋ฉด ์‚ฌ๋ผ์ง readonly์ฝ๊ธฐ ์ „์šฉ. ์ž…๋ ฅํ•„๋“œ๊ฐ€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ถˆ๊ฐ€ํ•œ ์ƒํƒœ๊ฐ€ ๋จ. ..
[HTML]div 6๊ฐœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  container๋กœ ๊ฐ์ŒŒ๋‹ค.    1    2    3    4    5    6    [CSS]html, bodyhtml,body {    margin: 0;    padding: 0;    box-sizing: border-box;    height: 100dvh;    width: 100%;} ํŽ˜์ด์ง€์˜ ๊ธฐ๋ณธ ์—ฌ๋ฐฑ, ํŒจ๋”ฉ ์ œ๊ฑฐ, html๊ณผ body์˜ ํฌ๊ธฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์˜ 100% ๋„ˆ๋น„์™€ 100dvh ๋†’์ด๋กœ ์„ค์ •. box-sizing: border-box;์œผ๋กœ ์ฝ˜ํ…์ธ  ํฌ๊ธฐ์™€ ํŒจ๋”ฉ, ํ…Œ๋‘๋ฆฌ๋ฅผ ํ•ฉ์ณ์„œ ๊ณ„์‚ฐ  `box-sizing`์˜ ์†์„ฑ์€ ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•œ๋‹ค. `content-box` (๊ธฐ๋ณธ๊ฐ’)๋Š” width์™€ height๊ฐ€ ์š”์†Œ์˜ ์ฝ˜ํ…์ธ  ์˜์—ญ ํฌ๊ธฐ๋งŒ์„ ..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'CSS' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ