๋งˆํฌ์—… ์ •๋ฆฌ
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/Publishing
๋ฒ„ํŠผ์€ buttonํƒœ๊ทธ. anchorํƒœ๊ทธ๋Š” ํŽ˜์ด์ง€ ์ด๋™. input์— label์„ ๋งค์นญ ๋ชปํ•  ๋•Œ๋Š” title ์‚ฌ์šฉ. a๋งํฌ ํ…์ŠคํŠธ์— aria-label="" a href="javascript:void(0)" ๋Œ€์ฒดํ…์ŠคํŠธ๋Š” aria-label ์ ์šฉ. aria-label์ ์šฉ์ด ์•„๋‹ ์‹œ sr-only ํด๋ž˜์Šค ์ ์šฉ. .sr-only { position:absolute; overflow:hidden; width:1px; height:1px; margin:-1px; padding:0px; clip:rect(0,0,0,0); } ๋งˆํฌ์—…์€ ํƒญ ํฌ์ปค์Šค ์œ„์น˜๋กœ ๋งŒ๋“ ๋‹ค.(ํŒ์—…์˜ ๋‹ซ๊ธฐ๋ฒ„ํŠผ์€ ๋งˆ์ง€๋ง‰์— ์ ์šฉ๋˜์•ผ ํ•จ) ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์€ ๋งˆํฌ์—… ์›น์ ‘๊ทผ์„ฑ์„ ์ฐธ๊ณ ํ•˜๊ธฐ ์ข‹๋‹ค. Q. sr-only๊ฐ€ ์žˆ๋Š”๋ฐ ์™œ font-size:0px์„ ์‚ฌ์šฉํ• ๊นŒ?..
[SASS] @mixin @content @include
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/SASS
๐Ÿ”บ๋ฌธ์ œ @include ์„ ์–ธ ํ›„ ์ถ”๊ฐ€ ์Šคํƒ€์ผ ์ง€์ •์ด ์•ˆ๋จ. parent์˜ child ์Šคํƒ€์ผ ์ง€์ • ์•ˆ๋จ. .parent { @include mix() { // ์Šคํƒ€์ผ์ง€์ • } ( // Error ) // Error .child { } } html ๊ตฌ์กฐ BOX1 BOX2 BOX3 @mixin @mixin ๋ฏน์Šค์ธ์ด๋ฆ„($๋งค๊ฐœ๋ณ€์ˆ˜: ๊ธฐ๋ณธ๊ฐ’) { ์Šคํƒ€์ผ; } @include ๋ฏน์Šค์ธ์ด๋ฆ„(์ธ์ˆ˜); @content @mixin ๋ฏน์Šค์ธ์ด๋ฆ„() { ์Šคํƒ€์ผ; @content; } @include ๋ฏน์Šค์ธ์ด๋ฆ„() { // ์Šคํƒ€์ผ๋ธ”๋ก ์Šคํƒ€์ผ; } @mixin position( $p: absolute; $t: null, $b: null, $l: null, $r: null ) { position: $p; top: $t; bottom: ..
[SASS] Node๋กœ sass ์‹œ์ž‘ํ•˜๊ธฐ
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/SASS
1. CLI๋กœ sass ์„ค์น˜ Node.js ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผ ๋จ. npm install sass -g ๋กœ CLI ์— ์„ค์น˜. 2. sass ๋ฒ„์ „ ํ™•์ธ $ npm show sass version $ sass --version 3. ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— scss -> css ๋ณ€ํ™˜ $ sass style.scss style.css $ sass ์ž…๋ ฅ. ํด๋” ์•ˆ์— ์žˆ์„ ๊ฒฝ์šฐ, $ sass scss/style.scss style.css 4. sass ๋ณด๊ธฐ , ๋๋‚ด๊ธฐ --watch๋ผ๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ๋„ฃ์–ด ํ•ด๋‹น ํŒŒ์ผ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜. $ sass --watch style.scss:style.css ์•„๋ž˜์ฒ˜๋Ÿผ ํด๋” ๋‚ด ๋ชจ๋“  ํŒŒ์ผ๋“ค์„ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋‹ค. sass --watch : $ sass --watch scss:css sass ์‹ค์‹œ..
[Git] 3 way merge ์ดํ•ดํ•˜๊ธฐ
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/Git
https://wonyong-jang.github.io/git/2021/02/05/Github-Merge.html [Git] Merge(3-way merge) ์ดํ•ดํ•˜๊ธฐ - SW Developer ๋‹ค๋ฅธ ํ˜•์ƒ ๊ด€๋ฆฌํˆด๋“ค๊ณผ๋Š” ๋‹ฌ๋ฆฌ git์€ branch๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŒŒ์ผ์˜ ์Šค๋ƒ…์ƒท๋งŒ ๊ฐ€์ง€๊ณ  ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์›์˜ ๋ถ€๋‹ด์—†์ด branch๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์  ๋•Œ๋ฌธ wonyong-jang.github.io ๊ฐœ๋… ์‰ฝ๊ฒŒ ์ •๋ฆฌ๋˜์–ด ์žˆ๋‹ค.
[CSS] counter : css๋กœ ์ˆœ๋ฒˆ๋‚˜ํƒ€๋‚ด๊ธฐ
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/CSS
counter ์‚ฌ์šฉ๋ฒ• counter์€ CSS์—์„œ ์ž๋™์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธฐ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. counter-reset ์นด์šดํ„ฐ์ด๋ฆ„๊ณผ ์‹œ์ž‘๊ฐ’์„ ์„ค์ •{ counter-reset: initial | ์นด์šดํ„ฐ์ด๋ฆ„/์ˆซ์ž | none } initial :: ์ดˆ๊ธฐํ™” ์นด์šดํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ด๋ฆ„ ์ˆซ์ž๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด 0 ์ˆซ์ž๋Š” ์Œ์ˆ˜๊ฐ’๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์นด์šดํ„ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ ์ž ํ•  ๋•Œ ๊ณต๋ž€์œผ๋กœ ๋ถ„๋ฆฌ. none :: ์„ค์ •๊ฐ’์ด ์—†์Œ(์ด๋ฏธ ์„ค์ •๋œ ๊ฒƒ์„ ์ทจ์†Œํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ) counter-increment counter-reset์œผ๋กœ ์„ค์ •ํ•œ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ์—ญํ• { counter-increment: initial | ์นด์šดํ„ฐ์ด๋ฆ„/์ˆซ์ž | none } initial :: ์ดˆ๊ธฐํ™” ์ˆซ์ž๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 1์”ฉ ์ฆ๊ฐ€ ์ˆซ์ž๋Š” ์Œ์ˆ˜๊ฐ’ ๊ฐ€..
Meta Tag, OG(์˜คํ”ˆ๊ทธ๋ž˜ํ”„) ์‚ฌ์šฉํ•˜๊ธฐ
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/Publishing
์˜คํ”ˆ๊ทธ๋ž˜ํ”„(Open Graph) ์ฝ˜ํ…์ธ ์˜ ์š”์•ฝ๋‚ด์šฉ์ด SNS์— ๊ฒŒ์‹œ๋˜๋Š”๋ฐ ์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ฒƒ ์›๋ฆฌ ๋งํฌ๋ผ๋Š” ๊ฒƒ์ด ์ธ์‹๋˜๋ฉด ํฌ๋กค๋Ÿฌ๊ฐ€ ํ•ด๋‹น ์›น์‚ฌ์ดํŠธ์˜ HTML head์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ํฌ๋กค๋งํ•˜์—ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ™”๋ฉด์„ ์ƒ์„ฑ ํ”„๋กœํ† ์ฝœ ๋น„๊ต์  ํ†ต์ผ๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ํŽ˜์ด์Šค๋ถ์˜ open graph ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ๋‹ค. ํŽ˜์ด์Šค๋ถ, ๋„ค์ด๋ฒ„๋ธ”๋กœ๊ทธ, ์นด์นด์˜คํ†ก ๋“ฑ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ open graph ๋ฌธ์„œ ํƒœ๊ทธ ์‚ฌ์šฉ๋ฒ• 800 X 800 ๋˜๋Š” 600 x 315 ๋˜๋Š” 1200 x 630 ๋Œ€๋‹ค์ˆ˜ ์นดํ†ก์œผ๋กœ ๋งŽ์ด url์„ ๋ณด๋‚ด๋ฏ€๋กœ 800x800์œผ๋กœ ๋งž์ถ”์—ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น์— ์„ค์ •ํ•ด์ค˜์•ผ ํ•˜๋Š” og ๋ฉ”ํƒ€ํƒœ๊ทธ ๋„ค์ด๋ฒ„๋ธ”๋กœ๊ทธ, ์นด์นด์˜คํ†ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์„ค์ • ํŠธ์œ„ํ„ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์„ค์ • Reference Meta Tag, OG(์˜ค..
[Git] Git push ์˜ค๋ฅ˜ํ•ด๊ฒฐ
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/Git
hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. github repository๋ฅผ ์ƒ์„ฑํ•  ๋•Œ readme.md ์ƒ์„ฑ์œผ๋กœ ์ธํ•œ ์˜ค๋ฅ˜๋ผ๊ณ  ..
[JavaScript] ์ฐธ์กฐ์— ์˜ํ•œ ๊ฐ์ฒด ๋ณต์‚ฌ
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/JavaScript
์ฐธ์กฐ์— ์˜ํ•œ ๊ฐ์ฒด๋ณต์‚ฌ ๊ฐ์ฒด์™€ ์›์‹œํƒ€์ž…์˜ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐ์ฒด๋Š” '์ฐธ์กฐ์— ์˜ํ•ด(by reference)' ์ €์žฅ๋˜๊ณ  ๋ณต์‚ฌ๋œ๋‹ค. ์›์‹œ๊ฐ’(๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฐ ๊ฐ’)์€ '๊ฐ’ ๊ทธ๋Œ€๋กœ' ์ €์žฅยทํ• ๋‹น๋˜๊ณ  ๋ณต์‚ฌ๋œ๋‹ค. let message = 'Hello'; let cloneMessage = message; cloneMessage = 'CloneHello'; console.log(message, cloneMessage); // Hello CloneHello ๊ฐ์ฒด๊ฐ€ ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋ฅผ ๋ณต์‚ฌํ•˜๋ฉด ๋™์ผํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ ๊ฐ’์ด ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์ง„๋‹ค. let user = { name: 'John'; } let admin = user; admin.name = ..