CSS(Cascading Style Sheets)는 현대 웹 디자인의 초석입니다. HTML 문서의 표현을 설명하는 데 사용되는 스타일 시트 언어입니다. HTML이 웹페이지의 구조를 정의하는 반면 CSS는 웹페이지의 시각적 모양을 정의하여 개발자가 아름답고 역동적이며 반응이 빠른 디자인을 만들 수 있도록 해줍니다. CSS로 작업할 때 HTML 요소 내에 인라인으로 포함하거나 <head> HTML 문서의 섹션을 선택하거나 외부 스타일시트를 링크하세요. 이 중에서 외부 스타일시트를 사용하는 것은 HTML을 깔끔하게 유지하고 콘텐츠를 디자인과 분리하므로 가장 확장성이 뛰어나고 권장되는 접근 방식입니다.</p> <p>예를 들어 외부 CSS 스타일시트를 사용하는 간단한 HTML 파일을 생각해 보세요.<br> </p> <pre><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS Demo</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>Welcome to LearnCSS</h1> <p>CSS makes the web beautiful and engaging.</p> </body> </html> </pre> <p>styles.css 파일에서 요소의 시각적 모양을 정의할 수 있습니다.<br> </p> <pre>body { font-family: Arial, sans-serif; background-color: #f9f9f9; color: #333; margin: 0; padding: 0; } h1 { color: #2c3e50; text-align: center; margin-top: 50px; } p { text-align: center; font-size: 18px; line-height: 1.5; } </pre> <p>이 설정은 현대적인 디자인으로 시각적으로 매력적인 웹페이지를 만듭니다. 배경색은 연한 회색으로 설정하고, 텍스트는 가독성을 높이기 위해 스타일을 적용했으며, 제목은 더 어두운 색상과 중앙 정렬로 강조했습니다.</p> <hr> <p><strong>박스 모델의 이해</strong> </p> <p>CSS의 기본 개념 중 하나는 상자 모델입니다. 모든 HTML 요소는 내용, 패딩, 테두리 및 여백의 네 부분으로 구성된 직사각형 상자로 처리됩니다. 효과적인 레이아웃 디자인을 위해서는 이러한 레이어를 이해하고 조작하는 것이 필수적입니다.</p> <p>예를 들어 다음 CSS를 고려해 보세요.<br> </p> <pre>div { width: 300px; padding: 20px; border: 2px solid #2c3e50; margin: 10px auto; background-color: #ecf0f1; text-align: center; } </pre> <p>이 코드는 <div> 특정 너비를 가진 요소, 콘텐츠 주위에 공간을 만들기 위한 패딩, 상자 윤곽선을 위한 테두리, 다른 요소와의 간격을 위한 여백, 시각적 매력을 위한 배경색 등이 있습니다. 여백의 자동 값은 컨테이너 내에서 상자를 수평 중앙에 배치합니다.</p> <p>해당 HTML은 다음과 같습니다.<br> </p> <pre><div>This is a styled box.</div> </pre> <p>상자는 패딩과 어두운 테두리로 둘러싸인 밝은 배경의 중앙 직사각형으로 나타납니다.</p> <hr> <p><strong>반응형 디자인 만들기</strong> </p> <p>오늘날의 다중 기기 세상에서는 웹사이트가 모든 화면 크기에서 잘 보이는지 확인하는 것이 중요합니다. CSS는 특정 화면 크기에 대한 스타일을 정의할 수 있는 미디어 쿼리를 제공합니다. 이를 통해 데스크톱, 태블릿, 스마트폰에 원활하게 적용되는 레이아웃을 만들 수 있습니다.</p> <p>다음은 반응형 레이아웃의 예입니다.<br> </p> <pre>body { font-family: Arial, sans-serif; margin: 0; padding: 0; } .container { display: flex; flex-wrap: wrap; gap: 10px; padding: 20px; } .item { flex: 1 1 calc(33.333% - 20px); background-color: #3498db; color: white; padding: 20px; text-align: center; } @media (max-width: 768px) { .item { flex: 1 1 calc(50% - 20px); } } @media (max-width: 480px) { .item { flex: 1 1 100%; } } </pre> <p>이 코드는 기본적으로 각 항목이 컨테이너 너비의 1/3을 차지하는 유연한 그리드 레이아웃을 정의합니다. 작은 화면에서는 레이아웃이 두 개의 열로 조정되고 결국 매우 작은 화면에서는 단일 열로 조정됩니다. 이 레이아웃의 HTML은 다음과 같습니다.<br> </p> <pre><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS Demo</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>Welcome to LearnCSS</h1> <p>CSS makes the web beautiful and engaging.</p> </body> </html> </pre> <p>이 코드는 버튼 위로 마우스를 가져가면 부드러운 전환 효과로 버튼의 배경색을 변경합니다. 해당 HTML은 다음과 같습니다.<br> </p> <pre>body { font-family: Arial, sans-serif; background-color: #f9f9f9; color: #333; margin: 0; padding: 0; } h1 { color: #2c3e50; text-align: center; margin-top: 50px; } p { text-align: center; font-size: 18px; line-height: 1.5; } </pre> <p>애니메이션을 만들려면 @keyframes 규칙을 사용할 수 있습니다. 예를 들면 다음과 같습니다.<br> </p> <pre>div { width: 300px; padding: 20px; border: 2px solid #2c3e50; margin: 10px auto; background-color: #ecf0f1; text-align: center; } </pre> <p>이 코드는 상자에 애니메이션을 적용하여 튀는 효과를 만듭니다. HTML은 다음과 같습니다.<br> </p> <pre><div> <hr> <p><strong>결론</strong> </p> <p>CSS는 웹 디자인의 무한한 가능성을 열어주는 강력한 도구입니다. 시각적으로 매력적인 레이아웃 만들기부터 반응형 동작 및 애니메이션 추가에 이르기까지 CSS를 마스터하면 일반 웹 페이지를 놀라운 대화형 환경으로 변환할 수 있습니다. 위의 예제로 실험을 시작하고 작성하는 모든 코드 줄마다 기술이 향상되는 것을 지켜보세요. CSS의 세계가 여러분의 창의력을 기다립니다.</p> </pre>