[๋ฉ‹์‚ฌ๐Ÿฆ] 2์ฃผ์ฐจ(๋ชฉ) ๋ฐ˜์‘ํ˜• ์›น, ํฌ๋กœ์Šค๋ธŒ๋ผ์šฐ์ง•, ํŽ˜์ด์ง€ ํด๋ก 

์Ÿˆ๋ชฝยท2021๋…„ 11์›” 11์ผ
1

๊ฐœ๋ฐœ๋‰ด๋น„(21/10/23~)

๋ชฉ๋ก ๋ณด๊ธฐ
16/20

๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ๐Ÿฆ ํ”„๋ก ํŠธ์—”๋“œ ์Šค์ฟจ 1๊ธฐ 2์ฃผ์ฐจ(๋ชฉ) ํšŒ๊ณ  - November 11, 2021.

[ ๊ณต๋ถ€ ]

์ด์ œ ๊ณ„์† ๋‹ค์Œ ์ฃผ๊นŒ์ง€๋Š” ์‹ค์Šต ์œ„์ฃผ์˜ ์ˆ˜์—…์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
HTML/CSS์—๋Š” ์ •๋‹ต์€ ์—†์ง€๋งŒ ๋” ํŽธํ•œ ๋ฐฉ๋ฒ•์€ ํ™•์‹คํžˆ ์žˆ๋‹ค๊ณ !
๋งŽ์€ ๊ฒฝํ—˜๋งŒ์ด ๋‹ต์ด๊ฒ ์ง€... ๐Ÿ˜โ—

4์ฃผ์ฐจ์—๋Š” SASS์™€ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ, ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด, AWS, ๋ฐ˜์‘ํ˜• ๊ตฌํ˜„ ์‹ค์Šต ๋“ฑ์ด ์˜ˆ์ •๋˜์–ด ์žˆ๊ณ ,
HTML/CSS ํŒŒํŠธ๋ฅผ ์™„์ „ํžˆ ๋๋‚ธ ๋’ค 5์ฃผ์ฐจ๋ถ€ํ„ฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ง„๋„๋ฅผ ๋‚˜๊ฐ„๋‹ค๊ณ  ํ•œ๋‹ค.
๊ผญ ๋ฏธ๋ฆฌ ํ‹ˆ๋‚  ๋•Œ๋งˆ๋‹ค ๋Œ€๋น„ํ•ด๋‘ฌ์•ผ๊ฒ ๋‹ค !!


[ ๊ฐ•์˜์š”์•ฝ ]

๋ฐ˜์‘ํ˜• ์›น(Responsive Web) ๋˜๋Š” ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์ด๋ž€?

  • ํ™”๋ฉด์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ์„œ ์›นํŽ˜์ด์ง€์˜ ๊ฐ ์š”์†Œ๋“ค์ด ๋ฐ˜์‘ํ•ด ์ตœ์ ํ™”๋˜์–ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

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

  • ์š”์ฆ˜์€ ์ข…์ข… ๋งŽ์€ ๊ฒฝ์šฐ์— ๋ชจ๋ฐ”์ผ ์šฐ์„ ์œผ๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค.


๋ฏธ๋””์–ด ์ฟผ๋ฆฌ @media

  • ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋Š” ํŠน์ • ์กฐ๊ฑด (๋‹จ๋ง๊ธฐ์˜ ์œ ํ˜•, ํ™”๋ฉด ํ•ด์ƒ๋„, ๋ทฐํฌํŠธ ๋„ˆ๋น„ ๋“ฑ)์—์„œ
    / ํŠน์ • ์Šคํƒ€์ผ๋งŒ ์ ์šฉ๋˜๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.
/* screen width >= 1440px */
@media(min-width: 1440px) {
	div {
		display: none;
	}
}

ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ 1440px๋ณด๋‹ค ์ปค์ง€๋ฉด (= ์ตœ์†Œ 1440px์ด ๋์„ ๋•Œ๋ถ€ํ„ฐ) / div ์•ˆ๋ณด์ด๊ฒŒ

/* screen width <= 1440px */
@media(max-width: 1440px) {
	div {
		display: none;
	}
}

ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ 1440px๋ณด๋‹ค ์ž‘์•„์ง€๋ฉด (= ์ตœ๋Œ€ 1440px์ด ๋  ๋•Œ๊นŒ์ง€) / div ์•ˆ๋ณด์ด๊ฒŒ

  • min-width๋Š” ์ตœ์†Œ ~ ๋ถ€ํ„ฐ, max-width๋Š” ์ตœ๋Œ€ ~ ๊นŒ์ง€๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋‹ค.
  • @media screen์—์„œ screen์€ ์•ก์ •์ด ์žˆ๋Š” ํ™”๋ฉด์„ ๊ฐ€์ง„ ๋ชจ๋“  ๊ธฐ๊ธฐ๋ฅผ ๋งํ•œ๋‹ค.
    @media print๋Š” ํ”„๋ฆฐํŠธ ๊ฒฐ๊ณผ๋ฌผ ๋ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ™”๋ฉด์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

Cross(์ƒํ˜ธ ํ˜ธํ™˜) Browsing๊ณผ Web Standard

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

  • ๊ฐ OS ๋ฐ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๋ Œ๋”๋ง ์—”์ง„์˜ ์ฐจ์ด๋กœ ์ธํ•ด ๋˜‘๊ฐ™์€ ์›น ํŽ˜์ด์ง€๋„ ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ด๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์›น ์ ‘๊ทผ์„ฑ์„ ๋†’์—ฌ ์ •๋ณด ๊ฒฉ์ฐจ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ๋Š”,
    ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•์„ ๊ณ ๋ คํ•˜๊ณ  ์›น ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค.

โญ Can I Use (https://caniuse.com/)
โญ W3C HTML/CSS validator
(https://validator.w3.org/nu/), (https://jigsaw.w3.org/css-validator/)

  • validation ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค๋Š” ๊ฒƒ์€ ์ ์–ด๋„ ์›นํ‘œ์ค€์„ ์œ„๋ฐ˜ํ•˜์ง„ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ,
    ์ด๊ฒƒ์€ ์ตœ์†Œํ•œ์˜ ๊ฒ€์‚ฌ๋‹ค.

์›น ์ ‘๊ทผ์„ฑ์„ ๊ณ ๋ คํ•œ ์‹œ๋งจํ‹ฑ HTML

  • ์‹œ๋งจํ‹ฑ ์›น ๋ฐ ์›น ์ ‘๊ทผ์„ฑ์„ ์œ„ํ•ด์„œ๋Š” ๋งˆํฌ์—…์—์„œ ํฐ ์„น์…˜์„ ๋‚˜๋ˆŒ ๋•Œ๋งˆ๋‹ค <h1>,<h2>,<h3> ๋“ฑ heading ํƒœ๊ทธ๋ฅผ ์ ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ํ•ต์‹ฌ ๋‚ด์šฉ์ด heading ํƒœ๊ทธ์— ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‚ด์šฉ์„ ๋ถ„์„ํ•  ๋•Œ ์•„์ฃผ ์œ ์šฉํ•˜๋‹ค.
  • ๋‹ค์Œ์€ heading ํƒœ๊ทธ๊ฐ€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์—๋Š” ์ฝํžˆ๋˜, ํ™”๋ฉด์—๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
position: absolute;
clip: react(0, 0, 0, 0);
width: 1px;
height: 1px;
margin: -1px;
overflow: hidden;

reset.css ์œ ์šฉํ•œ ์ถ”๊ฐ€ ์˜ต์…˜

a {
    text-decoration: none;
    color: inherit;
img {
    display: block;
    width: 100%;
}

Material Design

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

์ž์ฃผ ์“ฐ์ด๋Š” ํด๋ž˜์Šค ๋ช… ํ•จ์ถ•์–ด

  • exc: excute
  • cont: contents
  • gnb: global nabigation
  • lnb: local nabigation
  • snb: side nabigation
  • tbl: table

์‹ค์Šต์„ ํ†ตํ•ด position ์ดํ•ดํ•˜๊ธฐ

1) ๋กœ๊ณ  ๋’ค ์ •์ค‘์•™์— ์‹œ๊ณ„ ๋„ฃ๊ธฐ

.tit-law::after {
	content:'';
	display: block;
	position: absolute;
	**top: 50%;**
	**left: 50%;**
	width: 225px;
	height: 225px;
	transform: translate(-50%, -50%);
	background-image: url(images-law/title_bg.png);
	background-size: 225px;
}

top: 50%, left: 50%๋ฅผ ์ฃผ๋ฉด ๋ถ€๋ชจ์˜ ๋„“์ด, ๋†’์ด์—์„œ 50% ๋งŒํผ ์ด๋™ํ•˜๊ฒŒ ๋œ๋‹ค.
width์™€ height ๊ฐ’์„ ์•Œ๊ณ  ์žˆ์œผ๋‹ˆ๊นŒ transform: translate(-50%, -50%); ๋Œ€์‹ 
margin ๊ฐ’์„ ์ •ํ™•ํžˆ ๋ช…์‹œํ•ด์ค˜๋„ ๋œ๋‹ค. (width, height ๊ฐ’์˜ ์ ˆ๋ฐ˜์”ฉ)

margin-top: -112px;
margin-left: -112px; 

2) ํฐ ๋”ฐ์˜ดํ‘œ ๋„ฃ๊ธฐ

.txt-desc::before,
.txt-desc::after {
	position: absolute;
	top: 50%;
	display: block;
	content: '';
	width: 37px;
	height: 32px;
	margin-top: -16px;
}

.txt-desc::before {
	left: 0;
	background-image: url('images-law/txt-left.png');
}

.txt-desc::after {
	right: 0;
	background-image: url('images-law/txt-right.png');
}

.txt.desc ์–‘์˜†์œผ๋กœ ํฐ ๋”ฐ์˜ดํ‘œ๋ฅผ ํ•˜๋‚˜๋Š” ::before, ํ•˜๋‚˜๋Š” ::after๋กœ ์žก์€ ๋‹ค์Œ,
.txt.desc์—๋Š” relative, ๊ฐ€์ƒ์š”์†Œ๋“ค์—๋Š” absolute๋ฅผ ์ค€๋‹ค.
.txt.desc๊ฐ€ <p>ํƒœ๊ทธ์ด๋ฏ€๋กœ ๊ธฐ๋ณธ๊ฐ’์ด display: block;์ด๋‹ˆ width ๊ฐ’์„ ์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
์™ผ์ชฝ ๋”ฐ์˜ดํ‘œ์—์„œ tit-desc์„ ๊ฑฐ์ณ ์˜ค๋ฅธ์ชฝ ๋”ฐ์˜ดํ‘œ๋กœ ์ด์–ด์ง€๋Š” ์ „์ฒด ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค.


  • ์œ„์ง€์œ… (WYSWYG; What You See What You Get)
    : ๋ณด๋Š” ๋Œ€๋กœ ์–ป๋Š”๋‹ค๋Š” ๋œป์œผ๋กœ, ๋ฌธ์„œ ํŽธ์ง‘ ๊ณผ์ •์—์„œ ํ™”๋ฉด์— ํฌ๋งท๋œ ๋‚ฑ๋ง, ๋ฌธ์žฅ์ด ์ถœ๋ ฅ๋ฌผ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋‚˜์˜ค๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.
  • ํฐํŠธ ํŒŒ์ผ์ด ๋ฌด๊ฑฐ์›Œ์„œ ์—ฌ๋Ÿฌ ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์—” ํšจ์œจ์ด ์ข‹์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ๋ฒˆ ์“ฐ์ด๋Š” ํฐํŠธ์ผ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ํ™” ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ๋ ˆ์ด์•„์›ƒ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” margin, padding ๊ฐ’๋“ค์€ CSS ์ž‘์„ฑ ์‹œ ์ƒ๋‹จ์— ์ž‘์„ฑํ•  ๊ฒƒ.
  • inline CSS ๋ฐฉ์‹์€ ๊ฐ€์ค‘์น˜ 1000์ ์ด๋ฉฐ, ๊ถŒ์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • <q>ํƒœ๊ทธ์™€ <blockquote>ํƒœ๊ทธ๋Š” ๊ฐ๊ฐ ํ•œ ์ค„ ์ธ์šฉ๋ฌธ(quote)๊ณผ ์—ฌ๋Ÿฌ ์ค„ ์ธ์šฉ๋ฌธ์— ์“ฐ์ธ๋‹ค.
  • <button>์˜ ๊ธฐ๋ณธ type์€ submit์ด๋ฏ€๋กœ ๊ตณ์ด ๋ช…์‹œํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
  • <footer>์˜ copyright ๋ถ€๋ถ„์€ <small> ํƒœ๊ทธ๋กœ ๊ฐ์‹ธ๋ฉด ์ข‹๋‹ค.

> ์ฐธ๊ณ ์ž๋ฃŒ

1) https://opentutorials.org/course/3086/18323 ๋ฐ˜์‘ํ˜• ๋””์ž์ธ - ์ƒํ™œ์ฝ”๋”ฉ
2) https://onlydev.tistory.com/1 ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•
3) https://pstudio411.tistory.com/entry/ํฌ๋กœ์Šค-๋ธŒ๋ผ์šฐ์ง•-์•Œ์•„๋ณด๊ธฐ
4) https://material.io/design ๋จธํ‹ฐ๋ฆฌ์–ผ ๋””์ž์ธ
5) https://developers-kr.googleblog.com/2014/07/this-is-material-design.html ๊ตฌ๊ธ€ ๊ฐœ๋ฐœ์ž ๋ธ”๋กœ๊ทธ

profile
FE ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ์ถ”์ง„๋ ฅ์„ ์–ป๋Š” ์ค‘

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