HTML CSS

2024.07.01 CSS flexbox Flexbox λž€?

μ •ν›ˆ5 2024. 7. 1. 09:12

 

demo_01.html
0.00MB
demo_02.html
0.00MB

 

πŸ’‘ ν•™μŠ΅ λͺ©ν‘œ

- Flexboxλž€ 무엇인가?
- Flex μ»¨ν…Œμ΄λ„ˆμ™€ Flex μ•„μ΄ν…œ

 

 

μ›Ή νŽ˜μ΄μ§€μ˜ μš”μ†Œλ“€μ„ μœ μ—°ν•˜κ²Œ λ°°μΉ˜ν•˜λ €λ©΄ λ¨Όμ € CSS λ ˆμ΄μ•„μ›ƒ 방식에 λŒ€ν•œ 이해가 ν•„μš”ν•©λ‹ˆλ‹€.

κ·Έ μ€‘μ—μ„œ λ¨Όμ € HTML λ°•μŠ€ λͺ¨λΈκ³Ό 블둝 및 인라인 μš”μ†Œ λ˜λŠ” 인라인블둝 μ†μ„±μ˜ κ°œλ…μ„ μ΄ν•΄ν•˜λŠ” 것이 μ„ ν–‰λ˜μ–΄μ•Ό

μ›Ή νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒμ„ 자유둭게 λ‹€λ£° 수 μžˆμŠ΅λ‹ˆλ‹€.

 

λ°•μŠ€ λͺ¨λΈμ΄λž€?

HTML λ°•μŠ€ λͺ¨λΈμ€ μ›Ή νŽ˜μ΄μ§€μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό μ‚¬κ°ν˜• λ°•μŠ€λ‘œ μ·¨κΈ‰ν•˜λŠ” κ°œλ…μž…λ‹ˆλ‹€. 이 λ°•μŠ€λŠ” μ—¬λŸ¬ 개의 λ ˆμ΄μ–΄λ‘œ κ΅¬μ„±λ˜λ©°, 각 λ ˆμ΄μ–΄λŠ” μš”μ†Œμ˜ 크기와 간격을 μ •μ˜λ˜κ±°λ‚˜ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ½˜ν…μΈ (Content): ν…μŠ€νŠΈλ‚˜ 이미지 λ“± μ‹€μ œ λ‚΄μš©μ΄ λ“€μ–΄κ°€λŠ” 뢀뢄이닀.

νŒ¨λ”©(Padding): μ½˜ν…μΈ μ™€ ν…Œλ‘λ¦¬ μ‚¬μ΄μ˜ 여백이닀. νŒ¨λ”©μ€ μ½˜ν…μΈ  μ£Όμœ„μ— 투λͺ…ν•œ 곡간을 μΆ”κ°€ν•œλ‹€.

ν…Œλ‘λ¦¬(Border): νŒ¨λ”©κ³Ό λ§ˆμ§„ μ‚¬μ΄μ˜ μ˜μ—­μœΌλ‘œ, μš”μ†Œμ˜ 경계λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. ν…Œλ‘λ¦¬λŠ” κ°€μ‹œμ μΌ μˆ˜λ„ 있고 투λͺ…ν•  μˆ˜λ„ μžˆλ‹€. λ§ˆμ§„(Margin): μš”μ†Œμ™€ λ‹€λ₯Έ μš”μ†Œ μ‚¬μ΄μ˜ μ™ΈλΆ€ 여백이닀. λ§ˆμ§„μ€ μš”μ†Œλ“€ 사이에 곡간을 μΆ”κ°€ν•œλ‹€.

 

 

블둝 μš”μ†Œ(Block Elements)

블둝 μš”μ†ŒλŠ” 항상 μƒˆλ‘œμš΄ μ€„μ—μ„œ μ‹œμž‘ν•˜λ©°, κ°€λŠ₯ν•œ 전체 κ°€λ‘œ λ„ˆλΉ„λ₯Ό μ°¨μ§€ν•©λ‹ˆλ‹€.

블둝 μš”μ†ŒλŠ” 기본적으둜 μ˜†μ— λ‹€λ₯Έ 블둝 μš”μ†Œκ°€ 올 수 μ—†κΈ° λ•Œλ¬Έμ— 수직으둜 μŒ“μ΄λŠ” ꡬ쑰λ₯Ό κ°€μ§‘λ‹ˆλ‹€.

블둝 μš”μ†Œ μ•ˆμ—λŠ” λ‹€λ₯Έ 블둝 μš”μ†Œλ‚˜ 인라인 μš”μ†Œλ₯Ό 포함할 수 μžˆμŠ΅λ‹ˆλ‹€.

<div>
<h1> ~ <h6>
<p>
<ul>, <ol>, <li>
<section>, <article>, <nav>, <header>, <footer>

 

인라인 μš”μ†Œ(Inline Elements)

인라인 μš”μ†ŒλŠ” μ½˜ν…μΈ λ₯Ό κ°μ‹ΈλŠ” 만큼의 λ„ˆλΉ„λ§Œ μ°¨μ§€ν•˜λ©°, 쀄 λ°”κΏˆ 없이 λ‹€λ₯Έ 인라인 μš”μ†Œμ™€ λ‚˜λž€νžˆ λ°°μΉ˜λ©λ‹ˆλ‹€.

인라인 μš”μ†ŒλŠ” 주둜 ν…μŠ€νŠΈμ˜ μΌλΆ€λ‘œ μ‚¬μš©λ˜λ©°, 블둝 μš”μ†Œ μ•ˆμ— ν¬ν•¨λ©λ‹ˆλ‹€.

<span>
<a>
<img>
<strong>, <em>, <b>, <i>

 

λ°˜λ“œμ‹œ κΈ°μ–΅ν•˜κΈ° !

인라인 μš”μ†Œμ—μ„œ 수직 λ§ˆμ§„μ€ κ·Έλƒ₯ 적용이 μ•ˆλœλ‹€κ³  μ™Έμš°μž !!

 


 

class_flexbox_01 << dynamic web project λ§Œλ“€κΈ°

webapp << demo_01.html λ§Œλ“€κΈ°

http://localhost:8080/demo1/demo_01.html << μ„œλ²„ μΌœμ„œ μ ‘μ†ν•˜κΈ°

 

demo_01.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>인라인 μš”μ†Œμ™€ νŒ¨λ”© 그리고 λ§ˆμ§„</title>
<!--  title은 보이지 μ•ŠλŠ”λ‹€. -->

<style type="text/css">
	.m-inline{
		background-color: lightgreen;
		padding: 10px;
		margin-top: 200px;
		margin-left: 20px;
		margin-right: 20px;
		border: 1px solid green;
	}
</style>

</head>

<body>
	<!-- http://localhost:8080/demo1/demo_01.html -->
	<h1>μ—¬κΈ°λŠ” demo_01.html 파일 μž…λ‹ˆλ‹€.</h1>
	
	<p>
		이 ν…μŠ€νŠΈλŠ”<span class="m-inline"> 인라인 μš”μ†Œ 1 </span>μž…λ‹ˆλ‹€.
		이 ν…μŠ€νŠΈλŠ”<span class="m-inline"> 인라인 μš”μ†Œ 1 </span>μž…λ‹ˆλ‹€.
	</p>
</body>

</html>

 

 

 

인라인블둝 μš”μ†Œ(Inline-Block Elements)

인라인블둝 μš”μ†ŒλŠ” 인라인 μš”μ†Œμ²˜λŸΌ ν•œ 쀄에 λ‚˜λž€νžˆ λ°°μΉ˜λ˜μ§€λ§Œ,

블둝 μš”μ†Œμ²˜λŸΌ νŒ¨λ”©, λ§ˆμ§„, λ„ˆλΉ„, 높이λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ 인라인 μš”μ†Œμ˜ νŠΉμ„±κ³Ό 블둝 μš”μ†Œμ˜ νŠΉμ„±μ„ λͺ¨λ‘ κ°€μ§‘λ‹ˆλ‹€.

인라인블둝 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ˜†μ— λ‹€λ₯Έ μš”μ†Œλ₯Ό λ°°μΉ˜ν•˜λ©΄μ„œλ„ 크기λ₯Ό μ‘°μ ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

demo_02.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>인라인 λΈ”λ‘μš”μ†Œ μ˜ˆμ‹œ</title>
<!--  title은 보이지 μ•ŠλŠ”λ‹€. -->

<style type="text/css">
	
	.m-inline-block {
		display: inline-block; 
		background-color: aqua;
		padding: 10px;
		margin : 10px;
	}
	
</style>

</head>

<body>
	<!-- http://localhost:8080/demo1/demo_02.html -->
	<h1>μ—¬κΈ°λŠ” demo_02.html 파일 μž…λ‹ˆλ‹€.</h1>
	
	<div class="m-inline-block"> 인라인 블둝 μš”μ†Œ 1 </div>
	<div class="m-inline-block"> 인라인 블둝 μš”μ†Œ 1 </div>
	
	
</body>

</html>

 

 

 


 

인라인블둝 μš”μ†ŒλŠ” λͺ¨λ“  λ°©ν–₯의 νŒ¨λ”©κ³Ό λ§ˆμ§„μ„ μΌκ΄€λ˜κ²Œ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

 

Flexboxλž€?

FlexboxλŠ” μ›Ή νŽ˜μ΄μ§€μ˜ μš”μ†Œλ“€μ„ 쉽고 μœ μ—°ν•˜κ²Œ λ°°μΉ˜ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” CSS λ ˆμ΄μ•„μ›ƒ λ°©μ‹μž…λ‹ˆλ‹€.

Flexboxλ₯Ό μ‚¬μš©ν•˜λ©΄ ν™”λ©΄ ν¬κΈ°λ‚˜ μš”μ†Œμ˜ 크기가 변해도 각 μš”μ†Œλ₯Ό μ •λ ¬ν•˜κ³  λ°°μΉ˜ν•˜λŠ” 것이 μ•„μ£Ό κ°„λ‹¨ν•˜λ‹€.

Flexbox의 μ£Όμš” νŠΉμ§•

  1. μœ μ—°ν•œ 배치: μš”μ†Œμ˜ ν¬κΈ°λ‚˜ μˆœμ„œλ₯Ό μœ μ—°ν•˜κ²Œ μ‘°μ ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. κ°„λ‹¨ν•œ μ •λ ¬: λ³΅μž‘ν•œ 계산 없이 μš”μ†Œλ₯Ό μˆ˜ν‰ 및 수직으둜 μ‰½κ²Œ μ •λ ¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. λ°˜μ‘ν˜• λ””μžμΈ: ν™”λ©΄ 크기가 변해도 λ ˆμ΄μ•„μ›ƒμ΄ μžλ™μœΌλ‘œ μ‘°μ •λ©λ‹ˆλ‹€.

μ£Όμš” κ°œλ…

  • Flex μ»¨ν…Œμ΄λ„ˆ: Flexboxλ₯Ό μ μš©ν•  λΆ€λͺ¨ μš”μ†Œ
  • Flex μ•„μ΄ν…œ: Flex μ»¨ν…Œμ΄λ„ˆ μ•ˆμ— μžˆλŠ” μžμ‹ μš”μ†Œλ“€