CSS(38)
-
CSS 네임스페이스와 BEM 방법론
CSS 네임스페이스(Namespace)와 BEM(Block, Element, Modifier) 방법론은 복잡한 웹 프로젝트에서 CSS의 유지보수성(maintainability)과 확장성(scalability)을 높이고 스타일 충돌을 방지하기 위해 사용되는 중요한 전략들이다.CSS 네임스페이스 (CSS Namespacing) ✨CSS 네임스페이스는 CSS 규칙 간의 이름 충돌(naming collision)을 피하기 위한 전략이다. 특히 여러 개발자가 협업하거나, 외부 라이브러리/위젯 코드를 프로젝트에 통합할 때 발생할 수 있는 전역적인 스타일 오염 문제를 방지하는 데 중점을 둔다.🎯 목적스타일 충돌 방지 : 전역 스코프(global scope)에서 발생하는 CSS 클래스 이름, ID 이름 충돌을 최소화..
2025.06.06 -
CSS 우선순위와 미디어쿼리 적용 원칙
CSS 우선순위(Specificity) 기본 원칙CSS는 캐스케이딩(Cascading) 원칙을 따른다.cascade는 "a process whereby something, typically information or knowledge, is successively passed on""무언가(일반적으로 정보나 지식)가 연속적으로 전달되는 과정이"라는 의미를 가지고 있다.그런 단어의 의미처럼 캐스케이딩은 "상속과 우선순위를 포함하는 CSS의 스타일 적용 체계"라고 할 수 있다. 실제 CSS의 우선순위는 다음과 같다.!important인라인 스타일ID 선택자 (#)클래스(.)/속성([])/가상(:) 선택자요소(태그) 선택자전체 선택자(*)미디어쿼리 적용 규칙그런데 우리가 CSS를 적용하다보면 반응형 디자인을 ..
2025.05.20 -
CSS Position과 z-index 트러블 슈팅
문제 상황카테고리 섹션이 배경 요소(#starBackground)에 가려져 보이지 않는 현상 발생이런 식으로 실제로는 중앙에 위치해있지만 보이지 않는 문제 발생원인 파악배경 요소에 position: fixed 속성이 적용되어 있었음카테고리 섹션에 position 속성이 없어 z-index가 제대로 작동하지 않음문제의 기술적 설명position: fixed가 적용된 요소는:새로운 쌓임 맥락(Stacking Context)을 생성뷰포트를 기준으로 고정일반 문서 흐름에서 분리기본적으로 다른 요소들보다 상위에 표시됨해결 방법css가 가지는 기본적인 쌓임 맥락 우선 순위의 문제이기 때문에 position: relative를 추가해서 쌓임 맥락을 줘서 보이도록 조정//문제가 있던 코드#starBackground {..
2025.05.16 -
문자열 선택자
"문자열 선택자"라는 용어는 CSS에서 특정 문자열을 기반으로 요소를 선택하는 다양한 선택자들을 통칭하는 넓은 의미입니다. 말씀하신 "비슷한 이름을 가진 모든 요소를 선택하는 것"은 문자열 선택자의 한 종류인 속성 값의 시작 문자열 선택자에 해당합니다.문자열 선택자의 종류CSS에서 문자열을 기반으로 요소를 선택하는 선택자는 다음과 같이 다양하게 존재합니다.속성 값의 시작 문자열 선택자 ([attribute^="value"]):지정된 속성 값이 특정 문자열로 시작하는 요소를 선택합니다.예시: [class^="slid-item"]속성 값의 끝 문자열 선택자 ([attribute$="value"]):지정된 속성 값이 특정 문자열로 끝나는 요소를 선택합니다.예시: [class$="-last"]속성 값의 부분 문..
2025.03.22 -
CSS 사용자 지정 속성
CSS 사용자 지정 속성이란?웹페이지를 만들다보면 CSS 내에서 반복적으로 사용되는 스타일 속성이 생겨난다. 그럴때마다 Class에 속성을 적용하는 것은 번거롭고 코드도 길어진다.그런 것을 방지하기 위해서 CSS 코드 안에서 변수처럼 값을 저장해두고 필요할 때마다 불러서 사용할 수 있게 해주는 기능을 사용하는데 그게 바로 CSS 사용자 지정 속성이다. 정의 및 사용사용자 지정 속성은 --로 시작하는 이름을 사용하여 정의한다.예를 들어 --main-color: blue;와 같이 정의할 수 있다.정의된 속성 값은 var() 함수를 사용하여 불러와 적용할 수 있다.예를 들어 color: var(--main-color);와 같이 사용할 수 있다.범위(Scope)사용자 지정 속성은 정의된 요소와 그 하위 요소에서..
2025.03.17 -
CSS 심화 공부(18) - 박스 사이징(box-sizing)
box-sizing이란?요소의 크기를 계산하는 방식을 결정하는 방식이다.즉, 요소의 width(너비)와 height(높이)를 어떤 기준으로 계산할지를 정하는 방식이다. 박스 사이징이라는 말처럼 요소의 콘텐츠 영역을 비롯해서 패딩(내부 여백)과 보더(테두리)를 기준으로 요소의 크기를 결정하게 된다.단 마진(외부 여백)은 계산에 포함되지 않는다.계산 포함 (O)콘텐츠 크기, 패딩, 테두리계산 제외 (X)마진box-sizing 속성content-box (기본값)요소의 width와 height 속성은 콘텐츠 영역의 크기를 나타낸다.padding과 border는 요소의 전체 크기에 추가된다.예를 들어, width: 100px; padding: 20px; border: 10px;인 요소의 실제 너비는 160px(1..
2025.03.16 -
컨텐츠간 여백 : vw와 vh
컨텐츠간 여백 : vw, vhvw와 vh는 CSS에서 뷰포트(viewport)를 기준으로 하는 상대적인 길이 단위이다.뷰포트는 웹 페이지가 표시되는 브라우저 창의 보이는 영역을 의미한다. vw (Viewport Width)vw는 뷰포트 너비의 1%에 해당하는 단위입니다.예를 들어, 뷰포트 너비가 1000px이라면 1vw는 10px입니다.vw는 주로 가로 방향의 여백, 간격, 요소의 너비 등을 설정할 때 사용됩니다.화면 너비에 따라 요소의 크기가 유동적으로 변해야 하는 반응형 디자인에 유용합니다.vh (Viewport Height)vh는 뷰포트 높이의 1%에 해당하는 단위입니다.예를 들어, 뷰포트 높이가 800px이라면 1vh는 8px입니다.vh는 주로 세로 방향의 여백, 간격, 요소의 높이 등을 설정할 ..
2025.03.16 -
선택자(.) 입력의 실수 가능성
body{ display: flex; font-family: Arial, Helvetica, sans-serif; margin: 0; padding-top: 80px; padding-left: 96px; padding-right: 24px; background-color: black; color: white;}.body{ display: flex; font-family: Arial, Helvetica, sans-serif; margin: 0; padding-top: 80px; padding-left: 96px; padding-right: 24px; background-color: black; color: white;}선..
2025.03.15 -
CSS 적용 우선순위
CSS 디자인을 하다보면 스타일 규칙이 충돌할 때가 있다. 그렇게 되면 웹 브라우저는 어떤 스타일이 요소에 적용되는지를 결정하는데 그 기준이 우선순위라고 할 수 있다. CSS 우선순위 결정 요소웹 브라우저는 다음 요소들을 종합적으로 고려하여 CSS 우선순위를 결정한다. 1. 중요도 (!important 규칙)!important 규칙은 가장 높은 우선순위를 가지며, 다른 모든 규칙보다 우선하여 적용된다.하지만 !important를 남용하면 스타일 관리가 어려워지므로, 가능한 한 사용을 자제하는 것이 좋다.2. 명시도 (Specificity)명시도는 스타일 규칙이 얼마나 구체적으로 요소를 선택하는지를 나타낸다. 명시도가 높은 규칙이 낮은 규칙보다 우선하는데 다음과 같은 순서로 계산된다.인라인 스타일 (HT..
2025.03.14 -
CSS 심화 공부(16) - z-index
z-index란?CSS 레이아웃을 만들다보면 동일한 위치에 여러 레이아웃이 겹치는 경우가 발생한다.이럴 때 사용하는 것이 바로 z-index 속성이다. z-index는 겹치는 요소가 있을 때 어떤 요소가 위에 표시되고 어떤 요소가 아래에 표시될지 제어할 수 있다. 음식으로 예를 들자 샌드위치의 재료를 어떤 순서로 쌓을 지 정하는 방법이라고 할 수 있다.샌드위치는 빵, 햄, 치즈, 야채 등을 순서대로 쌓는데 만약에 빵 대신 야채를 가장 밑에 둔다면 어떻게 되겠는가?이처럼 z-index는 각각의 레이아웃들을 적정한 위치에 배치해서 제작자가 의도한 대로 웹페이지가 동작하도록 만드는데 도움을 준다. 그림을 예로 들면 레이어를 쌓는 순서이다. 디지털 프로그램을 사용해서 그림을 그릴 때 여러개의 레이어를 쌓아 올려..
2025.03.14