
HTML vs CSS vs JS
HTML (Structure): 웹 페이지의 의미와 구조를 정의하는 마크업 언어로, 텍스트, 이미지, 버튼 등 요소들의 존재 여부를 결정한다.
CSS (Styling): HTML 요소가 화면에 출력되는 방식을 정의하는 스타일시트 언어로, 색상, 레이아웃, 크기 등 시각적인 디자인을 제어한다.
JavaScript (Behavior): 브라우저에서 실행되는 프로그래밍 언어로, 데이터 처리나 사용자 클릭에 따른 반응 등 웹 페이지의 동적인 동작을 담당한다.
내용(HTML)과 표현(CSS)을 분리하여 유지보수를 용이하게 하며, 박스 모델, 플렉스박스 등을 통해 웹 요소 배치를 제어하는 것이다. 결국 CSS란, 구조화된 HTML에 시각적 질서를 부여하여 사용자 경험(UX)을 완성하고, 코드의 재사용성과 관리 효율을 극대화하는 전략적인 도구라고 볼 수 있다.
block, inline-block, flex) 이 있다.Outer display 타입 : block, inline
Inner display 타입 : flex (CSS Flexbox)
- block 타입 : 하나의 독립된 덩어리처럼 동작하는 요소
- 항상 새로운 행으로 나뉨 (한 줄 전체를 차지, 너비 100%)
- width, height, margin, padding 속성을 모두 사용 가능
- width 속성 사용하지 않으면 박스는 inline 방향으로 사용 가능한 공간 모두 차지
- padding, margin, border로 인해 다른 요소를 상자로부터 밀어냄
- 대표적으로
<div>가 존재.
- 헤더, 푸터, 사이드바 등 웹페이지의 다양한 섹션을 구조화하는데 가장 많이 사용됨.
<h1~6>,<p>,<ul>,<li>
<a>, <span>, <img>, <strong>1. inline-block 타입
.index {
display: inline-block;
}
inline 과 block의 특징을 모두 가진 특별한 display 속성 값
2. None 타입
.index {
display: none;
}
Position의 유형
1. Static
.static {
position: static;
}
2. Relative

.relative {
position: relative;
top: 100px;
left: 100px;
}
3. absolute
.absolute {
position: absolute;
top: 100px;
left: 100px;
}

4. Fixed
5. Sticky
활용

<div class="card">
<div class="card-content">
<h3>Card Title</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<span class="badge">New</span>
</div>
</div>
/* CSS 스타일 */
.card {
position: relative; /* [중요] 자식인 badge의 기준점이 됨 */
width: 300px;
height: 200px;
border: 1px solid black;
margin: 20px;
}
.card-content {
padding: 10px;
}
.badge {
position: absolute; /* 문서 흐름에서 빠져나와 붕 떠오름 */
top: 0; /* 부모(card)의 맨 위에서 0만큼 떨어짐 */
right: 0; /* 부모(card)의 오른쪽에서 0만큼 떨어짐 */
background-color: red; /* 빨간색 배경 */
color: white; /* 하얀색 글자 */
padding: 5px 10px; /* 배지 안쪽 여백 */
font-weight: bold;
}
block, inline 타입과 다르게 Inner display 타입으로, 박스 내부의 요소들이 어떻게 배치될지를 결정하는 Display 타입이다.
요소를 행과 열 형태로 배치하는 1차원 레이아웃 방식 (공간 배열 & 정렬)

Flexbox 구성요소 : main axis, cross axis, flex container, flex item

Flex Container 관련 속성