๐Ÿ“ŒLanguage/HTML & CSS

TIL) ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€ CSS, block&inline, ์ปจํ…์ธ ๊ฐ€ ๋ฐ•์Šค๋ฅผ ๋ฒ—์–ด๋‚œ๋‹ค๋ฉด? ๋ ˆ์ด์•„์›ƒ ๋””์ž์ธ ์‰ฝ๊ฒŒํ•˜๊ธฐ, ์…€๋ ‰ํ„ฐ, ๊ฒŒ์ž„์œผ๋กœ css ๋ฐฐ์šฐ๊ธฐ

hellohailie 2022. 5. 2. 13:58

CSS (Cascading Style Sheets)๋ž€?

์›น ํŽ˜์ด์ง€ ์Šคํƒ€์ผ ๋ฐ ๋ ˆ์ด์•„์›ƒ์„ ์ •์˜ํ•˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ ์–ธ์–ด์ด๋‹ค. 

CSS๋Š” ์›น์‚ฌ์ดํŠธ ์‚ฌ์šฉ์ž๊ฐ€ HTML ๋ฌธ์„œ์— ์ž‘์„ฑ๋œ ์ฝ˜ํ…์ธ ๋ฅผ ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ฆ‰, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(user interface)๋ฅผ ๋งŒ๋“ ๋‹ค.

 

์ง๊ด€์ ์ด๊ณ  ์‰ฌ์šด UI ์ œ์ž‘์€ (user interface: ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค) ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜ ๊ธฐ๋ณธ ์†Œ์–‘์ด๋‹ค. 

 

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

 

์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ (UX; user experience)์€ ์ง๊ด€์ ์ด๊ณ  ์‰ฌ์šด UI์—์„œ ๋‚˜์˜จ๋‹ค. 

 

๋ณต์žกํ•œ ๋‚ด์šฉ์„ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌ๋ถ„ ์ง“๊ณ , ํŽ˜์ด์ง€๋ฅผ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ํŽ˜์ด์ง€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๋‚˜์˜ ๋‚ด์šฉ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก UX๋ฅผ ๊ณ ๋ คํ•ด์„œ ๋ฆฌ๋””์ž์ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

 


ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ ค๋ฉด...

๊ทธ๋ž˜์„œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ ค๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ฃฌ ์—ฌ๋Ÿฌ ๋‚ด์šฉ์„ ์‹ค์ œ ๋งŒ๋“ค์–ด์„œ ์›น ํŽ˜์ด์ง€๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์›น ํŽ˜์ด์ง€ ์ œ์ž‘์„ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜ ์—ญ๋Ÿ‰์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ฌถ์–ด์„œ ์ œ์ž‘
  • ํ™”๋ฉด์˜ ๊ตฌ์„ฑ์ด๋‚˜ ๋ฐฐ์น˜ (๋ ˆ์ด์•„์›ƒ ๋””์ž์ธ)
  • ๊ตต์€ ๊ธ€์”จ์™€ ๊ฐ™์€ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ์™€ ์ƒ‰์ƒ์„ ์ ์šฉํ•˜๋Š” ์ผ ๋“ฑ

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์˜ ๋‚ด์šฉ์€ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์žˆ์œผ๋ฉด ์ข‹๊ณ , ์—†์–ด๋„ ํฌ๊ฒŒ ์ƒ๊ด€์—†๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

  • ์ •๋ ฌ์ด๋‚˜ ๋ฐฐ์ƒ‰์— ๋Œ€ํ•œ ๊ฐ๊ฐ
  • UX์— ๋Œ€ํ•˜์—ฌ ๊ณ ๋ฏผํ•ด ๋ณด๊ณ , UX๊ฐ€ ์ž˜ ์ ์šฉ๋œ ์›น์ด๋‚˜ ์•ฑ์„ ๋ถ„์„ํ•ด ๋ณธ ๊ฒฝํ—˜

 


 

์…€๋ ‰ํ„ฐ๋Š” ์š”์†Œ ์ด๋ฆ„์ด๋‚˜ id, ๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ์„ ํƒํ•œ๋‹ค.

์…€๋ ‰ํ„ฐ๋กœ ํŠน์ • ์š”์†Œ๋ฅผ ์„ ํƒํ–ˆ๋‹ค๋ฉด, ์ค‘๊ด„ํ˜ธ ์•ˆ์—์„œ ์ด ์š”์†Œ์— ์ ์šฉํ•  ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ๋‹ค.

์š”์†Œ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์„ ์†์„ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 


HTML ํŒŒ์ผ์˜ head์— ์•„๋ž˜ ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…ํ•ด์•ผ๋งŒ css๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

href ๋’ค์—๋Š” cssํŒŒ์ผ๋ช…์ด ์˜จ๋‹ค. 

<link rel="stylesheet" href="index.css" />

 

 


 

 


  • ์ ˆ๋Œ€ ๋‹จ์œ„: px, pt ๋“ฑ
  • ์ƒ๋Œ€ ๋‹จ์œ„: %, em, rem, ch, vw, vh ๋“ฑ

 

๋ฐ˜์‘ํ˜• ์›น์„ ๋งŒ๋“ค๋•Œ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋””๋ฐ”์ด์Šค ๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ์กฐ์ ˆํ•ด๊ฐ€๋ฉฐ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

ํ™”๋ฉด ๋„ˆ๋น„๋‚˜ ๋†’์ด์— ๋”ฐ๋ฅธ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ, vw, vh๋ฅผ ์‚ฌ์šฉ!

 

 


HTML ๋ฌธ์„œ์˜ ๋ ˆ์ด์•„์›ƒ

 

block level ์š”์†Œ : ์ค„๋ฐ”๊ฟˆ์ด ๋œ๋‹ค.  <h1>, <p>

inline level ์š”์†Œ : ์ค„๋ฐ”๊ฟˆ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. <span>

 

 

 

 


border๋ฅผ ๊ธฐ์ค€์œผ๋กœ padding๊ณผ margin์ด ์žˆ๋‹ค.

 

 

๋ฐ•์Šค๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ๋‹ค๋ฉด 

css์—์„œ ๐Ÿ‘‡๋ฅผ ์ถ”๊ฐ€ํ•˜์ž! (์Šคํฌ๋กค์„ ํ‘œ์‹œํ•œ๋‹ค.)

overflow: auto;

 

 

๋ ˆ์ด์•„์›ƒ ๋””์ž์ธ ์‰ฝ๊ฒŒํ•˜๊ธฐ: ์—ฌ๋ฐฑ๊ณผ ํ…Œ๋‘๋ฆฌ ๋‘๊ป˜๋ฅผ ํฌํ•จํ•ด์„œ ๋ฐ•์Šค ํฌ๊ธฐ ๊ณ„์‚ฐํ•˜๊ธฐ
* {
  box-sizing: border-box;
}

 

 

 


์ž์‹ ์…€๋ ‰ํ„ฐ (<span> ์š”์†Œ์˜ ์ž์‹์ธ <p> ์š”์†Œ๋Š” ์„ ํƒ๋˜์ง€ ์•Š๋Š”๋‹ค.)

header > p { }
<header>
	<p> <!-- ์„ ํƒ -->
		<span>
			<p></p>
		</span>
	</p>
	<p> <!-- ์„ ํƒ -->
		<span>
			<p></p>
		</span>
	</p>
</header>

 


ํ›„์† ์…€๋ ‰ํ„ฐ (<header> ์š”์†Œ์˜ ์ž์‹์ธ <p> ์š”์†Œ๋ฅผ ๋ฟ ์•„๋‹ˆ๋ผ, <header> ์š”์†Œ์˜ ์ž์‹์˜ ์ž์‹์ธ ์žˆ๋Š” <p> ์š”์†Œ๊นŒ์ง€ ๋ชจ๋‘ ์„ ํƒ)

 

header p {}
<header>
	<p><!-- ์„ ํƒ -->
		<span>
			<p><!-- !!์„ ํƒ!! -->
			</p>
		</span>
	</p>
	<p><!-- ์„ ํƒ -->
		<span>
			<p><!-- !!์„ ํƒ!! -->
			</p>
		</span>
	</p>
</header>

 


์ผ๋ฐ˜ ํ˜•์ œ ์…€๋ ‰ํ„ฐ (์…€๋ ‰ํ„ฐA์˜ ํ˜•์ œ ์š”์†Œ ์ค‘ ์…€๋ ‰ํ„ฐA ๋’ค์— ์œ„์น˜ํ•˜๋Š” ์…€๋ ‰ํ„ฐB ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์„ ํƒ)

์…€๋ ‰ํ„ฐA ~ ์…€๋ ‰ํ„ฐB { }
<body>
  <div>A div element.</div>
  <ul>
    <li>Coffee</li>
    <li>Tea</li>
    <li>Milk</li>
  </ul>

  <p>The first paragraph.</p>
  <ul>
    <li>Coffee</li>
    <li>Tea</li>
    <li>Milk</li>
  </ul>

  <h2>Another list</h2>
  <ul>
    <li>Coffee</li>
    <li>Tea</li>
    <li>Milk</li>
  </ul>
</body>

See the Pen Untitled by HelloHailie (@hellohailie) on CodePen.

์ธ์ ‘ ํ˜•์ œ ์…€๋ ‰ํ„ฐ (์…€๋ ‰ํ„ฐA์˜ ํ˜•์ œ ์š”์†Œ ์ค‘ ์…€๋ ‰ํ„ฐA ๋ฐ”๋กœ ๋’ค์— ์œ„์น˜ํ•˜๋Š” ์…€๋ ‰ํ„ฐB ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค. A์™€ B ์‚ฌ์ด์— ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ์กด์žฌํ•˜๋ฉด ์„ ํƒ๋˜์ง€ ์•Š๋Š”๋‹ค.)

์…€๋ ‰ํ„ฐA + ์…€๋ ‰ํ„ฐB {}

 

<body>
  <div>A div element.</div>
  <ul>
    <li>Coffee</li>
    <li>Tea</li>
    <li>Milk</li>
  </ul>

  <p>The first paragraph.</p>
  <ul>
    <li>Coffee</li>
    <li>Tea</li>
    <li>Milk</li>
  </ul>

  <h2>Another list</h2>
  <ul>
    <li>Coffee</li>
    <li>Tea</li>
    <li>Milk</li>
  </ul>
</body>

 

 

See the Pen Untitled by HelloHailie (@hellohailie) on CodePen.

 

 

๐Ÿ‘‡๊ฒŒ์ž„์œผ๋กœ ๋ฐฐ์šฐ๋Š” css๐Ÿ‘‡

https://flexboxfroggy.com/#ko

 

Flexbox Froggy

A game for learning CSS flexbox

flexboxfroggy.com