CSS 적용 우선순위

조회수 1386회
-------------------------------HTML
<div class="big">
  <div class="inside">Inside</div>
  <div>without class</div>
  <p>My name is...</p>
</div>
-------------------------------CSS
.big .inside {
  color: red;
}
.big {
  color: green;
}

안녕하세요. 위 코딩을 보면 클래스 inside에 색깔을 빨강으로 주고, 나중에 부모div에 다시 색깔을 지정하면 나머지는 다 바뀌는데 클래스지정한 div는 색깔이 그대로 인데.. 왜 바뀌지 않나요?

아직 초보라 ..순위문제인가요? 아 미리보기에 코드 결과만 보이네요..아.. 어떻게 해야하죠..?

1 답변

  • 우선, 약간 틀린걸 수정하면 다음과 같아요. 여러개의 클레스를 같이 사용할 경우 ,를 넣어줘야합니다 :-)

    .big, .inside {
      color: red;
    }
    .big {
      color: green;
    }
    

    CSS가 적용되는 우선순위에 대해서, 동일한 레벨이라면 더 마지막에 선언된, 그러니까 아랫줄에 위치한 코드가 더 우선순위를 가지는 것은 맞습니다. 하지만 클레스를 동일 레벨이 아닌 더 하위 레벨의 테그에 적용했다면, 하위 레벨에 적용된 클레스가 반영됩니다. 결국 CSS적용 우선순위 에 대한 이야기라고 이해하면 좋을 것같아요.

    따라서, 위의 코드의 가장 상위 <div class="big">보다 그 하위의 <div class="inside">가 CSS 적용 우선순위가 높습니다. 만약 위의 코드에서 color: red;를 강제로 적용하고 싶다면 color: red !important;라고 입력할 수 있습니다. 다음과 같이요.

    .big, .inside {
      color: red !important;
    }
    .big {
      color: green;
    }
    

    사실 CSS 적용 순위는 더 정확하고, 체계적입니다. 그렇기때문에 이부분에 대해서 이해도가 적다면 어렵게 느껴질 수 있을 수 있어요. CSS에 대한 더 자세한 내용을 보고 싶다면 CSS적용 우선순위(from Opentytorials)을 확인해보세요.

    • 아 적용순위였군요.. 추가적인 !important 사용법도 정말 감사드립니다. 알 수 없는 사용자 2016.12.29 14:15
    • 새복많이 받으세요! 알 수 없는 사용자 2016.12.29 14:15
    • 네! 연관님도 새해 복 많이받으세요. ㅎㅎ :-) 박기선 2016.12.29 14:19

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)