HTML 문서의 모든 요소는 브라우저에 의해 하나의 직사각형 박스(rectangular box)로 렌더링됩니다. 각 요소가 차지하는 공간은 너비(width), 높이(height), 안쪽 여백(padding), 바깥 여백(margin)에 의해 결정되며, 이러한 구조를 통칭하여 박스 모델(Box Model)이라고 부릅니다.박스 모델은 CSS 레이아웃의 가장 기본이 되는 개념으로, 요소의 크기 조절과 배치, 요소 간 간격 계산 등 웹 페이지 디자인의 거의 모든 작업에 영향을 미칩니다.출처: w3.org박스 모델의 4가지 구성 요소1. 콘
CSS 미디어 유형(Media Types)과 미디어 쿼리(Media Queries)는 기기의 일반적인 유형(화면, 인쇄 등)이나 특성(해상도, 뷰포트 크기 등)에 따라 특정 스타일을 정의할 수 있게 해주는 강력한 기능입니다. 이를 활용하면 하나의 문서가 다양한 기기에서 최적화된 모습으로 표시되도록 만들 수 있습니다.미디어 쿼리 문법미디어 쿼리의 기본 문법은 다음과 같습니다.@media not | only mediatype and (expressions) { CSS-Code; }여기서 미디어 쿼리는 다음 조건에서 적용됩니다.m
인라인 레벨(inline-level) 요소는 CSS의 display 속성 값이 inline, inline-table 또는 inline-block으로 지정된 요소를 말합니다. 이러한 요소는 자신의 앞뒤에서 강제로 줄바꿈을 만들지 않기 때문에 텍스트 흐름 속에 자연스럽게 배치됩니다. 각 인라인 레벨 요소는 배치 방식(positioning scheme)의 일부를 구성하면서 동시에 자식 박스를 포함하는 인라인 레벨 박스(inline-level box)를 생성합니다. 인라인 박스(Inline Box)란? 인라인 박스는 그 내용이 인라인 서식
outline-style 속성은 요소의 테두리(border) 바깥쪽에 선을 그려주는 CSS 속성입니다. border 속성과 유사해 보이지만 중요한 차이점이 있습니다. 바로 아웃라인(outline)은 요소의 실제 크기(너비·높이) 계산에 포함되지 않는다는 점입니다. 따라서 레이아웃에 영향을 주지 않으면서도 시각적으로 강조 효과를 낼 수 있어 포커스 표시나 하이라이트 처리에 자주 활용됩니다. 문법(Syntax) CSS outline-style 속성의 기본 문법은 다음과 같습니다. Selector { outline-style: /
모든 HTML 요소는 CSS Display 속성에 대한 기본값을 가지고 있습니다. 이 속성은 해당 요소가 문서 내에서 어떻게 렌더링(표시)될지를 결정하는 중요한 역할을 합니다.참고: 기본 display 속성값은 얼마든지 재정의(오버라이드)할 수 있습니다. 다만, 이 경우에도 요소 자체의 유형이 바뀌는 것은 아니며, 문서 내에서의 표시 동작(display behavior)만 달라집니다.CSS Display 속성에 사용되는 대표적인 값들은 다음과 같습니다.block — 요소가 한 줄 전체를 차지하며, 앞뒤로 줄바꿈이 발생합니다.inli
CSS에서 display 속성에 block 값을 지정하면 해당 요소는 부모 요소가 제공하는 사용 가능한 전체 너비를 차지하며, 항상 새로운 줄에서 시작합니다. 즉, 줄바꿈이 강제로 일어납니다. display: block이 적용된 요소는 <div>나 <p> 요소처럼 렌더링되며, 이러한 요소를 블록 레벨(block-level) 요소라고 부릅니다. 문법(Syntax) CSS display block의 기본 문법은 다음과 같습니다. Selector { display: block; } 예제 1: 버튼 클릭 시
CSS display:none이란?CSS의 display: none은 개발자가 display 속성값을 none으로 설정해 특정 요소를 화면에서 완전히 숨길 수 있게 해주는 기능입니다. display가 none으로 지정된 요소는 렌더링 과정에서 어떠한 박스(box)도 생성되지 않으며, 해당 요소의 자식 요소들이 display 값을 별도로 지정했더라도 함께 화면에 표시되지 않습니다.참고로 display: none은 visibility: hidden과 달리 요소가 차지하던 공간 자체가 사라지기 때문에, 페이지 레이아웃에 영향을 주지 않으
웹 개발을 하다 보면 특정 요소를 화면에서 숨겨야 하는 경우가 자주 발생합니다. 이때 많은 개발자가 display 속성과 visibility 속성 사이에서 고민하게 되는데요. 겉보기에는 두 속성 모두 요소를 숨기는 것처럼 보이지만, 실제 동작 방식에는 중요한 차이가 있습니다. display:none과 visibility:hidden의 핵심 차이 CSS display: none − 해당 요소를 문서에서 아예 렌더링하지 않습니다. 요소가 차지하던 공간까지 완전히 사라지므로, 마치 요소가 처음부터 존재하지 않았던 것처럼
CSS의 visibility 속성은 문서 내에서 해당 요소를 화면에 표시할지 여부를 지정하는 데 사용됩니다. 흥미로운 점은 visibility가 hidden으로 설정되더라도 요소 자체는 여전히 렌더링된다는 것입니다. 다만 화면에는 보이지 않을 뿐이며, 원래 차지하던 공간도 그대로 유지됩니다.CSS visibility 속성값 정리요소의 가시성을 제어하기 위해 사용되는 visibility 속성값은 다음과 같습니다.번호속성값 및 설명1visible기본값입니다. 요소와 그 자식 요소들이 모두 화면에 표시됩니다.2hidden요소와 자식 요소
CSS에서 요소의 위치 지정 방식을 static으로 설정하면, 해당 요소는 어떤 특별한 방식으로 배치되지 않고 일반적인 문서 흐름(normal flow)에 따라 렌더링됩니다.중요한 점은, position: static;이 적용된 요소는 left, right, top, bottom 같은 CSS 위치 지정 속성의 영향을 전혀 받지 않는다는 것입니다. 즉, 이러한 속성 값을 아무리 지정해도 화면상의 위치는 변하지 않습니다.예제 1 – 기본적인 static 위치 지정다음은 CSS static 위치 지정 방법을 보여주는 간단한 예제입니다.&
outline-color 속성은 요소의 테두리(border) 바깥쪽에 특정 색상의 선을 그리기 위해 사용됩니다. 다만 border 속성과 달리, 아웃라인(outline)은 요소의 실제 크기(width/height 계산)에는 포함되지 않는다는 점이 중요한 특징입니다. 즉, 아웃라인을 추가해도 레이아웃에 영향을 주지 않으므로 포커스 강조나 시각적 피드백 등에 유용하게 활용할 수 있습니다.문법(Syntax)CSS outline-color 속성의 기본 문법은 다음과 같습니다.Selector { o
CSS 의사 클래스란?의사 클래스(Pseudo Class)는 요소의 특수한 상태를 표현하는 CSS 선택자입니다. 단순히 문서 안의 기본 요소만 선택하는 것이 아니라, 요소의 상태(마우스 오버, 포커스 등), 위치, 방문 이력 같은 외부 요인까지 반영할 수 있습니다.예를 들어 사용자가 링크 위에 마우스를 올렸을 때, 입력 필드의 값이 유효하지 않을 때처럼 일반적인 CSS 선택자만으로는 직접 선택할 수 없는 상황에서도 의사 클래스를 활용하면 손쉽게 스타일을 적용할 수 있습니다.자주 사용되는 대표적인 의사 클래스:hover – 마우스 포
CSS에서는 위치 지정 방식(positioning scheme)인 static, relative, absolute, fixed와 오프셋 속성인 left, right, top, bottom을 조합하여 요소를 원하는 위치에 자유롭게 정렬할 수 있습니다. CSS position 주요 값 이해하기 static – 기본값입니다. 요소가 일반적인 문서 흐름에 따라 배치되며, top·left 같은 오프셋 속성이 적용되지 않습니다. relative – 요소가 원래 있던 자리를 기준으로 상대적으로 이동합니다. 동시에 자식 요소 중 position
CSS의 float 속성은 박스나 콘텐츠의 위치를 지정하거나 서식을 구성하는 데 사용되는 대표적인 속성입니다. 이 속성을 활용하면 HTML 요소를 화면의 왼쪽 또는 오른쪽으로 배치(정렬)할 수 있습니다.float는 본래 텍스트 사이에 이미지를 자연스럽게 배치하기 위해 도입되었지만, 요소를 좌우로 나란히 정렬하는 용도로도 널리 사용됩니다. 아래 예제를 통해 실제 동작 방식을 살펴보겠습니다.예제 1: float로 좌우 정렬하기다음은 CSS float 속성을 사용하여 요소를 정렬하는 예제입니다.<!DOCTYPE html> &l
CSS의 float 속성을 사용할 때 개발자들이 자주 마주치는 대표적인 문제 중 하나는, 자식 요소들이 모두 float 처리되면 부모 컨테이너의 높이가 무너져버린다(collapse)는 점입니다. 이는 float된 요소가 일반 문서 흐름에서 벗어나기 때문에 발생하며, 부모 입장에서는 내용물의 높이를 인식하지 못하게 됩니다.이번 글에서는 부모 컨테이너가 무너지는 현상을 살펴보고, 이를 해결할 수 있는 4가지 방법을 예제와 함께 정리해 보겠습니다.문제 상황아래 예제처럼 콘텐츠가 모두 float되어 있으면 부모 컨테이너가 무너집니다. 결과
CSS 의사 클래스(Pseudo-Class)를 사용하면 HTML의 기존 요소에 특정 상태별 스타일을 손쉽게 추가할 수 있습니다. 예를 들어 마우스 오버(hover), 방문한 링크(visited), 비활성화(disabled)와 같은 상태를 기준으로 요소를 선택할 수 있습니다.참고 — CSS3에서는 의사 클래스(Pseudo-Class)와 의사 요소(Pseudo-Element)를 구분하기 위해, 의사 클래스에는 단일 콜론(:) 표기법을 사용합니다. 반면 의사 요소는 이중 콜론(::)을 사용합니다.기본 문법요소에 CSS 의사 클래스를 적용
CSS 시각적 서식 모델(Visual Formatting Model)은 문서 내 각 요소를 처리하고 변환하여 CSS 박스 모델(CSS Box Model)을 따르는 하나 이상의 박스를 생성하는 알고리즘에 해당하는 모델입니다.생성된 박스의 레이아웃은 다음과 같은 여러 속성에 따라 결정됩니다.크기(Dimensions)유형(Type) — 블록(block), 인라인(inline), 인라인 블록(inline-block), 원자적 인라인 레벨(atomic inline-level)위치 지정(Positioning) — 일반 흐름(normal), 부
CSS의 시각적 서식 모델(Visual Formatting Model)에 따르면, 문서 트리(document tree)의 모든 요소는 처리 과정에서 하나 이상의 박스(box)를 생성합니다. 생성된 박스에는 특정 CSS 속성이 연결되어 있으며, 이 속성 값에 따라 화면에 렌더링됩니다. CSS에서 생성되는 대표적인 박스 유형은 다음과 같습니다. 블록 레벨 요소와 블록 박스 — 익명 블록 박스 포함 인라인 레벨 요소와 인라인 박스 — 익명 인라인 박스 포함 블록 레벨 요소와 블록 박스란? <div>, <p>, &
CSS에서 블록 레벨(block-level) 요소란 display 속성값이 block, list-item 또는 table로 지정된 요소를 의미합니다. 이러한 요소는 자신의 위와 아래에 항상 줄 바꿈을 강제로 만들어내므로, 문서 흐름 속에서 독립적인 영역을 차지하게 됩니다.그리고 각 블록 레벨 요소는 블록 레벨 박스(block-level box)를 생성합니다. 이 박스는 위치 지정 체계(positioning scheme)의 일부가 되며, 동시에 자식 박스들을 담는 그릇 역할도 수행합니다.블록 컨테이너 박스와 블록 박스블록 컨테이너 박
CSS의 ::before와 ::after 가상 요소(Pseudo-element)는 HTML 구조를 변경하지 않고도 선택한 요소의 앞 또는 뒤에 새로운 콘텐츠를 삽입할 수 있도록 해주는 강력한 기능입니다. 장식용 아이콘 추가, 라벨 표시, 복잡한 도형 그리기 등 다양한 용도로 활용됩니다. 가상 요소의 기본 개념 ::before는 요소의 앞에, ::after는 요소의 뒤에 콘텐츠를 생성합니다. 이때 반드시 content 속성을 함께 지정해야 하며, 값이 빈 문자열()이라도 선언해야 가상 요소가 화면에 나타납니다. ::before —