>웹 프론트엔드 >CSS 튜토리얼 >내 스타일시트가 내 인라인 스타일을 재정의하는 이유는 무엇입니까?

내 스타일시트가 내 인라인 스타일을 재정의하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-28 12:55:31985검색

Why Are My Inline Styles Being Overridden by My Stylesheet?

CSS 우선 순위: 인라인 스타일이 재정의되는 이유

CSS에서는 규칙의 우선 순위에 따라 요소에 스타일이 적용됩니다. 여러 규칙이 동일한 요소를 대상으로 하는 경우 우선 순위가 가장 높은 규칙이 적용됩니다.

제공된 예에는 오른쪽 열이 있는 테이블 내의 td 요소에 대해 padding-left: 10px를 설정하는 인라인 스타일이 있습니다. ID. 그러나 참조된 스타일시트의 스타일은 .rightColumn 클래스 내의 모든 요소에 대해 여백과 패딩을 0으로 설정합니다. 문제는 참조된 스타일시트의 스타일의 우선순위가 더 높아서 인라인 스타일이 재정의된다는 것입니다.

구체성 계산

CSS 우선순위는 규칙. 구체성은 다음 기준에 따라 계산됩니다.

  1. 인라인 스타일 선언은 구체성에 1점을 기여합니다(a = 1).
  2. 선택기의 각 ID는 10점을 기여합니다(b = n ).
  3. 선택기의 각 클래스 또는 의사 클래스는 1점(c = n)을 기여합니다.
  4. 선택기의 각 요소 또는 의사 요소는 1점(d = n)을 기여합니다.

예를 들어 선택기가 .rightColumn *인 규칙의 구체성은 0010(a = 0, b = 0, c = 1, d = 0)인 반면 선택기 td가 있는 규칙은 특이도는 0001(a = 0, b = 0, c = 0, d = 1)입니다. 0010이 0001보다 크므로 참조된 스타일시트의 규칙이 더 높은 우선순위를 갖습니다.

문제 해결

이 문제를 해결하고 인라인 스타일을 적용하려면 다음을 수행해야 합니다. 두 가지 옵션:

  1. !important 사용: 인라인 스타일에 !important를 추가하여 중요도를 높일 수 있습니다. 그러나 이 접근 방식은 유지 관리가 어려울 수 있으므로 가능하면 피해야 합니다.
  2. 규칙 구체성 높이기: 인라인 스타일에 보다 구체적인 선택기를 추가하여 구체성을 높일 수 있습니다. 예를 들어, 테이블 셀에 클래스 이름을 추가하고 .rightColumn .myUnpendedTable과 같은 선택기를 사용하여 스타일을 지정할 수 있습니다. 이렇게 하면 인라인 스타일의 구체성은 0011이 되며, 이는 참조된 스타일시트(0010)의 규칙의 구체도보다 높습니다.

위 내용은 내 스타일시트가 내 인라인 스타일을 재정의하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.