๐Ÿ‘ฉ‍๐Ÿ’ป/CSS3 9

[CSS3/tailwindCSS] background-image๋ฅผ ํ†ตํ•ด ์ปค์Šคํ…€ ์ฒดํฌ ๋ฐ•์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

์ „์ฒด ๋™์˜ ์šฐ์„  ์ œ์ผ ๋จผ์ € ํƒœ๊ทธ์˜ type ์†์„ฑ์„ checkbox๋กœ ๋‘”๋‹ค. ์œ„ ์ฝ”๋“œ๋Š” ์ „์ฒด ๋™์˜๋ฅผ ์œ„ํ•œ checkbox input ์˜ˆ์ œ ์ฝ”๋“œ. TailwindCSS์™€ ์„ž์–ด ์จ์„œ ๋ช‡ ๊ฐ€์ง€๋ฅผ ์„ค๋ช…ํ•˜์ž๋ฉด, sr-only : ๋ผ๋ฒจ ๋‚ด ํƒœ๊ทธ ํ…์ŠคํŠธ๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์ฝํžˆ๋„๋ก ํ•œ๋‹ค. rounded-full : border-radius: 50%;์™€ ๋™์ผ. ์ฒดํฌ ๋ฐ•์Šค ์ด๋ฏธ์ง€๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“ ๋‹ค. checked:bg-green-default : green-default๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์œผ๋กœ tainwind.config.js ํŒŒ์ผ์— ๋“ฑ๋กํ•ด๋‘” ์ƒ‰์ƒ์œผ๋กœ background-color๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค. ๋‹จ, checked๊ฐ€ true์ผ ๋•Œ๋งŒ ํ™œ์„ฑํ™”ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. appearance-none : appearance: none;๊ณผ ๋™์ผํ•œ..

[CSS] writing-mode: vertical-rl, vertical-lr

ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ ๋””์ž์ธ์œผ๋กœ ๋œ ํฌ์Šคํ„ฐ๋ฅผ ์›น์— ๋„์šฐ๊ฒŒ ๋˜์–ด์„œ ์„ธ๋กœ๋กœ ๊ธ€์ž๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๋˜ ์ค‘์— writing-mode ์†์„ฑ์„ ์•Œ๊ฒŒ ๋๋‹ค. ๊ธฐ๋ณธ ์ •๋ ฌ๋งŒ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ ํ•ด๋‹น ์†์„ฑ์„ ์“ธ ์ผ์ด ์—†์—ˆ๋Š”๋ฐ, ์›๋ž˜ ์“ฐ๊ณ ์ž ํ–ˆ๋˜ ๊ฐ’์€ deprecated๋˜์—ˆ์ง€๋งŒ, ์ถ”ํ›„์— ๋ ˆํผ๋Ÿฐ์Šค์šฉ์œผ๋กœ ๋ธ”๋กœ๊ทธ์— ๋‚จ๊ธฐ๊ธฐ๋กœ ํ–ˆ๋‹ค. Can I use์— ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ 2021๋…„ 12์›” ๊ธฐ์ค€ Opera Mini๋งŒ ์ œ์™ธํ•˜๊ณ  ๊ฑฐ์˜ ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ทธ์ค‘ sideways-lr, sideways-rl์€ ํŒŒ์ด์–ดํญ์Šค๋งŒ ์ œ์™ธํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. A B C D E A B C D E ๊ฐ€ ๋‚˜ ๋‹ค ๋ผ ๋งˆ ๊ฐ€ ๋‚˜ ๋‹ค ๋ผ ๋งˆ .alignment-lr { writing-mode: vertical-lr } .alignment-rl { writing-mode: vert..

[CSS] position์˜ ์ดํ•ด. static/relative/absolute/fixed ๊ทธ๋ฆฌ๊ณ  sticky.

CSS ์†์„ฑ ์ค‘ fixed์™€ sticky ํ™œ์šฉ์„ ์ž˜ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ, ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ ๊ฒ€์šฉ์œผ๋กœ ๋˜ ๋ฉด์ ‘ ์ค€๋น„์šฉ์œผ๋กœ ๊ธฐ๋ก์„ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์šฐ์„  CSS์˜ position property์—๋Š” static, relative, absolute, fixed, sticky ๋‹ค์„ฏ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. CSS์˜ ๊ฐ ์†์„ฑ์€ top, right, left, bottom์˜ ์†์„ฑ์— ๊ฐ’์„ ๋„ฃ์–ด ์ตœ์ข…์ ์œผ๋กœ ๋ฌธ์„œ ๋‚ด ์š”์†Œ๊ฐ€ ์˜๋„๋Œ€๋กœ ๋ฐฐ์น˜๋  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ๋‹จ, static์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ์†์„ฑ๋“ค์€ ๋ฌผ๋ก , z-index ๊ฐ™์€ ์†์„ฑ์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค. ๋ฌธ์„œ์˜ ์›๋ž˜ ํ๋ฆ„์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์œ„์น˜๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. relative ํ•ด๋‹น ์†์„ฑ์„ ๊ฐ€์ง€๋Š” ์š”์†Œ๋Š” ์›๋ž˜์˜ ๋ฌธ์„œ ํ๋ฆ„์„ ๋ฐฐ์ œํ•˜์ง€ ์•Š์ง€๋งŒ, ์ž๊ธฐ ์ž์‹ ์„ ๊ธฐ์ค€ ์‚ผ์•„ top, bottom, r..

[CSS] ์š”์†Œ๋ฅผ fadeoutํ•œ ๋’ค์—๋„ ์—ฌ์ „ํžˆ clickableํ•  ๋•Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋ฌธ์ œ ์ƒํ™ฉ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ์œ„์˜ ๋ฌธ๋‹จ์ด fade out ๋˜๋ฉด์„œ ์‚ฌ๋ผ์ ธ์•ผ ํ•˜๋Š”๋ฐ, ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋“œ๋ž˜๊ทธํ•˜๋ฉด draggable ํ•˜๊ณ , ๋ณต์‚ฌ๊นŒ์ง€ ๋œ๋‹ค. ์ฝ”๋“œ .fade { animation: fade ease 1s forwards; } @keyframes fade { from { opacity: 1; } to { opacity: 0; } } ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์œ„ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐ”๊พผ๋‹ค. @keyframes fade { from { opacity: 1; pointer-events: all; } to { opacity: 0; pointer-events: none; } } ๋” ์ด์ƒ Clickable ํ•˜์ง€ ์•Š๋‹ค. pointer-events CSS ์†์„ฑ์€ ๊ทธ๋ž˜ํ”ฝ ์š”์†Œ๊ฐ€ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ํฌ์ธํ„ฐ ์ด๋ฒคํŠธ์˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ..

[CSS] Attribute Selector

์†์„ฑ์„ ์ด์šฉํ•œ CSS ์…€๋ ‰ํ„ฐ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์„œ ์žŠ์–ด๋ฒ„๋ ธ๋Š”๋ฐ, CSS Diner๋ผ๋Š” ๊ท€์—ฌ์šด ๊ฒŒ์ž„์„ ์ฐพ์€ ๊น€์— Attribute๋งŒ์„ ํ†ตํ•ด ์…€๋ ‰ํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค. A[attribute] a[href] input[disabled] input[type='checkbox'] ํƒœ๊ทธ ๋„ค์ž„, ํด๋ž˜์Šค ๋„ค์ž„, ID ๋“ฑ๋“ฑ ๋‹ค๋ฅธ CSS ์„ ํƒ์ž์™€ Attribute Selector๋ฅผ ํ•จ๊ป˜ ์“ฐ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์œ„ ์˜ˆ์‹œ๋Š” href='anything'์ธ a ํƒœ๊ทธ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ disabled ์†์„ฑ์„ ๊ฐ€์ง„ input์„ ์„ ํƒํ•œ๋‹ค. [Attribute] [value] { .. } value๋ผ๋Š” attribute๋ฅผ ๊ฐ€์ง„ ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค. ^, $, * [attribute^='value'] .toy[category^='S..

[responsive-web] CSS grid-layout repeat() (auto-fill, auto-fit)

๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ์„ ์ œ์ž‘ํ•  ๋•Œ, grid-template-columns์˜ repeat() ํ•จ์ˆ˜์˜ ๋‘ ์†์„ฑ๊ฐ’ auto-fill๊ณผ auto-fit์˜ ์ฐจ์ด์ . repeat() ํ•จ์ˆ˜ ๋งŒ์ผ, ์นผ๋Ÿผ 12๊ฐœ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, ์šฐ๋ฆฌ๋Š” ๋ช…์‹œ์ ์œผ๋กœ repeat() ํ•จ์ˆ˜์•ˆ์— ๊ทธ ๊ฐ’์„ ์ ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค. .grid { display: grid; /* define the number of grid columns */ grid-template-columns: repeat(12, 1fr); column-gap: 12px; row-gap: 8px; } ์ด ๊ฐ€๋กœ ๋‹จ ์•ˆ์—์„œ ์นผ๋Ÿผ 12๊ฐœ๊ฐ€ ๋ฏธ๋ฆฌ ์ง€์ •ํ•ด์ค€ row-gap, column-gap ๊ฐ’์„ ์œ ์ง€ํ•˜๋ฉฐ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๊ฐ row์— ์ปฌ๋Ÿผ 12๊ฐœ๋ฅผ ์ •๋ ฌํ•˜๋ผ๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ, ํ™”๋ฉด ํฌ๊ธฐ..

[responsive-web] px, em, rem๋‹จ์œ„๋ฅผ ์ ์žฌ์ ์†Œ์— ์“ฐ๊ธฐ

๊ฐ ๋‹จ์œ„๋ฅผ ์ž˜ ๋ชจ๋ฅด๊ณ  px๋งŒ ์ฃผ๊ตฌ์žฅ์ฐฝ ์“ฐ๋‹ค๊ฐ€, ์ƒ๊ฐ๋‚œ ๊น€์— ์ •๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ์–ด์„œ, ์ด๋Ÿฐ ์ €๋Ÿฐ ๊ฐ•์˜๋“ค ๋ชจ์•„ ๋ณด๊ณ , ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ฒจ๋ดค๋‹ค. ์š”์•ฝํ•˜์ž๋ฉด, px์€ ๊ณ ์ •๋œ ๊ฐ’, ๋น„์œจ์„ ๋ฐ˜์˜ํ•˜์ง€ ๋ชปํ•˜๋‹ˆ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. em์€ ํ…์ŠคํŠธ์™€ ๊ด€๋ จ์ด ๋†’์€๋ฐ, ์–ด๋–ค ๋””์ž์ธ์ด ํ…์ŠคํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‚ผ์„ ๊ฒฝ์šฐ '๊ทธ ๋น„์œจ์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•  ํ•„์š”์„ฑ์ด ์žˆ์„ ๋•Œ ์œ ์šฉ'ํ•œ ๋‹จ์œ„. rem์€ em์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๋‹จ์œ„๋กœ, root์ธ ์˜ ๊ธฐ๋ณธ font-size๋งŒ์„ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค. em(์— )์˜ ์–ด์› - ๊ณผ๊ฑฐ ๊ธˆ์† ํ™œ์ž๋ฅผ ์ฐ๋˜ ์‹œ์ ˆ, ํฐํŠธ๋“ค์˜ ๊ธฐ์ค€์ ์ด ๋  ํ•˜๋‚˜์˜ ํฐํŠธ ๊ทœ๊ฒฉ์€ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž M์ด ๋งก์•˜๋‹ค. M์ด ๊ฐ€์žฅ ํญ์ด ๋„“๊ณ , ๋„ค๋ชจ ํ˜•ํƒœ๋ฅผ ๋„์—ˆ์œผ๋ฏ€๋กœ, M์„ ๋‹ด์„ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค๋ฅธ ์•ŒํŒŒ๋ฒณ๋“ค์„ ๋ชจ๋‘ ๋‹ด์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด..

[interactive-web] will-change

์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์›น ๊ธฐ์ˆ  ๊ด€๋ จ ๋น„์ฃผ์–ผ ์•„ํ‹ฐํด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์•Œ๊ฒŒ ๋œ CSS ์†์„ฑ ์ค‘ ํ•˜๋‚˜์ธ will-change. ์ ์žฌ์ ์†Œ์— ์ œํ•œ์ ์œผ๋กœ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์„ฑ๋Šฅ์„ ์˜ฌ๋ ค์ค„ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด๋‹ค. ์•ž์œผ๋กœ ์ผ์–ด๋‚  ์†์„ฑ ๋ณ€ํ™”๋ฅผ ๋ฏธ๋ฆฌ ๋ธŒ๋ผ์šฐ์ €์— ์•Œ๋ ค ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„์‹œํ‚ค๋Š” ์†์„ฑ์ด๋ฏ€๋กœ, ์„ฑ๋Šฅ ๋น„์šฉ์ด ํด ๊ฒฝ์šฐ ์ œํ•œ์ ์œผ๋กœ ์ผ์„ ๋•Œ ํšจ๊ณผ๊ฐ€ ํฌ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด๋ฏธ ๋ธŒ๋ผ์šฐ์ €๋Š” ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๊ฐ€๋Šฅํ•œ ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ ์ค‘์ด๋ฏ€๋กœ, ๊ณผํ•˜๊ฒŒ ์“ธ ๊ฒฝ์šฐ ์˜คํžˆ๋ ค ๋ฐ˜๋Œ€ ํšจ๊ณผ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋„ˆ๋ฌด ๋งŽ์ด will-change๋ฅผ ์“ฐ์ง€ ๋ง ๊ฒƒ. ๋งˆ์ง€๋ง‰ ์ˆ˜๋‹จ์œผ๋กœ ์“ฐ๋ผ๊ณ  ์กฐ์–ธ์ด ๋‚˜์™€ ์žˆ๋‹ค. 21๋…„ 1์›” ํ™•์ธํ–ˆ์„ ๋•Œ, IE ์ง€์›์ด ์•ˆ ๋œ๋‹ค๊ณ  ๋‚˜์™€ ์žˆ๋‹ค. ์ฐธ๊ณ  developer.mozilla.org/ko/docs/Web/CSS/will-change ..

HTTP/1๊ณผ HTTP/2์˜ ๋น„๊ต ๊ทธ๋ฆฌ๊ณ  CSS ์Šคํ”„๋ผ์ดํŠธ(Sprite) ๊ธฐ๋ฒ•์˜ ์œ ํšจ์„ฑ

๋งจ ์ฒ˜์Œ ํ”„๋ก ํŠธ์—”๋“œ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ๋Š” ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ•์„ ๊ฒฝํ—˜ํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋‹ค๊ฐ€, ํ•™์›์—์„œ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ์ฒ˜์Œ ์ ‘ํ•˜๊ณ  ๊ต‰์žฅํžˆ ์‹ ๊ธฐํ–ˆ์—ˆ๋‹ค. background-image, background-position ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งค๋ฒˆ ์ด์šฉํ•˜๋ฉฐ, ์ƒ๋‹นํžˆ ๊ท€์ฐฎ์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๋‚˜๋ฆ„ HTTP/1 ํ”„๋กœํ† ์ฝœ์—์„œ ๋ฆฌ์†Œ์Šค ์š”์ฒญ์„ ๋œ ํ•˜๊ธฐ ์œ„ํ•œ ๋‚˜๋ฆ„์˜ ๋…ธ๋ ฅ์œผ๋กœ ํƒ„์ƒํ•œ ๊ธฐ๋ฒ•์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ์šฐ์„  ์ด ์„ธ ๊ฐ€์ง€์˜ ๊ด€๊ณ„๋„๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” HTTP/2์™€ HTTP/1์˜ ์ฐจ์ด์ ์„ ์•Œ์•„์•ผ ํ•œ๋‹ค. HTTP๋Š” ์›น ์„œ๋น„์Šค์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์— ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ๋กœ, ์—ฌ๊ธฐ์—์„œ๋„ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์ด ๊ธฐ์กด์˜ ๊ธฐ์ˆ ์„ ๋ณด์™„ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ๋„์ž…๋˜๋Š” ๊ฒƒ์€ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. HTTP/2 ์—ญ์‹œ HTT..