css 작성 팁

지훈김·2024년 9월 19일

CSS에서 우선순위는 매우 중요한 요소이기 때문에, HTML을 작성할 때 이를 고려하면 스타일을 쉽게 제어할 수 있습니다. 우선순위를 이해하고, 효율적으로 CSS를 작성하는 몇 가지 팁을 알려드릴게요.

1. CSS 우선순위 이해하기

CSS 우선순위는 크게 다음과 같은 순서로 결정됩니다:
1. 인라인 스타일 (<div style="color: red;">)
2. id 선택자 (#example {})
3. class, 속성 선택자, 가상 클래스 (.example {}, [type="text"] {}, :hover {})
4. 태그(요소) 선택자 (div {}, p {})
5. 전체 선택자 (* {})

중첩된 선택자가 많아질수록 우선순위가 높아집니다. 예를 들어, div p spanspan보다 우선순위가 높습니다.

2. CSS 작성 팁:

2.1. ID보다 클래스 사용 권장

  • id 선택자는 우선순위가 높아서 나중에 스타일을 덮어쓰기가 어렵습니다. 따라서 가능한 class 선택자를 사용하여 우선순위 충돌을 줄이고, 더 쉽게 스타일을 변경할 수 있도록 하세요.

2.2. 구조를 단순하게

  • 너무 많은 중첩 선택자를 사용하지 마세요. 예를 들어 #header .nav ul li a 같은 복잡한 선택자는 나중에 관리하기 어려워질 수 있습니다. 필요할 때만 중첩을 사용하고, 가능한 간단한 선택자로 스타일을 지정하는 것이 좋습니다.

2.3. 적당한 명명 규칙 사용

  • 클래스명은 의미 있게 짓는 것이 좋습니다. 예를 들어, btn-primary와 같은 이름은 버튼 스타일을 쉽게 구분할 수 있게 도와줍니다. 특정 요소의 스타일을 설명하는 것이 아닌, 역할을 설명하는 이름을 짓는 것이 좋습니다.
    • 예: .btn-danger, .card-header (의미에 따라 역할 분담)

2.4. 일관된 단위 사용

  • 동일한 속성에 대해 일관된 단위를 사용하세요. 예를 들어, padding이나 marginpx%를 섞어 쓰는 것보다는 한 가지 단위를 사용하는 것이 예측 가능한 결과를 얻는 데 도움이 됩니다.

2.5. 리셋 또는 노멀라이즈 CSS 사용

  • 브라우저마다 기본 스타일이 다르기 때문에, 이를 초기화하는 리셋 CSS노멀라이즈 CSS를 사용하는 것이 좋습니다. 이렇게 하면 다양한 브라우저에서도 일관된 스타일을 유지할 수 있습니다.

2.6. 자주 사용하는 스타일은 공통으로 지정

  • 여러 요소에서 공통으로 사용하는 스타일은 별도의 공통 클래스로 분리해서 중복을 피하세요. 예를 들어, margin이나 padding 같은 공통적인 스타일을 여러 곳에서 반복하지 않고 .container.wrapper 같은 클래스로 지정해 재사용하세요.

3. HTML 구조 작성 팁:

3.1. 의미 있는 HTML 구조

  • 시맨틱한 HTML 태그를 사용하세요. 예를 들어, div 대신 header, nav, footer, article 같은 시맨틱 태그를 사용하면 검색 엔진 최적화(SEO)에도 좋고, 구조를 이해하기도 쉽습니다.

3.2. BEM(Block Element Modifier) 네이밍 방식 사용

  • BEM 방법론은 CSS 클래스 명명 규칙을 체계적으로 만들어줍니다. 이렇게 하면 클래스 간의 충돌을 줄일 수 있고, HTML 구조도 더 명확하게 이해할 수 있습니다.
    • 예시:
      <div class="card card--highlight">
        <h2 class="card__title">Title</h2>
        <p class="card__description">Description</p>
      </div>
      여기서 card블록, card__title엘리먼트, card--highlight모디파이어입니다.

3.3. 모듈화된 스타일 적용

  • 스타일을 가능한 모듈화해서, 특정 기능을 가진 컴포넌트(예: 버튼, 카드)를 만들고, 이를 여러 곳에서 재사용할 수 있도록 설계하세요. 이렇게 하면 스타일의 중복을 줄이고, 유지보수를 더 쉽게 할 수 있습니다.

4. 우선순위 관련 실전 팁

4.1. !important 사용 최소화

  • !important는 CSS 우선순위를 강제로 끌어올리기 때문에 자주 사용하면 유지보수가 어려워집니다. 필요할 때만 신중하게 사용하고, 가능하다면 우선순위를 잘 관리하는 방향으로 코드를 작성하는 것이 좋습니다.

4.2. 명시적 우선순위 관리

  • 동일한 요소에 여러 스타일이 적용될 수 있다면, 명확하게 우선순위를 관리하세요. 예를 들어, 더 구체적인 클래스나 속성 선택자를 사용해 우선순위를 조정할 수 있습니다.

    /* 일반적인 스타일 */
    .btn { color: blue; }
    
    /* 구체적으로 특정 버튼만 적용하는 스타일 */
    #header .btn { color: red; }

요약

  • class 선택자를 주로 사용하여 유연하게 스타일을 관리하세요.
  • 선택자를 간결하게 작성해 유지보수를 쉽게 하세요.
  • 의미 있는 이름을 사용해 HTML 구조를 명확하게 만드세요.
  • CSS 우선순위 규칙을 이해하고, 명확하게 관리하세요.

이러한 팁을 염두에 두면, 더 깔끔하고 관리하기 쉬운 코드를 작성할 수 있습니다!

0개의 댓글